Go to file
Jae Kwon 135894ea88 Dot import -> named import
Changed modulename_ to short module names
Also removed Unreader, replaced with PrefixdReader in select locations
2015-01-14 20:34:53 -08:00
account Dot import -> named import 2015-01-14 20:34:53 -08:00
alert Write log also to a file. 2015-01-08 17:24:04 -08:00
binary Dot import -> named import 2015-01-14 20:34:53 -08:00
block Dot import -> named import 2015-01-14 20:34:53 -08:00
cmd Dot import -> named import 2015-01-14 20:34:53 -08:00
common Dot import -> named import 2015-01-14 20:34:53 -08:00
config Send SeenValidation to peer & use for proposals when we don't have LastCommits due to reboot 2015-01-09 02:40:36 -08:00
consensus Dot import -> named import 2015-01-14 20:34:53 -08:00
db rpc/account; fixed mempool tx filter bug; fixed iavl_tree persistence 2015-01-10 05:41:50 -08:00
logger Write log also to a file. 2015-01-08 17:24:04 -08:00
mempool Dot import -> named import 2015-01-14 20:34:53 -08:00
merkle Dot import -> named import 2015-01-14 20:34:53 -08:00
p2p Dot import -> named import 2015-01-14 20:34:53 -08:00
rpc Dot import -> named import 2015-01-14 20:34:53 -08:00
state Dot import -> named import 2015-01-14 20:34:53 -08:00
.gitignore start writing rpc 2014-12-16 05:43:23 -08:00
LICENSE.md Update README 2014-12-31 16:57:38 -08:00
Makefile fix race conditions 2014-12-28 17:10:03 -08:00
README.md Changed PubKey25519 Address to include TypeByte 2015-01-14 00:07:13 -08:00

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

Install Go for your platform

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

Build Status

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

//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.
SeedNode =        "23.239.22.253:8080"

[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:8081"

[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": "553722287BF1230C081C270908C1F453E7D1C397",
      "Amount":  200000000
    },
    {
      "Address": "AC89A6DDF4C309A89A2C4078CE409A5A7B282270",
      "Amount":  200000000
    }
  ],
  "Validators": [
    {
      "PubKey": [1, "932A857D334BA5A38DD8E0D9CDE9C84687C21D0E5BEE64A1EDAB9C6C32344F1A"],
      "Amount": 100000000,
      "UnbondTo": [
        {
          "Address": "553722287BF1230C081C270908C1F453E7D1C397",
          "Amount":  100000000
        }
      ]
    }
  ]
}

Resources

IRC Channel: #tendermint on freenode