API documentation

ModuleDescription
agora.api.FullNode Definitions of the full node API
agora.api.Validator Definitions of the validator API
agora.common.crypto.Crc16 Package crc16 is implementation according to CCITT standards.
agora.common.crypto.ECC Elliptic-curve primitives
agora.common.crypto.Key Holds primitive types for key operations
agora.common.crypto.Schnorr Low level utilities to perform Schnorr signatures on Curve25519.
agora.common.Amount Defines a monetary type used in the blockchain
agora.common.BanManager Contains code to support temporarily banning from communicating with specific addressses which may belong to badly-behaving nodes.
agora.common.BitField Contains a templated BitField implementation
agora.common.Config Define the configuration objects that are used through the application
agora.common.Hash Function definition and helper related to hashing
agora.common.Metadata Defines metadata which is stored to disk (e.g. peer info)
agora.common.Serializer Function definition and helper related to serialization
agora.common.Set Contains a simple Set implementation (wrapper around builtin hashmaps)
agora.common.Task Contains a task manager backed by vibe.d's event loop.
agora.common.TransactionPool Contains a transaction pool that is serializable to disk, using SQLite as a backing store.
agora.common.Types Defines common types used by Agora
agora.consensus.data.Block Defines the data structure of a block
agora.consensus.data.ConsensusData Defines the data used when reaching consensus.
agora.consensus.data.Enrollment Data definition for enrollment of validator
agora.consensus.data.PreimageInfo Contains supporting code for enrollment process.
agora.consensus.data.Transaction Defines the data structure of a transaction
agora.consensus.data.UTXOSet Contains an SQLite-backed UTXO transaction set class
agora.consensus.protocol.Nominator Contains the SCP consensus driver implementation.
agora.consensus.EnrollmentManager Contains supporting code for enrollment process.
agora.consensus.Genesis Contains primitives related to the genesis block
agora.consensus.Validation Contains validation routines for all data types required for consensus.
agora.consensus.ValidatorSet Contains supporting code for managing validators' information using SQLite as a backing store, including the enrolled height which means enrollment process is confirmed as part of consensus.
agora.network.NetworkClient Contains code used to communicate with another remote node
agora.network.NetworkManager Expose facilities used by the Node to communicate with the network
agora.node.BlockStorage Define the storage for blocks
agora.node.Ledger Contains supporting code for tracking the current ledger.
agora.node.main Entry point for the Agora node
agora.node.Node Implementation of the Node's API.
agora.test.BanManager Contains tests for banning of unreachable nodes or in situations where timeouts fail or time-out.
agora.test.Base Contains utilities to be used by tests to easily set up test environments
agora.test.Consensus Contains consensus tests for various types of quorum configurations.
agora.test.EnrollmentManager Contains tests for the creation of an enrollment data, enrolling as a validator and propagating the information through the network
agora.test.Failures Contains tests which should shut down the node due to misconfiguration.
agora.test.GossipProtocol Contains tests for Gossip Protocol.
agora.test.Ledger Contains tests for the Block creation and adding blocks to the ledger, as well as the catch-up
agora.test.Metadata Contains tests for the node network (P2P) behavior
agora.test.NetworkClient Contains tests for the functionality of the NetworkClient.
agora.test.NetworkDiscovery Contains tests for the node discovery behavior
agora.test.NetworkManager Contains tests for the tests & error-handling of the NetworkManager
agora.test.Simple Contains the simplest possible block creating test. Useful as a starting point for creating more complext test-cases, or just to test new behavior with the simplest creation of blocks.
agora.utils.Log Utilities to deal with logging
agora.utils.PrettyPrinter Defines method to format types to their human readable representation
agora.utils.Test Various utilities for testing purpose
scpd.scp.BallotProtocol Bindings for scp/BallotProtocol.h
scpd.scp.LocalNode Bindings for scp/LocalNode.h
scpd.scp.NominationProtocol Bindings for scp/NominationProtocol.h
scpd.scp.QuorumSetUtils Bindings for scp/QuorumSetUtils.h
scpd.scp.SCP Bindings for scp/SCP.h, the main class / entrypoint of the SCP protocol
scpd.scp.SCPDriver Bindings for scp/SCPDriver.h, the class to derive to implement the SCP protocol
scpd.scp.Slot Bindings for scp/Slot.h
scpd.scp.Utils Extra bindings for scp for D usage, and other SCP-specific symbols
scpd.tests.GlueTypes Contains types used for size & ABI object layout checks.
scpd.tests.LayoutTest Contains runtime field size & ABI object layout checks.
scpd.tests.SizeTest Contains runtime size checks for the structs.
scpd.types.Stellar_SCP Porting of Stellar's Stellar_SCP.h, itself derived from Stellar_SCP.x
scpd.types.Stellar_types Porting of Stellar's Stellar_types.h, itself derived from Stellar_types.x
scpd.types.Utils C++-side utilities for D code, such as wrapper for vector.push_back
scpd.types.XDRBase Binding to xdrpp types (the library)
scpd.Cpp Types currently missing from core.stdcpp and some additional utilities