API documentation

agora.api.handler.BlockExternalizedHandler Definitions of the BlockExternalizedHandler
agora.api.handler.PreImageReceivedHandler Definitions of the PreImageReceivedHandler
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.FileBasedLock Implements file based locking that can help synchronize processes
agora.common.Hash Function definition and helper related to hashing
agora.common.ManagedDatabase Contains a managed wrapper around SQLite databases.
agora.common.Metadata Defines metadata which is stored to disk (e.g. peer info)
agora.common.SCPHash Contains definition of hashing routines which SCP uses. These just call the hashing routines from agora.common.Hash
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.genesis.Coinnet Defines the genesis block used by the live network (CoinNet)
agora.consensus.data.genesis.Test Defines a genesis block suitable for testing purpose
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.ConsensusParams The set for consensus-critical constants
agora.consensus.data.Enrollment Data definition for enrollment of validator
agora.consensus.data.genesis Contains primitives related to the genesis block
agora.consensus.data.PreImageInfo Contains definition for the PreImageInfo struct, which is used to communicate new pre-image informations between nodes.
agora.consensus.data.Transaction Defines the data structure of a transaction
agora.consensus.data.UTXOSetValue Defines the UTXO transaction set struct, contains the UTXOFinder delegate
agora.consensus.protocol.Nominator Contains the SCP consensus driver implementation.
agora.consensus.validation.Block Contains validation routines for blocks
agora.consensus.validation.Enrollment Contains validation routines for enrollments
agora.consensus.validation.PreImage Contains validation routines for pre-image
agora.consensus.validation.Transaction Contains validation routines for transactions
agora.consensus.EnrollmentManager Manages this node's Enrollment, the ValidatorSet, and EnrollmentPool
agora.consensus.EnrollmentPool Contains supporting code for managing enrollments registered by nodes on the network to be a validator, which means the enrollment information needs to be confirmed on the consensus protocol to be a validator. The information is stored in a table of SQLite.
agora.consensus.PreImage Hold pre-image related utilities
agora.consensus.Quorum Contains the quorum generator algorithm.
agora.consensus.SCPEnvelopeStore Contains supporting code for storing the latest SCP envelopes, using SQLite as a backing store.
agora.consensus.UTXOSet Contains an SQLite-backed UTXO transaction set class
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.Clock Contains a network-synchronized Clock implementation.
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.FullNode Implementation of the FullNode's API.
agora.node.Ledger The Ledger class binds together other components to provide a consistent view of the state of the node.
agora.node.main Entry point for the Agora node
agora.node.Runner Contains a function which instantiates either a FullNode or a Validator.
agora.node.Validator Implementation of the Validator 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.Byzantine Contains Byzantine node tests, which refuse to co-operate in the SCP consensus protocol in various ways.
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.GenesisBlock Test whether genesis block has enrollment data and existing Genesis Transactions
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.ManyValidators Contains networking tests with a variety of different validator node counts.
agora.test.MultiRoundConsensus Tests for reaching consensus in multiple rounds instead of 1 round. In this test, we make nodes reject nominations for several rounds deliberately until one is accepted at a round R, where R could be arbitrarily high.
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.Quorum Contains various quorum tests, adding and expiring enrollments, making a network with many validators, etc.
agora.test.QuorumPreimage Tests preimage quorum generation behavior.
agora.test.QuorumShuffle Tests regular quorum shuffling behavior.
agora.test.Restart Test node restarting behavior
agora.test.RestoreSCPState Tests restoring SCP Envelope state on restart
agora.test.Simple Contains the simplest possible block creating test
agora.test.TimeBlockInterval Tests behavior of block_interval_sec
agora.test.TimeDrift Tests consensus-reaching behavior when the nodes' clocks start to drift.
agora.test.Timeout Tests connection timeouts
agora.test.ValidatorCleanRestart Contains tests for general situations where validators participate in nominating a block and reaching consensus.
agora.test.ValidatorCount The creation of a block must stop immediately just before all the active validators is expired. This is to allow additional enrollment of validators. Enrollment's cycle is ConsensusParams.validator_cycle, If none of the active validators exist at height validator_cycle, block generation must stop at height validator_cycle-1.
agora.test.VariableBlockSize Tests creating blocks of arbitrary transaction counts.
agora.utils.Log Utilities to deal with logging
agora.utils.PrettyPrinter Defines method to format types to their human readable representation
agora.utils.SCPPrettyPrinter Contains pretty-printing routines specialized for SCP types.
agora.utils.Test Various utilities for testing purpose
agora.utils.WellKnownKeys The list of well-known keypairs
scpd.quorum.QuorumIntersectionChecker Bindings for quorum/QuorumIntersectionChecker.h
scpd.quorum.QuorumTracker Bindings for quorum/QuorumTracker.h
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