Accumulate is a novel blockchain network designed to be hugely scalable while maintaining security. More details
The CLI lives in ./cmd/accumulated
. It can be run directly via go run ./cmd/accumulated ...
, which builds to a
temporary directory and executes the binary in one go. It can be built via go build ./cmd/accumualted
, which
creates accumulated
or accumulated.exe
in the current directory. It can be installed to $GOPATH/bin/accumulated
(
GOPATH defaults to $HOME/go
) via
go install ./cmd/accumulated
.
To initialize node configuration in ~/.accumulate
, choose a network from
networks/networks.go
, and run accumulated init -n <name>
.
Once ~/.accumulate
is initialized, run accumulated run -n <n>
where <n>
is the index of the node you want to run.
For example, "Arches" has two nodes, index 0 and index 1.
To set up a testnet on your PC, using localhost addresses, run accumulated testnet -w <config-dir>
,
e.g. accumulated testnet -w ./nodes
.
-v/--validators
sets the number of nodes created, default 3.--ip
sets the IP address of the first node, default127.0.1.1
. Nodes after the first will increment the IP, e.g.127.0.1.2
.--port
sets the base port, default26656
. Tendermint P2P will run on the base port, Tendermint RPC on base port + 1, Tendermint GRPC on +2, Accumulate RPC on +3, Accumulate JSONRPC API on +4, and Accumulate REST API on +5.
To run a node in the testnet, run accumulated run -w <dir>/Node<n>
, e.g.
accumulated run -w ./nodes/Node0
.
Accumulate is broken into the following components:
cmd/accumulated
- Daemoncmd/accumulate
- CLI walletconfig
- Daemon configuration typesinternal/abci
- ABCI implementationinternal/api
- JSON-RPC v1; Deprecated: useinternal/api/v2
internal/api/v2
- JSON-RPC v2internal/chain
- Transaction validation and processing (aka chain validators)internal/cmd/gentypes
- Type generator forinternal/api
andprotocol
internal/encoding
- Shared code used by generated types ininternal/api
andprotocol
internal/genesis
- Objects that are created when the node first starts upinternal/logging
- Logging setupinternal/node
- Node configuration, initialization, and executioninternal/relay
- The relay, responsible for relaying transactions to the appropriate BVC; Deprecated: useinternal/api/v2
internal/testing
- Test helpersinternal/url
- Accumulate URL parserinternal/web/static
- Embedded web server contentnetworks
- Accumulate network definitionsprotocol
- Protocol types and definitionsrouter
- Accumulate APIsmt
- Stateful Merkle Treetypes
- Data type definitions, used for RPC and persistence; Deprecated: these packages will eventually be moved or replaced, new work should happen elsewhere
To load test an Accumulate network, run accumulated testnet --network <name>
or accumulated testnet --remote <ip-addr>
. These flags can be combined.
--network
adds the first IP of the named or numbered network to the target list.--remote
adds the given IP to the target list.--wallets
sets the number of generated wallets.--transactions
sets the number of generated transactions.