Go to file
Zaki Manian 3afaff07af Improved instructions for getting started in the ReadMe 2015-01-07 16:19:13 -08:00
account RegisterInterface() so we can implement custom JSON codec 2015-01-04 17:33:18 -08:00
alert use tendermint/log15 2014-12-29 19:44:38 -08:00
binary time encoding in binary/reflect 2015-01-06 15:51:41 -08:00
block blockchain & block rpc handlers 2015-01-07 01:15:39 -08:00
cmd time encoding in binary/reflect 2015-01-06 15:51:41 -08:00
common change logger to log15 2014-12-29 18:09:06 -08:00
config time encoding in binary/reflect 2015-01-06 15:51:41 -08:00
consensus time encoding in binary/reflect 2015-01-06 15:51:41 -08:00
db gen_tx for signing transactions 2014-12-31 22:13:49 -08:00
mempool use tendermint/log15 2014-12-29 19:44:38 -08:00
merkle Unreader to unread bytes 2014-12-29 15:14:54 -08:00
p2p Stop peer routines upon connection failure 2014-12-30 16:49:23 -08:00
rpc blockchain & block rpc handlers 2015-01-07 01:15:39 -08:00
state type Ed25519[Signature|PubKey] struct{[]byte} -> []byte 2015-01-03 20:24:02 -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 Improved instructions for getting started in the ReadMe 2015-01-07 16:19: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.json

The file will be create in ~/.tendermint/config.json

There is not official or testnet SeedNode yet. Will updated with an official list of seed nodes.

//TODO Explanation of other config.json fields

{
        "Network": "tendermint_testnet0",
        "LAddr": "0.0.0.0:0",
        "SeedNode": "",
        "DB": {
                "Backend": "leveldb",
                "Dir": "/home/zaki/.tendermint/data"
        },
        "Alert": {
                "MinInterval": 0,
                "TwilioSid": "",
                "TwilioToken": "",
                "TwilioFrom": "",
                "TwilioTo": "",
                "EmailRecipients": null
        },
        "SMTP": {
                "User": "",
                "Password": "",
                "Host": "",
                "Port": 0
        },
        "RPC": {
                "HTTPLAddr": "0.0.0.0:0"
        }
}

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