tendermint
A light client for Tendermint blockchains which works in Node.js and browsers.
Supports Tendermint v0.33.
Usage
npm install tendermint
Light Node
Requests data over RPC and verifies blockchain headers
let Tendermint = // some full node's RPC portlet peer = 'ws://localhost:46657' // `state` contains a part of the chain we know to be valid. If it's// too old, we cannot safely verify the chain and need to get a newer// state out-of-band.let state = // a header, in the same format as returned by RPC // (see http://localhost:46657/commit, under `"header":`) header: ... // the valdiator set for this header, in the same format as returned by RPC // (see http://localhost:46657/validators) validators: ... // the commit (validator signatures) for this header, in the same format as // returned by RPC (see http://localhost:46657/commit, under `"commit":`) commit: ... // optionslet opts = // the maximum age of a state to be safely accepted, // e.g. the unbonding period // (in seconds) maxAge: 1728000 // defaults to 30 days // instantiate client. will automatically start syncing to the latest state of// the blockchainlet node = // make sure to handle errorsnode// emitted once we have caught up to the current chain tipnode// emitted every time we have verified a new part of the blockchainnode // returns the height of the most recent header we have verifiednodeheight // returns the state object ({ header, validators, commit }) of the most recently// verified header, should be stored and used to instantiate the light client// the next time the user runs the appnode
RPC Client
Simple client to make RPC requests to nodes
let RpcClient = let client = // request a blockclient
The following RPC methods are available:
- subscribe
- unsubscribe
- status
- netInfo
- dialSeeds
- blockchain
- genesis
- block
- validators
- dumpConsensusState
- broadcastTxCommit
- broadcastTxAsync
- broadcastTxSync
- unconfirmedTxs
- numUnconfirmedTxs
- abciQuery
- abciInfo
- abciProof
- unsafeFlushMempool
- unsafeSetConfig
- unsafeStartCpuProfiler
- unsafeStopCpuProfiler
- unsafeWriteHeapProfile