pkg/

directory
v0.1.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2023 License: Unlicense

Directories

Path Synopsis
Package ad is an interface for peer information advertisements.
Package ad is an interface for peer information advertisements.
Package cfg contains settings for the various network modes and seeds for those networks.
Package cfg contains settings for the various network modes and seeds for those networks.
Package codec defines an interface for encoding and decoding message packets in the Indra network.
Package codec defines an interface for encoding and decoding message packets in the Indra network.
ad
Package ad is an abstract message type that composes the common elements of all ads - nonce ID, public key (identity), expiry and signature.
Package ad is an abstract message type that composes the common elements of all ads - nonce ID, public key (identity), expiry and signature.
ad/addresses
Package addresses defines the message format that provides the network multi-address of a peer with a given public identity key.
Package addresses defines the message format that provides the network multi-address of a peer with a given public identity key.
ad/intro
Package intro defines a message type that provides information about an introduction point for a hidden service.
Package intro defines a message type that provides information about an introduction point for a hidden service.
ad/load
Package load provides a message type that provides information about the current load level of a node identified by its public key.
Package load provides a message type that provides information about the current load level of a node identified by its public key.
ad/peer
Package peer provides a message type that provides the base information, identity key and relay rate for an Indra relay.
Package peer provides a message type that provides the base information, identity key and relay rate for an Indra relay.
ad/services
Package services provides a message type for advertising what kinds of exit services a peer provides to clients, including the port number and the cost per megabyte of data.
Package services provides a message type for advertising what kinds of exit services a peer provides to clients, including the port number and the cost per megabyte of data.
onion/cores/balance
Package balance provides an onion layer message that comes in response to a getbalance query, informing the client of the balance of a session, identified by the getbalance nonce.ID.
Package balance provides an onion layer message that comes in response to a getbalance query, informing the client of the balance of a session, identified by the getbalance nonce.ID.
onion/cores/confirmation
Package confirmation provides an onion message type that simply returns a confirmation for an associated nonce.ID of a previous message that we want to confirm was received.
Package confirmation provides an onion message type that simply returns a confirmation for an associated nonce.ID of a previous message that we want to confirm was received.
onion/cores/end
Package end is a null tombstone type onion message that indicates there is no more data in the onion (used with encoding only).
Package end is a null tombstone type onion message that indicates there is no more data in the onion (used with encoding only).
onion/cores/response
Package response provides a message type in response to an Exit message.
Package response provides a message type in response to an Exit message.
onion/crypt
Package crypt is an onion message layer which specifies that subsequent content will be encrypted.
Package crypt is an onion message layer which specifies that subsequent content will be encrypted.
onion/delay
Package delay provides an onion message type that allows a client to specify an arbitrary delay time before processing the rest of an onion message.
Package delay provides an onion message type that allows a client to specify an arbitrary delay time before processing the rest of an onion message.
onion/exit
Package exit is an onion message type that contains a payload intended to be forwarded to the exit service of a relay.
Package exit is an onion message type that contains a payload intended to be forwarded to the exit service of a relay.
onion/forward
Package forward is an onion message layer that specifies a single redirection for the remainder of the onion.
Package forward is an onion message layer that specifies a single redirection for the remainder of the onion.
onion/getbalance
Package getbalance provides an onion message layer type that makes a request for the current balance of a session.
Package getbalance provides an onion message layer type that makes a request for the current balance of a session.
onion/hidden/introquery
Package introquery is an onion message that verifies a relay is an introducer for a given hidden service, returning its intro.Ad.
Package introquery is an onion message that verifies a relay is an introducer for a given hidden service, returning its intro.Ad.
onion/hidden/ready
Package ready provides an onion message type that is sent via client provided routing header back to the client after an introducer forwards a route message to initiate a hidden service connection.
Package ready provides an onion message type that is sent via client provided routing header back to the client after an introducer forwards a route message to initiate a hidden service connection.
onion/hidden/route
Package route provides an onion mesage type that initiates a hidden service connection with a designated introducer who holds the forwarding routing header to send the route message to a hidden service, who replies to the client using their reply routing header with a ready message.
Package route provides an onion mesage type that initiates a hidden service connection with a designated introducer who holds the forwarding routing header to send the route message to a hidden service, who replies to the client using their reply routing header with a ready message.
onion/hidden/services
Package services provides a message type for hidden services to send to designated introducer relays.
Package services provides a message type for hidden services to send to designated introducer relays.
onion/hidden/whisper
Package whisper provides a message type for sending a message to a hidden service, or back to a hidden service client.
Package whisper provides a message type for sending a message to a hidden service, or back to a hidden service client.
onion/reverse
Package reverse provides a message type for the forwarding directions in a 3 layer routing header.
Package reverse provides a message type for the forwarding directions in a 3 layer routing header.
onion/session
Package session provides an onion message type that delivers the two session private keys to be associated with a session, for which the hash of the secrets was used as the payment preimage for starting a session.
Package session provides an onion message type that delivers the two session private keys to be associated with a session, for which the hash of the secrets was used as the payment preimage for starting a session.
ont
Package ont defines interfaces for the engine: Ngin and Onion coding.Codec subtypes, and some helpers that use the abstraction.
Package ont defines interfaces for the engine: Ngin and Onion coding.Codec subtypes, and some helpers that use the abstraction.
reg
Package reg is a registry for message types that implement the coding.Codec interface.
Package reg is a registry for message types that implement the coding.Codec interface.
Package crypto contains all the cryptographic primitives used in Indra.
Package crypto contains all the cryptographic primitives used in Indra.
ciph
Package ciph manages encryption ciphers and encrypting blobs of data.
Package ciph manages encryption ciphers and encrypting blobs of data.
nonce
Package nonce provides a simple interface for generating standard AES encryption nonces that give strong cryptographic entropy to message encryption, as well as 8 byte (64 bit) random private identifiers for references between types.
Package nonce provides a simple interface for generating standard AES encryption nonces that give strong cryptographic entropy to message encryption, as well as 8 byte (64 bit) random private identifiers for references between types.
sha256
Package sha256 provides a simple interface for single and double SHA256 hashes, used with secp256k1 signatures, message digest checksums, cloaked public key "addresses" and so on.
Package sha256 provides a simple interface for single and double SHA256 hashes, used with secp256k1 signatures, message digest checksums, cloaked public key "addresses" and so on.
Package docker contains a library for building and pushing docker images for Indra to a configured docker repository.
Package docker contains a library for building and pushing docker images for Indra to a configured docker repository.
Package engine is the implementation of the core Indra relay and client.
Package engine is the implementation of the core Indra relay and client.
ads
Package ads provides a bundle for peer information advertisement types and initial generation of them, and deriving a peer node data structure from the ad set received over the gossip network.
Package ads provides a bundle for peer information advertisement types and initial generation of them, and deriving a peer node data structure from the ad set received over the gossip network.
consts
Package consts is a series of constants common to several different onion message types.
Package consts is a series of constants common to several different onion message types.
dispatcher
Package dispatcher is a network packet send/receive handler for peer to peer connections between relays.
Package dispatcher is a network packet send/receive handler for peer to peer connections between relays.
magic
Package magic is a simple specification and error helper for message identifying 4 byte strings that are used for the switching logic of a relay.
Package magic is a simple specification and error helper for message identifying 4 byte strings that are used for the switching logic of a relay.
node
Package node is a specification for the in-memory metadata related to an indra network peer.
Package node is a specification for the in-memory metadata related to an indra network peer.
packet
Package packet handles segmenting messages into uniform sized packets and generating a stream of cipher halves and receiver cloaked addresses to encrypt them with, and reassembling the segments into the original messages.
Package packet handles segmenting messages into uniform sized packets and generating a stream of cipher halves and receiver cloaked addresses to encrypt them with, and reassembling the segments into the original messages.
payments
Package payments provides an abstraction above the implementation for handling Lightning Network payments and storing pending payments awaiting session keys.
Package payments provides an abstraction above the implementation for handling Lightning Network payments and storing pending payments awaiting session keys.
responses
Package responses handles waiting for and responding to received responses, including tracking the session billing and custom callback hooks when responses arrive.
Package responses handles waiting for and responding to received responses, including tracking the session billing and custom callback hooks when responses arrive.
services
Package services defines the base data structure for a service.
Package services defines the base data structure for a service.
sess
Package sess provides the Session Manager, which keeps track of a client's sessions.
Package sess provides the Session Manager, which keeps track of a client's sessions.
sessions
Package sessions defines some key data structures relating to the data for sessions, imported by sess package for reading and writing session and circuit metadata.
Package sessions defines some key data structures relating to the data for sessions, imported by sess package for reading and writing session and circuit metadata.
tpt
Package tpt provides the definition of the interface Transport, which is an abstraction used for reading and writing to peers via transport.Transport.
Package tpt provides the definition of the interface Transport, which is an abstraction used for reading and writing to peers via transport.Transport.
transport
Package transport provides a set of definitions of abstractions that layer above the implementation enabling the use of simple functions that interact on channels to queue and receive messages from the tpt.Transport of which several variants are here implemented.
Package transport provides a set of definitions of abstractions that layer above the implementation enabling the use of simple functions that interact on channels to queue and receive messages from the tpt.Transport of which several variants are here implemented.
Package headers is a set of helpers for defining the data to put in a reverse message to enable source routed messages to return anonymously to the client who sent them.
Package headers is a set of helpers for defining the data to put in a reverse message to enable source routed messages to return anonymously to the client who sent them.
Package hidden is a manager for hidden services.
Package hidden is a manager for hidden services.
Package interrupt provides a set of services for handling OS interrupt signals and in-place restarting of a server.
Package interrupt provides a set of services for handling OS interrupt signals and in-place restarting of a server.
Package node provides the magic keys that identify each network swarm in the Indra network - mainnet, testnet and simnet.
Package node provides the magic keys that identify each network swarm in the Indra network - mainnet, testnet and simnet.
p2p
Package p2p provides the implementation for the p2p gossip and libp2p swarm membership used for a seed node, which is a non-relaying, non-client node only providing network metadata to new connections.
Package p2p provides the implementation for the p2p gossip and libp2p swarm membership used for a seed node, which is a non-relaying, non-client node only providing network metadata to new connections.
metrics
Package metrics provides a simple logging update of the status of a seed node and its peer and connection counts.
Package metrics provides a simple logging update of the status of a seed node and its peer and connection counts.
proc
app
log
Package log is a logging subsystem that provides code optional location tracing and semi-automated subsystem registration and output control.
Package log is a logging subsystem that provides code optional location tracing and semi-automated subsystem registration and output control.
rpc
Package rpc provides an RPC server for use in remote control and external application integration.
Package rpc provides an RPC server for use in remote control and external application integration.
Package seed provides an implementation of an indra seed server, its purpose to be a rendezvous point for non-routeable clients as well as gathering and distributing current peer information metadata.
Package seed provides an implementation of an indra seed server, its purpose to be a rendezvous point for non-routeable clients as well as gathering and distributing current peer information metadata.
Package storage provides an encrypted key value store and an RPC service for remote unlocking to prevent secrets being stored on remote nonvolatile storage.
Package storage provides an encrypted key value store and an RPC service for remote unlocking to prevent secrets being stored on remote nonvolatile storage.
util
appdata
Package appdata provides access to the current operating system's proper default application data directory, where we can read and write, and ideally, not have other processes also read and write (as in android/iOS).
Package appdata provides access to the current operating system's proper default application data directory, where we can read and write, and ideally, not have other processes also read and write (as in android/iOS).
b32
Package b32 is an isolated package for storing the based32 cipher set.
Package b32 is an isolated package for storing the based32 cipher set.
b32/based32
Package based32 provides a simplified variant of the standard Bech32 human readable binary codec
Package based32 provides a simplified variant of the standard Bech32 human readable binary codec
b32/codec
Package codec provides a high level abstraction for a customisable binary data encoder with a string encoding.
Package codec provides a high level abstraction for a customisable binary data encoder with a string encoding.
b32/codecer
Package codecer is the interface definition for a Human Readable Binary Transcription Codec
Package codecer is the interface definition for a Human Readable Binary Transcription Codec
cryptorand
Package cryptorand augments the standard math/rand library with cryptographic entropy seeding.
Package cryptorand augments the standard math/rand library with cryptographic entropy seeding.
file
Package file provides some helpers for working with files and folders, specifically making possibly multi-level deep new directories based on a pathspec and testing whether a file exists.
Package file provides some helpers for working with files and folders, specifically making possibly multi-level deep new directories based on a pathspec and testing whether a file exists.
math
Package math provides a simple 32 bit unsigned integer minimum function.
Package math provides a simple 32 bit unsigned integer minimum function.
multi
Package multi provides several functions for working with multiaddr.Multiaddr and netip.AddrPort types, including public key p2p identifiers.
Package multi provides several functions for working with multiaddr.Multiaddr and netip.AddrPort types, including public key p2p identifiers.
norm
Package norm is a string comparison library that makes everything lowercase before comparison for case insensitive equality testing.
Package norm is a string comparison library that makes everything lowercase before comparison for case insensitive equality testing.
path
Package path provides a simple string slice representation for paths, equally usable for filesystems or HD keychain schemes.
Package path provides a simple string slice representation for paths, equally usable for filesystems or HD keychain schemes.
qu
Package qu provides observable quit and trigger signal channels that forgive common errors like closing closed channels and signaling closed channels, normally causing a panic.
Package qu provides observable quit and trigger signal channels that forgive common errors like closing closed channels and signaling closed channels, normally causing a panic.
slice
Package slice is a collection of miscellaneous functions involving slices of bytes, including little-endian encoding for 16, 32 and 64-bit unsigned integers used for serialisation length prefixes and system entropy based hash chain padding.
Package slice is a collection of miscellaneous functions involving slices of bytes, including little-endian encoding for 16, 32 and 64-bit unsigned integers used for serialisation length prefixes and system entropy based hash chain padding.
splice
Package splice is a collection of tools for encoding and decoding variables into byte buffers with a fluent chained method interface.
Package splice is a collection of tools for encoding and decoding variables into byte buffers with a fluent chained method interface.
tests
Package tests provides some helpers for tests.
Package tests provides some helpers for tests.
windows
Package windows provides some tools for handling launching subprocesses on windows using cmd.exe.
Package windows provides some tools for handling launching subprocesses on windows using cmd.exe.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL