You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.4 KiB


A library providing an ACN (Anonymous Communication Network ) networking abstraction

Supported ACNs

  • Tor v3 Onion Services

Requirements for ACN Support

  • Reference an EndPoint via a string / hostname
  • Maintain an endpoint via a PublicKey (the underlying crypto is the responsibility of the implementation)


Each ACN implementation provides a specific start function that takes in the required parameters to e.g. find a specific binary on the system, attempt to talk to a specific system service or launch an in-memory networking manager:

    acn, err := NewTorACN(".", "", 9051, HashedPasswordAuthenticator{"examplehasedpassword"})
    if err != nil {

At this point the ACN is responsible for setting up the networking interface, the result of which can be checked via the Status callback:


    progress := 0
    for progress < 100 {
        progress = <-progChan

Once initialized the ACN can be used to open new connections:

    conn,err := acn.Open(hostname);

Or host a service on the ACN:

    ls,err := acn.Listen(identity, port) ;

We also provide closing and restart functionality for managing the networking service: