|
||
---|---|---|
account | ||
alert | ||
binary | ||
block | ||
cmd | ||
common | ||
config | ||
consensus | ||
db | ||
mempool | ||
merkle | ||
p2p | ||
rpc | ||
state | ||
.gitignore | ||
LICENSE.md | ||
Makefile | ||
README.md |
README.md
Website | Blog | [Forum] (http://forum.tendermint.com) | [IRC] (http://webchat.freenode.net/?randomnick=1&channels=%23tendermint)
Tendermint in Golang
Tendermint is a completely decentralized byzantine consensus protocol suitable for use in cryptocurrencies.
This project is a reference implementation of the protocol.
Submodules
- consensus: core consensus algorithm
- state: application state; mutated by transactions
- blocks: structures of the blockchain
- mempool: gossip of new transactions
- merkle: merkle hash trees
- p2p: extensible P2P networking
Requirements
Go 1.2 or newer.
OpenSSL header files. sudo apt-get install libssl-dev
on Debian/Ubuntu
//TODO OpenSSL header files for other platforms
###Setting up Golang
Set up environment variables. Go requires certain environment variables to compile code. Set these in your terminal, .profile or .zshrc as appropiate.
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/gopkg
Build
make get_deps
make
Run
./tendermint daemon --help
Editing your config file
When ./tendermint daemon
is first run, a file will be create in ~/.tendermint/config.toml
There is not official or testnet SeedNode yet. Will updated with an official list of seed nodes.
//TODO Explanation of other config.toml fields
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
Network = "tendermint_testnet0"
ListenAddr = "0.0.0.0:0"
# First node to connect to. Command-line overridable.
# Seed = "a.b.c.d:pppp"
[DB]
# The only other available backend is "memdb"
Backend = "leveldb"
# The leveldb data directory.
# Dir = "<YOUR_HOME_DIRECTORY>/.tendermint/data"
[RPC]
# For the RPC API HTTP server. Port required.
HTTP.ListenAddr = "0.0.0.0:8080"
[Alert]
# TODO: Document options
[SMTP]
# TODO: Document options
You will also to need to have a genesis.json in ~/.tendermint/. This must be the common genesis.json as the network you are joining from the Seed Node
{
"Accounts": [
{
"Address": "6070ff17c39b2b0a64ca2bc431328037fa0f4760",
"Amount": 200000000
}
],
"Validators": [
{
"PubKey": "01206bd490c212e701a2136eeea04f06fa4f287ee47e2b7a9b5d62edd84cd6ad9753",
"Amount": 100000000,
"UnbondTo": [
{
"Address": "6070ff17c39b2b0a64ca2bc431328037fa0f4760",
"Amount": 100000000
}
]
}
]
}
Resources
IRC Channel: #tendermint on freenode