Documentation ¶
Overview ¶
ecrd is a full-node Decred implementation written in Go.
The default options are sane for most users. This means ecrd will work 'out of the box' for most users. However, there are also a wide variety of flags that can be used to control it.
The following section provides a usage overview which enumerates the flags. An interesting point to note is that the long form of all of these options (except -C) can be specified in a configuration file that is automatically parsed when ecrd starts up. By default, the configuration file is located at ~/.ecrd/ecrd.conf on POSIX-style operating systems and %LOCALAPPDATA%\ecrd\ecrd.conf on Windows. The -C (--configfile) flag, as shown below, can be used to override this location.
Usage:
ecrd [OPTIONS]
Application Options:
-V, --version Display version information and exit -C, --configfile= Path to configuration file -b, --datadir= Directory to store data --logdir= Directory to log output. --nofilelogging= Disable file logging. -a, --addpeer= Add a peer to connect with at startup --connect= Connect only to the specified peers at startup --nolisten Disable listening for incoming connections -- NOTE: Listening is automatically disabled if the --connect or --proxy options are used without also specifying listen interfaces via --listen --listen= Add an interface/port to listen for connections (default all interfaces port: 9108, testnet: 19108) --maxsameip= Max number of connections with the same IP -- 0 to disable (default: 5) --maxpeers= Max number of inbound and outbound peers (125) --nobanning Disable banning of misbehaving peers --banduration= How long to ban misbehaving peers. Valid time units are {s, m, h}. Minimum 1 second (24h0m0s) --banthreshold= Maximum allowed ban score before disconnecting and banning misbehaving peers. --whitelist= Add an IP network or IP that will not be banned. (eg. 192.168.1.0/24 or ::1) -u, --rpcuser= Username for RPC connections -P, --rpcpass= Password for RPC connections --rpclimituser= Username for limited RPC connections --rpclimitpass= Password for limited RPC connections --rpclisten= Add an interface/port to listen for RPC connections (default port: 9109, testnet: 19109) --rpccert= File containing the certificate file --rpckey= File containing the certificate key --rpcmaxclients= Max number of RPC clients for standard connections (10) --rpcmaxwebsockets= Max number of RPC websocket connections (25) --norpc Disable built-in RPC server -- NOTE: The RPC server is disabled by default if no rpcuser/rpcpass or rpclimituser/rpclimitpass is specified --notls Disable TLS for the RPC server -- NOTE: This is only allowed if the RPC server is bound to localhost --nodnsseed Disable DNS seeding for peers --externalip= Add an ip to the list of local addresses we claim to listen on to peers --proxy= Connect via SOCKS5 proxy (eg. 127.0.0.1:9050) --proxyuser= Username for proxy server --proxypass= Password for proxy server --onion= Connect to tor hidden services via SOCKS5 proxy (eg. 127.0.0.1:9050) --onionuser= Username for onion proxy server --onionpass= Password for onion proxy server --noonion Disable connecting to tor hidden services --torisolation Enable Tor stream isolation by randomizing user credentials for each connection. --testnet Use the test network --simnet Use the simulation test network --regnet Use the regression test network --nocheckpoints Disable built-in checkpoints. Don't do this unless you know what you're doing. --dbtype= Database backend to use for the Block Chain (ffldb) --profile= Enable HTTP profiling on given [addr:]port -- NOTE: port must be between 1024 and 65536 --cpuprofile= Write CPU profile to the specified file --memprofile= Write mem profile to the specified file --dumpblockchain= Write blockchain as a gob-encoded map to the specified file --miningtimeoffset= Offset the mining timestamp of a block by this many seconds (positive values are in the past) -d, --debuglevel= Logging level for all subsystems {trace, debug, info, warn, error, critical} -- You may also specify <subsystem>=<level>,<subsystem2>=<level>,... to set the log level for individual subsystems -- Use show to list available subsystems (info) --upnp Use UPnP to map our listening port outside of NAT --minrelaytxfee= The minimum transaction fee in DCR/kB to be considered a non-zero fee. --limitfreerelay= Limit relay of transactions with no transaction fee to the given amount in thousands of bytes per minute (15) --norelaypriority Do not require free or low-fee transactions to have high priority for relaying --maxorphantx= Max number of orphan transactions to keep in memory (1000) --generate Generate (mine) bitcoins using the CPU --miningaddr= Add the specified payment address to the list of addresses to use for generated blocks -- At least one address is required if the generate option is set --blockminsize= Minimum block size in bytes to be used when creating a block --blockmaxsize= Maximum block size in bytes to be used when creating a block (375000) --blockprioritysize= Size in bytes for high-priority/low-fee transactions when creating a block (20000) --nonaggressive Disable mining off of the parent block of the blockchain if there aren't enough voters --nominingstatesync Disable synchronizing the mining state with other nodes --allowoldvotes Enable the addition of very old votes to the mempool --sigcachemaxsize= The maximum number of entries in the signature verification cache. --blocksonly Do not accept transactions from remote peers. --acceptnonstd Accept and relay non-standard transactions to the network regardless of the default settings for the active network. --rejectnonstd Reject non-standard transactions regardless of the default settings for the active network. --altdnsnames: Specify additional dns names to use when generating the rpc server certificate [supports ECRD_ALT_DNSNAMES environment variable]
Help Options:
-h, --help Show this help message
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package addrmgr implements concurrency safe Eacred address manager.
|
Package addrmgr implements concurrency safe Eacred address manager. |
Package bech32 provides a Go implementation of the bech32 format specified in BIP 173.
|
Package bech32 provides a Go implementation of the bech32 format specified in BIP 173. |
Package blockchain implements Eacred block handling and chain selection rules.
|
Package blockchain implements Eacred block handling and chain selection rules. |
chaingen
Package chaingen provides facilities for generating a full chain of blocks.
|
Package chaingen provides facilities for generating a full chain of blocks. |
fullblocktests
Package fullblocktests provides a set of block consensus validation tests.
|
Package fullblocktests provides a set of block consensus validation tests. |
indexers
Package indexers implements optional block chain indexes.
|
Package indexers implements optional block chain indexes. |
internal/dbnamespace
Package dbnamespace contains constants that define the database namespaces for the purpose of the blockchain, so that external callers may easily access this data.
|
Package dbnamespace contains constants that define the database namespaces for the purpose of the blockchain, so that external callers may easily access this data. |
stake
Package stake contains code for all of ecrd's stake transaction chain handling and other portions related to the Proof-of-Stake (PoS) system.
|
Package stake contains code for all of ecrd's stake transaction chain handling and other portions related to the Proof-of-Stake (PoS) system. |
stake/internal/dbnamespace
Package dbnamespace contains constants that define the database namespaces for the purpose of the blockchain, so that external callers may easily access this data.
|
Package dbnamespace contains constants that define the database namespaces for the purpose of the blockchain, so that external callers may easily access this data. |
stake/internal/tickettreap
Package tickettreap implements a treap data structure that is used to hold live tickets ordered by their key along with some associated data using a combination of binary search tree and heap semantics.
|
Package tickettreap implements a treap data structure that is used to hold live tickets ordered by their key along with some associated data using a combination of binary search tree and heap semantics. |
standalone
Package standalone provides standalone functions useful for working with the Eacred blockchain consensus rules.
|
Package standalone provides standalone functions useful for working with the Eacred blockchain consensus rules. |
Package certgen includes a common base for creating a new TLS certificate key pair.
|
Package certgen includes a common base for creating a new TLS certificate key pair. |
Package chaincfg defines chain configuration parameters.
|
Package chaincfg defines chain configuration parameters. |
chainec
Package chainec provides wrapper functions to abstract the ec functions.
|
Package chainec provides wrapper functions to abstract the ec functions. |
chainhash
Package chainhash provides abstracted hash functionality.
|
Package chainhash provides abstracted hash functionality. |
cmd
|
|
Package connmgr implements a generic Eacred network connection manager.
|
Package connmgr implements a generic Eacred network connection manager. |
crypto
|
|
blake256
Package blake256 implements BLAKE-256 and BLAKE-224 hash functions (SHA-3 candidate).
|
Package blake256 implements BLAKE-256 and BLAKE-224 hash functions (SHA-3 candidate). |
ripemd160
Package ripemd160 implements the RIPEMD-160 hash algorithm.
|
Package ripemd160 implements the RIPEMD-160 hash algorithm. |
Package database provides a block and metadata storage database.
|
Package database provides a block and metadata storage database. |
ffldb
Package ffldb implements a driver for the database package that uses leveldb for the backing metadata and flat files for block storage.
|
Package ffldb implements a driver for the database package that uses leveldb for the backing metadata and flat files for block storage. |
internal/treap
Package treap implements a treap data structure that is used to hold ordered key/value pairs using a combination of binary search tree and heap semantics.
|
Package treap implements a treap data structure that is used to hold ordered key/value pairs using a combination of binary search tree and heap semantics. |
secp256k1
Package secp256k1 implements support for the elliptic curves needed for Eacred.
|
Package secp256k1 implements support for the elliptic curves needed for Eacred. |
Package dcrjson provides infrastructure for working with Eacred JSON-RPC APIs.
|
Package dcrjson provides infrastructure for working with Eacred JSON-RPC APIs. |
Package dcrutil provides eacred-specific convenience functions and types.
|
Package dcrutil provides eacred-specific convenience functions and types. |
txsort
Package txsort provides stable transaction sorting.
|
Package txsort provides stable transaction sorting. |
Package fees provides eacred-specific methods for tracking and estimating fee rates for new transactions to be mined into the network.
|
Package fees provides eacred-specific methods for tracking and estimating fee rates for new transactions to be mined into the network. |
cmd/dumpfeedb
Tool dumpfeedb can be used to dump the internal state of the buckets of an estimator's feedb so that it can be externally analyzed.
|
Tool dumpfeedb can be used to dump the internal state of the buckets of an estimator's feedb so that it can be externally analyzed. |
Package gcs provides an API for building and using a Golomb-coded set filter.
|
Package gcs provides an API for building and using a Golomb-coded set filter. |
blockcf
Package blockcf provides functions for building committed filters for blocks using Golomb-coded sets in a way that is useful for light clients such as SPV wallets.
|
Package blockcf provides functions for building committed filters for blocks using Golomb-coded sets in a way that is useful for light clients such as SPV wallets. |
blockcf2
Package blockcf2 provides functions for building committed filters for blocks using Golomb-coded sets in a way that is useful for light clients such as SPV wallets.
|
Package blockcf2 provides functions for building committed filters for blocks using Golomb-coded sets in a way that is useful for light clients such as SPV wallets. |
Package hdkeychain provides an API for Decred hierarchical deterministic extended keys (based on BIP0032).
|
Package hdkeychain provides an API for Decred hierarchical deterministic extended keys (based on BIP0032). |
internal
|
|
limits
Package limits allows some process limits to be raised.
|
Package limits allows some process limits to be raised. |
version
Package version provides a single location to house the version information for ecrd and other utilities provided in the same repository.
|
Package version provides a single location to house the version information for ecrd and other utilities provided in the same repository. |
Package lru implements a generic least-recently-used cache with near O(1) perf.
|
Package lru implements a generic least-recently-used cache with near O(1) perf. |
Package mempool provides a policy-enforced pool of unmined Decred transactions.
|
Package mempool provides a policy-enforced pool of unmined Decred transactions. |
Package mining includes all mining and policy types, and will house all mining code in the future.
|
Package mining includes all mining and policy types, and will house all mining code in the future. |
Package peer provides a common base for creating and managing Decred network peers.
|
Package peer provides a common base for creating and managing Decred network peers. |
rpc
|
|
jsonrpc/types
Package types implements concrete types for marshalling to and from the ecrd JSON-RPC commands, return values, and notifications.
|
Package types implements concrete types for marshalling to and from the ecrd JSON-RPC commands, return values, and notifications. |
Package rpcclient implements a websocket-enabled Eacred JSON-RPC client.
|
Package rpcclient implements a websocket-enabled Eacred JSON-RPC client. |
Package rpctest provides a ecrd-specific RPC testing harness crafting and executing integration tests by driving a `ecrd` instance via the `RPC` interface.
|
Package rpctest provides a ecrd-specific RPC testing harness crafting and executing integration tests by driving a `ecrd` instance via the `RPC` interface. |
Package sampleconfig provides a single constant that contains the contents of the sample configuration file for ecrd.
|
Package sampleconfig provides a single constant that contains the contents of the sample configuration file for ecrd. |
Package txscript implements the Decred transaction script language.
|
Package txscript implements the Decred transaction script language. |
Package wire implements the Decred wire protocol.
|
Package wire implements the Decred wire protocol. |