server: - always has read & write timeouts - ping handler never blocks the reader (see A) - sends regular pings to check up on a client A: at some point server write buffer can become full, so in order not to block reads from a client (see https://github.com/gorilla/websocket/issues/97), server may skip some pongs. As a result, client may disconnect. But you either have to do that or block the reader. There is no third way. client: - optional read & write timeouts - optional ping/pong to measure latency
Tendermint
Byzantine-Fault Tolerant State Machine Replication. Or Blockchain for short.
| Branch | Tests | Coverage | Report Card |
|---|---|---|---|
| develop | |||
| master |
NOTE: This is alpha software. Please contact us if you intend to run it in production.
Tendermint Core is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine, written in any programming language, and securely replicates it on many machines.
For more background, see the introduction.
To get started developing applications, see the application developers guide.
Code of Conduct
Please read, understand and adhere to our code of conduct.
Install
To download pre-built binaries, see our downloads page.
To install from source, you should be able to:
go get -u github.com/tendermint/tendermint/cmd/tendermint
For more details (or if it fails), see the install guide.
Contributing
Yay open source! Please see our contributing guidelines.
Resources
Tendermint Core
Sub-projects
- ABCI, the Application Blockchain Interface
- Go-Wire, a deterministic serialization library
- Go-Crypto, an elliptic curve cryptography library
- TmLibs, an assortment of Go libraries
- Merkleeyes, a balanced, binary Merkle tree for ABCI apps