Application BlockChain Interface (ABCI)
, then Tendermint will take care the blockchain parts.liked init MONIKER
. This will generate basic configuration files and a template genesis.json
.genesis.json
for chain parameters.liked add-genesis-account
(or just modify genesis.json
manually) to initialize genesis account list.genesis.json
to generate and sign genesis transaction by liked gentx
. The genesis transaction with signature will be stored in .liked/config/gentx/
folder.liked collect-gentxs
to collect the genesis transactions into genesis.json
.genesis.json
.genesis.json
to all validators.genesis.json
to start the node..liked/config/priv_validator_key.json
in plaintext, while the signing state is stored in .liked/data/priv_validator_state.json
. One can get its consensus public key by running liked tendermint show-validator
.priv_validator_laddr
in config.toml
to allow the external service to connect to the node and provide signatures when needed..liked/config/node_key.json
in plaintext. One can get its node ID by running liked tendermint show-node-id
.likecli keys add
, it is stored and encrypted inside the database in .likecli
. The initialization process will show mnemonic words for backup the key.liked
and likecli
applications with ledger
tag. The applications require Go 1.13+ to compile. One can compile the applications by go build -o likecli --tags 'ledger' cmd/likecli/main.go
(change the paths for liked
).--ledger
option in command line arguments: likecli keys add my_key_name --ledger
.sdk.Msg
is an interface implemented by Cosmos modules. It wraps the application logic related data, and has interface on things like who should be signing the message, how should the message be signed, how to validate the message, etc.CheckTx
to do basic verifications for the trasnaction, e.g. checking sequence and signature.p2p.external_address
is not set in config.toml
, Tendermint will detect the external address from the listener or UPnP.tcp://0.0.0.0:26656
, the node will broadcast its own IP as 0.0.0.0:26657
, which is invalid for others to connect to.p2p.external_address
option cannot be overridden by command line arguments or environment variables, so it is not possible to fix by external programs.--get-ip
option in liked
, which detects external IP by some common IP detecting services (e.g. httpbin.org) and set the p2p.external_address
field in the configuration structure before real execution.p2p.external_address
instead in config.toml
, but should remember to update this field when the external address changes.mint
module will create coins for inflation, and the distribution
module will record block validators precommit info to count missing validators. Since the application state is always changing, Tendermint will keep creating new empty blocks.mint
module, there is a parameter on the expected number of blocks per year. Then, in the chain's application logic, the inflation rate and annual provision will be computed by that block period instead of actually one year.365.25 * 24 * 3600 / 60 = 525960
blocks per year, but then there are transactions every 10 seconds, then the actual number of blocks per year will be 6 times as the expected one.mint
module to use block timestamp instead of block number as the measure on time, but more investigation is needed.