Module | Description |
agora.api.handler.BlockExternalizedHandler
|
Definitions of the BlockExternalizedHandler
|
agora.api.handler.PreImageReceivedHandler
|
Definitions of the PreImageReceivedHandler
|
agora.api.handler.TransactionReceivedHandler
|
Definitions of the TransactionReceivedHandler
|
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.Key
|
Holds primitive types for key operations
|
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.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.crypto.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.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.DataPayload
|
Contains a type for storing data in a transaction
|
agora.consensus.data.Enrollment
|
Data definition for enrollment of validator
|
agora.consensus.data.genesis
|
Contains primitives related to the genesis block
|
agora.consensus.data.Params
|
The set for consensus-critical constants
|
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.UTXO
|
Defines the UTXO transaction set struct,
contains the UTXOFinder delegate
|
agora.consensus.data.ValidatorBlockSig
|
Contains definition for the ValidatorBlockSig struct,
which is used to communicate block signatures between nodes.
|
agora.consensus.protocol.Data
|
Defines the data used when reaching consensus.
|
agora.consensus.protocol.Nominator
|
Contains the SCP consensus driver implementation.
|
agora.consensus.state.UTXODB
|
Contains a SQLite-backed UTXO set class.
|
agora.consensus.state.UTXOSet
|
Contains the base class for a UTXO set and an AA-backed UTXO set.
|
agora.consensus.state.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.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.Fee
|
Contains the function to calculate the fees used to store the data
|
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.SlashPolicy
|
Manages the slashing policy for the misbehaving validators that do not
reveal their pre-images timely.
|
agora.consensus.validation
|
Contains validation routines for all data types required for 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.admin.AdminInterface
|
Provide a web-based administrative interface to the node
|
agora.node.admin.QRCodeInterface
|
Provides QR service interface used by the node's web-based management
interface
|
agora.node.BlockStorage
|
Define the storage for blocks
|
agora.node.FullNode
|
Implementation of the full node'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.TransactionPool
|
Contains a transaction pool that is serializable to disk,
using SQLite as a backing store.
|
agora.node.Validator
|
Implementation of the Validator API.
|
agora.registry.NameRegistryAPI
|
Definitions of the name registry API
|
agora.registry.NameRegistryImpl
|
Definitions of the name registry API Implementation
|
agora.script.Engine
|
Contains the script execution engine.
|
agora.script.Lock
|
Contains the Lock / Unlock definitions
|
agora.script.Opcodes
|
Contains the supported opcodes for the basic execution engine (non-webASM)
|
agora.script.ScopeCondition
|
Keeps track of scopes and their conditions (TRUE or FALSE).
This struct can be used to implement conditional (IF/ELSE/ENDIF) logic.
|
agora.script.Script
|
Contains the script definition and syntactical opcode validation.
|
agora.script.Stack
|
Contains a stack implementation for use with the script execution engine.
|
agora.stats.App
|
Expose stats specific to the application, such as GC stats, or version.
|
agora.stats.Block
|
Stats corresponding to blocks
|
agora.stats.EndpointReq
|
Stats corresponding to endpoint requests
|
agora.stats.Server
|
Starts up a HTTP server and listen to queries from Prometheus
|
agora.stats.Stats
|
Base stats class that helps define other stats classes
|
agora.stats.Tx
|
Stats corresponding to Transactions
|
agora.stats.Utils
|
Utilities for stats support
|
agora.stats.Validator
|
Stats corresponding to validators
|
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.BlockTimeConsensus
|
Tests the consensus algorithm on block timestamp creation
|
agora.test.Byzantine
|
Contains Byzantine node tests, which refuse to co-operate in the
SCP consensus protocol in various ways.
|
agora.test.Crypto
|
Contains extra tests for the crypto library
|
agora.test.EnrollDifferentUTXOs
|
Contains networking tests with multiple enrollments with different UTXOs.
|
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.Fee
|
Contains tests for the fee distribution
|
agora.test.GenesisBlock
|
Test whether genesis block has enrollment data and
existing Genesis Transactions
|
agora.test.GossipProtocol
|
Contains tests for Gossip Protocol.
|
agora.test.InvalidBlockSigByzantine
|
Contains Byzantine node tests, which refuse to co-operate in the
SCP consensus protocol in various ways.
|
agora.test.Ledger
|
Contains tests for the Block creation and adding blocks to the ledger,
as well as the catch-up
|
agora.test.LocalTransactions
|
Contains tests for network behaviour when nominated TXs are not known to
every node
|
agora.test.LockHeight
|
Tests for the transaction-level absolute time lock.
|
agora.test.ManyBlocks
|
Testing generastion of many blocks with re-enrolling every cycle
|
agora.test.ManyValidators
|
Contains networking tests with a variety of different validator node counts.
|
agora.test.MissingPreImageDetection
|
Contains tests for the validators not revealing their pre-images.
|
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.NameRegistry
|
Test for the NameRegistry functionality
|
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.PeriodicCatchup
|
Check that if the node does not externalize the block when triggered by SCP
that it will fetch the block later during periodic catchup and then
successfully externalize.
|
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.RestoreSlashingInfo
|
Contains tests for re-routing part of the frozen UTXO of a slashed
validater to CommonsBudget address.
|
agora.test.Simple
|
Contains the simplest possible block creating test
|
agora.test.SlashingMisbehavingValidator
|
Contains tests for re-routing part of the frozen UTXO of a slashed
validater to CommonsBudget address.
|
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.UnlockAge
|
Tests for the input-level relative time lock.
|
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.ValidatorRecurringEnrollment
|
Ensures validators re-enroll at the end of their validator cycle
when configured to do so
|
agora.test.VariableBlockSize
|
Tests creating blocks of arbitrary transaction counts.
|
agora.utils.gc.bits
|
Contains a bitfield used by the GC.
|
agora.utils.gc.GC
|
A garbage collector that register memory allocations
|
agora.utils.gc.os
|
Contains OS-level routines needed by the garbage collector.
|
agora.utils.gc.pooltable
|
A sorted array to quickly lookup pools.
|
agora.utils.InetUtils
|
Lower level utility functions for networking
|
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.TracyAPI
|
Binding for Tracy C API
|
agora.utils.Utility
|
Utility functions that cannot be put anywhere else
|
agora.utils.WellKnownKeys
|
The list of well-known keypairs
|
agora.utils.Workarounds
|
Workarounds for compiler / runtime / upstream issues
|
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
|