Documentation ¶
Overview ¶
go-spacemesh is a golang implementation of the Spacemesh node. See - https://spacemesh.io
Directories ¶
Path | Synopsis |
---|---|
Package activation is responsible for creating activation transactions and running the mining flow, coordinating PoST building, sending proofs to PoET and building NIPoST structs.
|
Package activation is responsible for creating activation transactions and running the mining flow, coordinating PoST building, sending proofs to PoET and building NIPoST structs. |
config
Package config provides configuration for GRPC and HTTP api servers
|
Package config provides configuration for GRPC and HTTP api servers |
Package cmd is the base package for various sets of builds and executables created from go-spacemesh
|
Package cmd is the base package for various sets of builds and executables created from go-spacemesh |
hare
package hare is the tester executable running instances of hare consensus algorithm
|
package hare is the tester executable running instances of hare consensus algorithm |
integration
Package integration provides RPC testing harness for executing and interacting with full node
|
Package integration provides RPC testing harness for executing and interacting with full node |
multi_node_sim
package multi_node_sim is an implementation of a framework running multiple nodes in same executable with fast hare implementation.
|
package multi_node_sim is an implementation of a framework running multiple nodes in same executable with fast hare implementation. |
node
Package node contains the main executable for go-spacemesh node
|
Package node contains the main executable for go-spacemesh node |
p2p
package p2p cmd is the main executable for running p2p tests and simulations
|
package p2p cmd is the main executable for running p2p tests and simulations |
Package collector implements event collecting from pubsub
|
Package collector implements event collecting from pubsub |
common
|
|
types
Package types defines the types used by go-spacemesh consensus algorithms and structs
|
Package types defines the types used by go-spacemesh consensus algorithms and structs |
util
Package util provides common utility functions.
|
Package util provides common utility functions. |
Package config contains go-spacemesh node configuration definitions
|
Package config contains go-spacemesh node configuration definitions |
Package crypto provides funcs and types used by other packages to perform crypto related ops
|
Package crypto provides funcs and types used by other packages to perform crypto related ops |
sha3
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
|
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. |
Package database defines interfaces to key value type databases used by various components in go-spacemesh node
|
Package database defines interfaces to key value type databases used by various components in go-spacemesh node |
Package eligibility defines fixed size oracle used for node testing
|
Package eligibility defines fixed size oracle used for node testing |
Package events defines events published by go-spacemsh node using nodes pubsub
|
Package events defines events published by go-spacemsh node using nodes pubsub |
Package fetch contains mechanism to fetch data from remote peers
|
Package fetch contains mechanism to fetch data from remote peers |
Package filesystem provides functionality for interacting with directories and files in a cross-platform manner.
|
Package filesystem provides functionality for interacting with directories and files in a cross-platform manner. |
Package hare implements the Hare Protocol.
|
Package hare implements the Hare Protocol. |
Package layerfetcher fetches layers from remote peers
|
Package layerfetcher fetches layers from remote peers |
Package log provides the both file and console (general) logging capabilities to spacemesh modules such as app and identity.
|
Package log provides the both file and console (general) logging capabilities to spacemesh modules such as app and identity. |
Package mesh defines the main store point for all the block-mesh objects such as blocks, transactions and global state
|
Package mesh defines the main store point for all the block-mesh objects such as blocks, transactions and global state |
Package metrics defines telemetry primitives to be used across components.
|
Package metrics defines telemetry primitives to be used across components. |
Package miner is responsible for creating valid blocks that contain valid activation transactions and transactions
|
Package miner is responsible for creating valid blocks that contain valid activation transactions and transactions |
Package nattraversal provides tools for acquiring ports on a Network Address Translator (NAT).
|
Package nattraversal provides tools for acquiring ports on a Network Address Translator (NAT). |
upnp
Package upnp provides a simple and opinionated interface to UPnP-enabled routers, allowing users to forward ports and discover their external IP address.
|
Package upnp provides a simple and opinionated interface to UPnP-enabled routers, allowing users to forward ports and discover their external IP address. |
Package p2p provides a networking api for creating p2p protocols by enabling sending direct messages to a set of provided neighbors or broadcasting a message to all of them.
|
Package p2p provides a networking api for creating p2p protocols by enabling sending direct messages to a set of provided neighbors or broadcasting a message to all of them. |
config
Package config defines configuration used in the p2p package
|
Package config defines configuration used in the p2p package |
connectionpool
Package connectionpool functions as a connection cache that takes care of connecting and reusing connected sockets.
|
Package connectionpool functions as a connection cache that takes care of connecting and reusing connected sockets. |
discovery
Package discovery implements uses bitcoin-based addrbook to store network addresses and collects them by crawling the network using a simple protocol.
|
Package discovery implements uses bitcoin-based addrbook to store network addresses and collects them by crawling the network using a simple protocol. |
gossip
Package gossip implements simple protocol to send new validated messages to all peers and ignore old or not valid messages.
|
Package gossip implements simple protocol to send new validated messages to all peers and ignore old or not valid messages. |
metrics
Package metrics defines metric reporting for the p2p component.
|
Package metrics defines metric reporting for the p2p component. |
net
Package net manages the accepting network connections/messages and routing the data upward for the protocols to consume.
|
Package net manages the accepting network connections/messages and routing the data upward for the protocols to consume. |
net/wire/delimited
Package delimited implements a reader and writer for simple streams of length-delimited byte records.
|
Package delimited implements a reader and writer for simple streams of length-delimited byte records. |
node
Package node defines simple data structures to represent p2p node identities.
|
Package node defines simple data structures to represent p2p node identities. |
p2pcrypto
Package p2pcrypto defines the cryptographic primitives used to communicate and identify in the p2p network, it uses go stdlib's NaCL box implementation.
|
Package p2pcrypto defines the cryptographic primitives used to communicate and identify in the p2p network, it uses go stdlib's NaCL box implementation. |
server
Package server is used to wrap the p2p services to define multiple req-res messages under one protocol.
|
Package server is used to wrap the p2p services to define multiple req-res messages under one protocol. |
service
Package service defines basic interfaces to for protocols to consume p2p functionality.
|
Package service defines basic interfaces to for protocols to consume p2p functionality. |
version
Package version includes methods to compare versions between nodes.
|
Package version includes methods to compare versions between nodes. |
Package pendingtxs exposes the AccountPendingTxs type, which keeps track of transactions that haven't been applied to global state yet.
|
Package pendingtxs exposes the AccountPendingTxs type, which keeps track of transactions that haven't been applied to global state yet. |
Package rlp implements the RLP serialization format.
|
Package rlp implements the RLP serialization format. |
systest
module
|
|
Package timesync is used to check system time reliability by communicating with NTP time servers.
|
Package timesync is used to check system time reliability by communicating with NTP time servers. |
Package trie implements Merkle Patricia Tries.
|
Package trie implements Merkle Patricia Tries. |
Package turbohare is a component returning block ids for layer as seen by this miner, without running any consensus process
|
Package turbohare is a component returning block ids for layer as seen by this miner, without running any consensus process |
Click to show internal directories.
Click to hide internal directories.