fff7f45 | Anton Kaliaev | 18 December 2019, 15:46:21 UTC | cs: set missing_validators(_power) metrics to 0 for 1st block (#4194) also - do not send any LastCommitInfo.Votes for 1st block. - use cs.LastValidators (not cs.Validators) in recordMetrics when counting missing validators note: remember that the first LastCommit is intentionally empty, so it makes sense for LastCommitInfo.Votes to also be empty. Because we can't really tell if validator signed or not. Similar for ^ metrics, we can't say if particular validator was missing or not. Closes #4192 | 18 December 2019, 15:46:21 UTC |
bd77284 | Ethan Buchman | 18 December 2019, 07:57:59 UTC | docs: update app-architecture.md (#4259) Address #4089 by clarifying the different uses of "application" | 18 December 2019, 07:57:59 UTC |
eec9b2c | Ayush Kaul | 17 December 2019, 14:50:32 UTC | delete tm-monitor tool #4247 (#4255) * delete tm-monitor tool #4247 * removed docs * remove gox | 17 December 2019, 14:50:32 UTC |
9bd0f9e | Marko | 17 December 2019, 12:02:45 UTC | lint: golint issue fixes (#4258) * lint: golint issue fixes - on my local machine golint is a lot stricter than the bot so slowly going through and fixing things. Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * more fixes from golint * remove isPeerPersistentFn * add changelog entry | 17 December 2019, 12:02:45 UTC |
f077727 | Prince Sinha | 16 December 2019, 14:47:36 UTC | rpc: added proposer in consensus_state (#4250) * added proposer in consensus_state * added proposer in consensus_state * proposer changes * added proposer in consensus_state * proposer added | 16 December 2019, 14:47:36 UTC |
4bfec79 | Alexander Bezobchuk | 13 December 2019, 08:46:23 UTC | cli: debug sub-command (#4227) ## Issue Implement a new subcommand: tendermint debug. This subcommand itself has two subcommands: $ tendermint debug kill <pid> </path/to/out.zip> --home=</path/to/app.d> Writes debug info into a compressed archive. The archive will contain the following: ├── config.toml ├── consensus_state.json ├── net_info.json ├── stacktrace.out ├── status.json └── wal The Tendermint process will be killed. $ tendermint debug dump </path/to/out> --home=</path/to/app.d> This command will perform similar to kill except it only polls the node and dumps debugging data every frequency seconds to a compressed archive under a given destination directory. Each archive will contain: ├── consensus_state.json ├── goroutine.out ├── heap.out ├── net_info.json ├── status.json └── wal Note: goroutine.out and heap.out will only be written if a profile address is provided and is operational. This command is blocking and will log any error. replaces: #3327 closes: #3249 ## Commits: * Implement debug tool command stubs * Implement net getters and zip logic * Update zip dir API and add home flag * Add simple godocs for kill aux functions * Move IO util to new file and implement copy WAL func * Implement copy config function * Implement killProc * Remove debug fmt * Validate output file input * Direct STDERR to file * Godoc updates * Sleep prior to killing tail proc * Minor cleanup of godocs * Move debug command and add make target * Rename command handler function * Add example to command long descr * Move current implementation to cmd/tendermint/commands/debug * Update kill cmd long description * Implement dump command * Add pending log entry * Add gosec nolint * Add error check for Mkdir * Add os.IsNotExist(err) * Add to debugging section in running-in-prod doc | 13 December 2019, 08:46:23 UTC |
c970810 | Cuong Manh Le | 12 December 2019, 16:32:33 UTC | consensus/types: fix BenchmarkRoundStateDeepCopy panics (#4244) Fixes #4243 | 12 December 2019, 16:32:33 UTC |
7b52f51 | Marko | 12 December 2019, 08:33:27 UTC | libs/common: Refactor libs/common 5 (#4240) * libs/common: Refactor libs/common 5 - move mathematical functions and types out of `libs/common` to math pkg - move net functions out of `libs/common` to net pkg - move string functions out of `libs/common` to strings pkg - move async functions out of `libs/common` to async pkg - move bit functions out of `libs/common` to bits pkg - move cmap functions out of `libs/common` to cmap pkg - move os functions out of `libs/common` to os pkg Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * fix testing issues * fix tests closes #41417 woooooooooooooooooo kill the cmn pkg Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * add changelog entry * fix goimport issues * run gofmt | 12 December 2019, 08:33:27 UTC |
7e02211 | Anton Kaliaev | 12 December 2019, 08:11:28 UTC | scripts: remove install scripts (#4242) Closes #4202 - nobody's supporting them - users who want to try TM should use pre-build binaries - devs should be able to install using git clone (or use Vagrant) - validators don't use them (my guess) | 12 December 2019, 08:11:28 UTC |
89f0bbb | Marko | 11 December 2019, 22:16:35 UTC | libs/common: Refactor libs/common 4 (#4237) * libs/common: Refactor libs/common 4 - move byte function out of cmn to its own pkg - move tempfile out of cmn to its own pkg - move throttletimer to its own pkg ref #4147 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * add changelog entry * fix linting issues | 11 December 2019, 22:16:35 UTC |
15e80d2 | Anton Kaliaev | 11 December 2019, 17:15:27 UTC | config: add rocksdb as a db backend option (#4239) Closes #3831 The support for rocksdb was added a while back in https://github.com/tendermint/tm-db/pull/12. This commit merely updates the documentation. | 11 December 2019, 17:15:27 UTC |
4da816a | Anton Kaliaev | 11 December 2019, 11:48:46 UTC | cli: add optional `--genesis_hash` flag to check genesis hash upon startup (#4238) Closes #4113 | 11 December 2019, 11:48:46 UTC |
0f69336 | Anton Kaliaev | 11 December 2019, 10:16:38 UTC | docs: remove "0 means latest" from swagger docs (#4236) Fixes #4014 The reason being when you call any endpoint supporting optional height and use `height=0`, it will return an error. For example: ``` $ curl localhost:2667/consensus_params?height=0 { "jsonrpc": "2.0", "id": -1, "error": { "code": -32603, "message": "Internal error", "data": "height must be greater than 0" } } ``` | 11 December 2019, 10:16:38 UTC |
2b30f02 | Prince Sinha | 11 December 2019, 08:59:57 UTC | cli: add `--db_backend` and `--db_dir` flags to tendermint node cmd (#4235) Fixes #4234 | 11 December 2019, 08:59:57 UTC |
27b00cf | Marko | 11 December 2019, 08:31:25 UTC | libs/common: refactor libs common 3 (#4232) * libs/common: refactor libs common 3 - move nil.go into types folder and make private - move service & baseservice out of common into service pkg ref #4147 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * add changelog entry | 11 December 2019, 08:31:25 UTC |
efc27ab | Prince Sinha | 11 December 2019, 08:09:43 UTC | abci/kvstore: return `LastBlockHeight` and `LastBlockAppHash` in `Info` (#4233) Fixes #4177 | 11 December 2019, 08:09:43 UTC |
afc4d7a | Marko | 10 December 2019, 17:38:34 UTC | libs/common: refactor libs/common 2 (#4231) * libs/common: refactor libs/common 2 - move random function to there own pkg Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * change imports and usage throughout repo * fix goimports * add changelog entry | 10 December 2019, 17:38:34 UTC |
dfebac8 | Marko | 10 December 2019, 11:40:01 UTC | libs/common: refactor libs/common 01 (#4230) * libs/common: Refactor libs/common 01 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * regenerate proto files, move intslice to where its used * update kv.KVPair(s) to kv.Pair(s) * add changelog entry * make intInSlice private | 10 December 2019, 11:40:01 UTC |
6b1fef7 | Marko | 10 December 2019, 08:14:49 UTC | rpc: update swagger docs to openapi 3.0 (#4223) * rpc: Update swagger docs to openapi 3.0 - closes #4144 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * adding content sections for schemas * removal of produces & consumes * add parameters * remove x from examples & disable contract tests until dredd is stable | 10 December 2019, 08:14:49 UTC |
a61f19b | dongsamb | 10 December 2019, 07:42:55 UTC | set Go 1.13 as min required version (#4228) | 10 December 2019, 07:42:55 UTC |
8b1b5b2 | dependabot-preview[bot] | 09 December 2019, 09:50:40 UTC | build(deps): bump github.com/spf13/viper from 1.5.0 to 1.6.1 (#4224) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.5.0 to 1.6.1. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.5.0...v1.6.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> | 09 December 2019, 09:50:40 UTC |
f309077 | Sean Braithwaite | 09 December 2019, 06:35:51 UTC | update CONTRIBUTING.md (#4180) * First pass at updating the contribution guidelines * Update CONTRIBUTING.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Update CONTRIBUTING.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Update CONTRIBUTING.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Update CONTRIBUTING.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Align text flow with diagram * tweaks based on feedback * add text for existing issue * tweaks | 09 December 2019, 06:35:51 UTC |
d1ada18 | Tess Rinearson | 06 December 2019, 15:59:50 UTC | docs/introduction: add notes on architecture intro (#4175) | 06 December 2019, 15:59:50 UTC |
00c4b52 | Marko | 06 December 2019, 15:04:44 UTC | docs: fix broken ecosystem link (#4222) I put it as the awesome repo ecosytem section as this is currently the only place where there is tendermint only ecosystem information. - closes #4198 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 06 December 2019, 15:04:44 UTC |
70d94b8 | Marko | 06 December 2019, 14:57:26 UTC | docs: Fix broken rpc link (#4221) - chane rpc link to master branch rpc docs, current link leads to 404 - closes #4199 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 06 December 2019, 14:57:26 UTC |
3e2751d | Marko | 05 December 2019, 09:12:08 UTC | lint: Enable Golint (#4212) * Fix many golint errors * Fix golint errors in the 'lite' package * Don't export Pool.store * Fix typo * Revert unwanted changes * Fix errors in counter package * Fix linter errors in kvstore package * Fix linter error in example package * Fix error in tests package * Fix linter errors in v2 package * Fix linter errors in consensus package * Fix linter errors in evidence package * Fix linter error in fail package * Fix linter errors in query package * Fix linter errors in core package * Fix linter errors in node package * Fix linter errors in mempool package * Fix linter error in conn package * Fix linter errors in pex package * Rename PEXReactor export to Reactor * Fix linter errors in trust package * Fix linter errors in upnp package * Fix linter errors in p2p package * Fix linter errors in proxy package * Fix linter errors in mock_test package * Fix linter error in client_test package * Fix linter errors in coretypes package * Fix linter errors in coregrpc package * Fix linter errors in rpcserver package * Fix linter errors in rpctypes package * Fix linter errors in rpctest package * Fix linter error in json2wal script * Fix linter error in wal2json script * Fix linter errors in kv package * Fix linter error in state package * Fix linter error in grpc_client * Fix linter errors in types package * Fix linter error in version package * Fix remaining errors * Address review comments * Fix broken tests * Reconcile package coregrpc * Fix golangci bot error * Fix new golint errors * Fix broken reference * Enable golint linter * minor changes to bring golint into line * fix failing test * fix pex reactor naming * address PR comments | 05 December 2019, 09:12:08 UTC |
b0bb8a1 | Sunny Aggarwal | 05 December 2019, 08:41:38 UTC | crypto: add sr25519 signature scheme (#4190) * sr25519 * added amino encoding * fixed dependencies * Apply suggestions from code review Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> Co-Authored-By: Marko <marbar3778@yahoo.com> * file structure * Apply suggestions from code review Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * address @melekes and @marbar3778 review * removed nolint * CHANGELOG and go-schnorrkel mod update | 05 December 2019, 08:41:38 UTC |
06b8752 | Jonathan Gimeno | 04 December 2019, 17:48:26 UTC | docs: add flag documentation (#4219) | 04 December 2019, 17:48:26 UTC |
92d18d7 | Marko | 04 December 2019, 11:37:48 UTC | Rename Tag(s) to Event(s) (#4046) * Rename Tag(s) to Event(s) - tag was replaced with event, but in some places it still mentions tag, would be easier to understand if we tried to replace it with event to not confuse people. Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * more changes from tag -> event * rename events to compositeKeys and keys * Apply suggestions from code review Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * add minor documentation on how composite keys are constructed * rename eventkey to compositekey Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * add changelog entry & add info to regenerate confid to changelog entry | 04 December 2019, 11:37:48 UTC |
1c46145 | w1t | 04 December 2019, 11:17:57 UTC | networks/remote: turn on GO111MODULE and use git clone instead of go get (#4203) To execute the integration.sh, you need to run "source ./integration.sh". just execute command "./integration.sh" will not work. It is because "source ~/.profile" executes in a separate shell than the integration.sh script # **turn on the go module, default is auto. The value is off, if tendermint source code #is downloaded under $GOPATH/src directory echo "export GO111MODULE=on" >> ~/.profile # ** use git clone instead of go get. # once go module is on, go get will download source code to # specific version directory under $GOPATH/pkg/mod the make # script will not work git clone https://github.com/tendermint/tendermint.git #** need to install the package, otherwise tendermint testnet will not execute make install | 04 December 2019, 11:17:57 UTC |
49ffb70 | Anton Kaliaev | 04 December 2019, 08:30:34 UTC | p2p: extract maxBackoffDurationForPeer func and remove 1 test (#4218) * p2p/pex: extract maxBackoffDurationForPeer func * p2p: remove unnecessary TestSwitchAcceptRoutineUnconditionalPeersFirst | 04 December 2019, 08:30:34 UTC |
701e9ca | dongsamb | 04 December 2019, 07:44:07 UTC | p2p: add `unconditional_peer_ids` and `persistent_peers_max_dial_period` (#4176) implementation spec of Improved Trusted Peering ADR-050 by B-Harvest - add unconditional_peer_ids and persistent_peers_max_dial_period to config - add unconditionalPeerIDs map to Switch struct default config value of persistent_peers_max_dial_period is 0s(disabled) Refs #4072, #4053 | 04 December 2019, 07:44:07 UTC |
100078c | Jonathan Gimeno | 02 December 2019, 10:20:23 UTC | cli: add `--cs.create_empty_blocks_interval` flag (#4205) Closes #4065 | 02 December 2019, 10:20:23 UTC |
5527821 | Sean Braithwaite | 02 December 2019, 10:01:24 UTC | Blockchain v2 Scheduler (#4043) * Add processor prototype * Change processor API + expose a simple `handle` function which mutates internal state * schedule event handling * rename schedule -> scheduler * fill in handle function * processor tests * fix gofmt and ohter golangci issues * scopelint var on range scope * add check for short block received * small test reorg * ci fix changes * go.mod revert * some cleanup and review comments * scheduler fixes and unit tests, also small processor changes. changed scPeerPruned to include a list of pruned peers touchPeer to check peer state and remove the blocks from blockStates if the peer removal causes the max peer height to be lower. remove the block at sc.initHeight changed peersInactiveSince, peersSlowerThan, getPeersAtHeight check peer state prunablePeers to return a sorted list of peers lastRate in markReceived() attempted to divide by 0, temp fix. fixed allBlocksProcessed conditions maxHeight() and minHeight() to return sc.initHeight if no ready peers present make selectPeer() deterministic. added handleBlockProcessError() added termination cond. (sc.allBlocksProcessed()) to handleTryPrunePeer() and others. changed pcBlockVerificationFailure to include peer of H+2 block along with the one for H+1 changed the processor to call purgePeer on block verification failure. fixed processor tests added scheduler tests. * typo and ci fixes * remove height from scBlockRequest, golangci fixes * limit on blockState map, updated tests * remove unused * separate test for maxHeight(), used for sched. validation * use Math.Min * fix golangci * Document the semantics of blockStates in the scheduler * better docs * distinguish between unknown and invalid blockstate * Standardize peer filtering methods * feedback * s/getPeersAtHeight/getPeersAtHeightOrAbove * small notes * Update blockchain/v2/scheduler.go Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * Update comments based on feedback * Add enum offset * panic on nil block in processor * remove unused max height calculation * format shorter line | 02 December 2019, 10:01:24 UTC |
0523ecf | Sean Braithwaite | 02 December 2019, 05:02:10 UTC | docs: update ADR 43 with links to PRs (#4207) | 02 December 2019, 05:02:10 UTC |
c066b39 | Black3HDF | 28 November 2019, 09:22:44 UTC | docs: fix broken links in consensus/readme.md (#4200) | 28 November 2019, 09:22:44 UTC |
759cceb | Anca Zamfir | 26 November 2019, 13:05:25 UTC | types: prevent spurious validator power overflow warnings when changing the validator set (#4183) Fix for #4164 The general problem is that in certain conditions an overflow warning is issued when attempting to update a validator set even if the final set's total voting power is not over the maximum allowed. Root cause is that in verifyUpdates(), updates are verified wrt to total voting power in the order of validator address. It is then possible that a low address validator may increase its power such that the temporary total voting power count goes over MaxTotalVotingPower. Scenarios where removing and adding/ updating validators with high voting power, in the same update operation, cause the same false warning and the updates are not applied. Main changes to fix this are in verifyUpdate() that now does the verification starting with the decreases in power. It also takes into account the removals that are part of the update. ## Commits: * tests for overflow detection and prevention * test fix * more tests * fix the false overflow warnings and golint * scopelint warning fix * review comments * variant with using sort by amount of change in power * compute separately number new validators in update * types: use a switch in processChanges * more review comments * types: use HasAddress in numNewValidators * types: refactor verifyUpdates copy updates, sort them by delta and use resulting slice to calculate tvpAfterUpdatesBeforeRemovals. * remove unused structs * review comments * update changelog | 26 November 2019, 13:05:25 UTC |
af3afc2 | Zaki Manian | 26 November 2019, 11:40:06 UTC | p2p/conn: simplify secret connection handshake malleability fix with merlin (#4185) * p2p/conn: simplify secret connection handshake malleability fix with merlin Introduces new dependencies on github.com/gtank/merlin and sha3 as a cryptographic primitive This also only uses the transcript hash as a MAC. * p2p/conn: avoid string to byte conversion https://github.com/uber-go/guide/blob/master/style.md#avoid-string-to-byte-conversion | 26 November 2019, 11:40:06 UTC |
ad715fe | Anton Kaliaev | 26 November 2019, 10:10:38 UTC | types: change `Commit` to consist of just signatures (#4146) * types: change `Commit` to consist of just signatures These are final changes towards removing votes from commit and leaving only signatures (see ADR-25) Fixes #1648 * bring back TestCommitToVoteSetWithVotesForAnotherBlockOrNilBlock + add absent flag to Vote to indicate that it's for another block * encode nil votes as CommitSig with BlockIDFlagAbsent + make Commit#Precommits array of non-pointers because precommit will never be nil * add NewCommitSigAbsent and Absent() funcs * uncomment validation in CommitSig#ValidateBasic * add comments to ValidatorSet funcs * add a changelog entry * break instead of continue continue does not make sense in these cases * types: rename Commit#Precommits to Signatures * swagger: fix /commit response * swagger: change block_id_flag type * fix merge conflicts | 26 November 2019, 10:10:38 UTC |
fb8b00f | Anton Kaliaev | 25 November 2019, 15:07:40 UTC | lite2: light client with weak subjectivity (#3989) Refs #1771 ADR: https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-044-lite-client-with-weak-subjectivity.md ## Commits: * add Verifier and VerifyCommitTrusting * add two more checks make trustLevel an option * float32 for trustLevel * check newHeader time * started writing lite Client * unify Verify methods * ensure h2.Header.bfttime < h1.Header.bfttime + tp * move trust checks into Verify function * add more comments * more docs * started writing tests * unbonding period failures * tests are green * export ErrNewHeaderTooFarIntoFuture * make golangci happy * test for non-adjusted headers * more precision * providers and stores * VerifyHeader and VerifyHeaderAtHeight funcs * fix compile errors * remove lastVerifiedHeight, persist new trusted header * sequential verification * remove TrustedStore option * started writing tests for light client * cover basic cases for linear verification * bisection tests PASS * rename BisectingVerification to SkippingVerification * refactor the code * add TrustedHeader method * consolidate sequential verification tests * consolidate skipping verification tests * rename trustedVals to trustedNextVals * start writing docs * ValidateTrustLevel func and ErrOldHeaderExpired error * AutoClient and example tests * fix errors * update doc * remove ErrNewHeaderTooFarIntoFuture This check is unnecessary given existing a) ErrOldHeaderExpired b) h2.Time > now checks. * return an error if we're at more recent height * add comments * add LastSignedHeaderHeight method to Store I think it's fine if Store tracks last height * copy over proxy from old lite package * make TrustedHeader return latest if height=0 * modify LastSignedHeaderHeight to return an error if no headers exist * copy over proxy impl * refactor proxy and start http lite client * Tx and BlockchainInfo methods * Block method * commit method * code compiles again * lite client compiles * extract updateLiteClientIfNeededTo func * move final parts * add placeholder for tests * force usage of lite http client in proxy * comment out query tests for now * explicitly mention tp: trusting period * verify nextVals in VerifyHeader * refactor bisection * move the NextValidatorsHash check into updateTrustedHeaderAndVals + update the comment * add ConsensusParams method to RPC client * add ConsensusParams to rpc/mock/client * change trustLevel type to a new cmn.Fraction type + update SkippingVerification comment * stress out trustLevel is only used for non-adjusted headers * fixes after Fede's review Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * compare newHeader with a header from an alternative provider * save pivot header Refs https://github.com/tendermint/tendermint/pull/3989#discussion_r349122824 * check header can still be trusted in TrustedHeader Refs https://github.com/tendermint/tendermint/pull/3989#discussion_r349101424 * lite: update Validators and Block endpoints - Block no longer contains BlockMeta - Validators now accept two additional params: page and perPage * make linter happy | 25 November 2019, 15:07:40 UTC |
ceb1053 | Marko | 25 November 2019, 14:34:40 UTC | Docs theme latest (#4179) * docs: remove specs, they live in spec repo (#4172) * docs: remove specs, they live in spec repo - moving specs to spec repo - https://github.com/tendermint/spec/pull/62 PR for updating them Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * add makefile command to copy in sepcs from specREPO - move cloning of spec repo to pre and post scripts Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 25 November 2019, 14:34:40 UTC |
98e0b52 | Leslie Cheung | 25 November 2019, 09:47:38 UTC | doc: fix broken links (#4186) replaces https://tendermint.com/docs" with "https://docs.tendermint.com/master" | 25 November 2019, 09:47:38 UTC |
c431437 | Anton Kaliaev | 21 November 2019, 06:31:39 UTC | changelog: GotVoteFromUnwantedRoundError -> ErrGotVoteFromUnwantedRound https://github.com/tendermint/tendermint/pull/4153#discussion_r348868269 | 22 November 2019, 08:59:08 UTC |
edd6ee2 | Anton Kaliaev | 20 November 2019, 11:59:32 UTC | changelog: explain breaking changes better | 22 November 2019, 08:59:08 UTC |
d7d61e9 | Anton Kaliaev | 20 November 2019, 11:09:54 UTC | tools.mk: install protoc - works only for Linux / Mac 64bit - you need to call it manually - make protoc - on Mac, brew install protoc might be favorable | 22 November 2019, 08:59:08 UTC |
0d0d151 | Anton Kaliaev | 20 November 2019, 09:31:47 UTC | tools.mk: use tags instead of revisions where possible | 22 November 2019, 08:59:08 UTC |
82e4842 | Anton Kaliaev | 20 November 2019, 09:31:11 UTC | Vagrantfile: update Go version | 22 November 2019, 08:59:08 UTC |
208a8d3 | Anton Kaliaev | 20 November 2019, 09:17:11 UTC | types: remove dots from errors in SignedHeader#ValidateBasic | 22 November 2019, 08:59:08 UTC |
43aed98 | Anton Kaliaev | 20 November 2019, 09:13:44 UTC | cs: clarify where 24 comes from in maxMsgSizeBytes (wal.go) | 22 November 2019, 08:59:08 UTC |
d5ed8a7 | Anton Kaliaev | 20 November 2019, 07:34:09 UTC | types: change number_txs to num_txs json tag in BlockMeta and EventDataNewBlockHeader | 22 November 2019, 08:59:08 UTC |
d840fa3 | Anton Kaliaev | 20 November 2019, 07:33:24 UTC | docs: mention that Evidence votes are now sorted | 22 November 2019, 08:59:08 UTC |
72f39e2 | Alex Kogon | 21 November 2019, 22:23:37 UTC | Fixed typo (#4181) | 21 November 2019, 22:23:37 UTC |
fb9e667 | Anthony | 21 November 2019, 08:00:33 UTC | prefix proto types (#4007) Fixes #3986 This pull request is prefixing all the types in proto to avoid conflict. When a go application is using Tendermint as a library and also define similar types in gogo proto some conflicts might occur (as types is a common package in go). By prefixing the types with tendermint, this highly reduces the risk of conflicts. BREAKING CHANGE. This modification breaks the ABCI Application endpoint. What was accessible before with `/types.ABCIApplication/Flush` is now accessible with `/tendermint.abci.types.ABCIApplication/Flush`. | 21 November 2019, 08:00:33 UTC |
ee6601a | Greg Zaitsev | 21 November 2019, 07:47:59 UTC | cs: don't panic when block is not found in store (#4163) Fixes #4069 | 21 November 2019, 07:47:59 UTC |
f78a994 | Marko | 20 November 2019, 15:47:09 UTC | update tm-db to 0.3.0 (#4158) Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 20 November 2019, 15:47:09 UTC |
68b2873 | Marko | 20 November 2019, 15:18:39 UTC | docs: update wording (#4174) * docs: update wording - change grants to funding for abci server Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 20 November 2019, 15:18:39 UTC |
eeb6ee1 | Marko | 20 November 2019, 12:23:07 UTC | [Docs]: Minor doc touchups (#4171) - change link for bounties for different lang abci servers to interchainio funding repo - link awesome repo ecosystem section in main docs readme - closes #4110 - closes #4125 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 20 November 2019, 12:23:07 UTC |
fc0d5bc | Gustavo Chaín | 20 November 2019, 11:31:14 UTC | types: prevent temporary power overflows on validator updates (#4165) Closes #4164 | 20 November 2019, 11:31:14 UTC |
2b90663 | Marko | 20 November 2019, 10:59:50 UTC | tools/tm-bench: remove tm-bench in favor of tm-load-test (#4169) - tm-bench has a deprecation warning for 5 releases now, with the major release coming I removed the file and updated the docs to point to `tm-load-test` located in the interchainio repo Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 20 November 2019, 10:59:50 UTC |
acac525 | b-harvest | 20 November 2019, 09:12:10 UTC | adr#50: improve trusted peering (#4072) Refs #4053 ## Commits: * Create adr-050-improved-trusted-peering.md * Modify `maximum_dial_period` Modify `maximum_dial_period` to `persistent_peers_maximum_dial_period` * Update adr-050-improved-trusted-peering.md * Update docs/architecture/adr-050-improved-trusted-peering.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Update docs/architecture/adr-050-improved-trusted-peering.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Update docs/architecture/adr-050-improved-trusted-peering.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * Update docs/architecture/adr-050-improved-trusted-peering.md Co-Authored-By: Tess Rinearson <tess.rinearson@gmail.com> * wildcard -> unconditional wildcard -> unconditional * Remove blank lines * fix spelling * add quotes | 20 November 2019, 09:12:10 UTC |
97222eb | Marko | 19 November 2019, 15:28:19 UTC | CHANGELOG: update release/v0.32.8 details (#4162) - update master with changelog from v0.32.8 - bump `tm-version` in `version.go` Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 19 November 2019, 15:28:19 UTC |
aca94fd | Marko | 19 November 2019, 11:47:22 UTC | Remvoe errors package from libs (#4157) *libs/common/errors: remove package - remove errors file from cmn pkg - use errorf instead of wrap in async function - add changelog entry - closes #3862 | 19 November 2019, 11:47:22 UTC |
8a878c1 | Aditya | 19 November 2019, 06:54:54 UTC | evidence: enforce ordering in DuplicateVoteEvidence (#4151) Fixes #4143 | 19 November 2019, 06:54:54 UTC |
45c24ff | Eric Mugo | 18 November 2019, 13:13:32 UTC | docs: replace dead original whitepaper link (#4155) Co-Authored-By: Marko <marbar3778@yahoo.com> | 18 November 2019, 13:13:32 UTC |
3e1516b | Anton Kaliaev | 16 November 2019, 15:35:39 UTC | linters: enable stylecheck (#4153) Refs #3262 | 16 November 2019, 15:35:39 UTC |
36ba1a8 | Cyrus Goh | 16 November 2019, 13:04:10 UTC | docs: add GA for docs.tendermint.com (#4149) | 16 November 2019, 13:04:10 UTC |
e71a2b1 | Marko | 15 November 2019, 11:14:36 UTC | Docs theme latest (#4145) * fix logo in footer * readme and version * fix logo in footer * rpc link | 15 November 2019, 11:14:36 UTC |
44a3fbf | Anton Kaliaev | 15 November 2019, 10:16:04 UTC | rpc/lib/client & server: try to conform to JSON-RPC 2.0 spec (#4141) https://www.jsonrpc.org/specification What is done in this PR: JSONRPCClient: validate that Response.ID matches Request.ID I wanted to do the same for the WSClient, but since we're sending events as responses, not notifications, checking IDs would require storing them in memory indefinitely (and we won't be able to remove them upon client unsubscribing because ID is different then). Request.ID is now optional. Notification is a Request without an ID. Previously "" or 0 were considered as notifications Remove #event suffix from ID from an event response (partially fixes #2949) ID must be either string, int or null AND must be equal to request's ID. Now, because we've implemented events as responses, WS clients are tripping when they see Response.ID("0#event") != Request.ID("0"). Implementing events as requests would require a lot of time (~ 2 days to completely rewrite WS client and server) generate unique ID for each request switch to integer IDs instead of "json-client-XYZ" id=0 method=/subscribe id=0 result=... id=1 method=/abci_query id=1 result=... > send events (resulting from /subscribe) as requests+notifications (not responses) this will require a lot of work. probably not worth it * rpc: generate an unique ID for each request in conformance with JSON-RPC spec * WSClient: check for unsolicited responses * fix golangci warnings * save commit * fix errors * remove ID from responses from subscribe Refs #2949 * clients are safe for concurrent access * tm-bench: switch to int ID * fixes after my own review * comment out sentIDs in WSClient see commit body for the reason * remove body.Close it will be closed automatically * stop ws connection outside of write/read routines also, use t.Rate in tm-bench indexer when calculating ID fix gocritic issues * update swagger.yaml * Apply suggestions from code review * fix stylecheck and golint linter warnings * update changelog * update changelog2 | 15 November 2019, 10:16:04 UTC |
1ddc43d | Marko | 15 November 2019, 05:38:43 UTC | rpc: add pagination to /validators (#3993) * Add pagination to /validators - closes #3472 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * add swagger params, default returns all * address pr comments * golint fix * swagger default change, change to default in comment * swagger.yaml: replace x-example with example https://swagger.io/docs/specification/adding-examples/ * Revert "swagger.yaml: replace x-example with example" This reverts commit 9df1b006dee0e0d78c54a808d103e30bdd502c10. * update changelog and remove extra body close | 15 November 2019, 05:38:43 UTC |
b43da17 | Marko | 14 November 2019, 15:52:53 UTC | rpc/swagger: add numtxs to blockmeta (#4139) Closes #4138 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 14 November 2019, 15:52:53 UTC |
41403d5 | Marko | 14 November 2019, 10:46:44 UTC | rpc: remove duplication of data in `ResultBlock ` (#3856) ## Issue: Removed BlockMeta in ResultBlock in favor of BlockId for /block Added block_size to BlockMeta this is reflected in /blockchain fixes #3188 added breaking as some clients may be using header from blockmeta instead of block in /block ## Commits: * cleanup block path Remove duplication of data in `/block` fixes #3188 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * Remove duplication of data in `/block` - Created a secondary type to be used for /block fixes #3188 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * remove commented out code * fix ci * add changelog_pending entry * remove extra variable * update swagger * change int to uint for blocksize * fix swagger * remove extensive comments * update changelog * fix conflicts after merge * use int for BlockSize and NumTxs in BlockMeta - with 99.9% guarantee, the size of either will never reach int32 - most of the Go "Size" stdlib functions return int | 14 November 2019, 10:46:44 UTC |
1604047 | Marko | 14 November 2019, 09:56:13 UTC | abci: remove TotalTxs and NumTxs from Header (#3783) * Removal of TotalTx & NumTx - Removed totalTx and numTx closes #2521 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> * abci proto changes * proto number fix * txfilter_test fix * comments on PR * further changes * bring back metrics * fix indexer * fix TestBlockMaxDataBytes and TestBlockMaxDataBytesUnknownEvidence * indexer service back to header * statistics.go fix * fix ci * listen for blocks, not headers to be able to record txs throughput * fix TestNetworkNewBlock * fix tests * fix tests in types package * fixes after Anton's review * fix tests * bring back `consensus_total_txs` metric I mistakenly thought it was removed. * improve changelog * remove LastBlockTotalTx from state * docs: remove getNumTxs from BeginBlock Java example | 14 November 2019, 09:56:12 UTC |
9174fb7 | Zaki Manian | 14 November 2019, 09:45:17 UTC | p2p: make SecretConnection non-malleable (#3668) ## Issue: This is an approach to fixing secret connection that is more noise-ish than actually noise. but it essentially fixes the problem that #3315 is trying to solve by making the secret connection handshake non-malleable. It's easy to understand and I think will be acceptable to @jaekwon .. the formal reasoning is basically, if the "view" of the transcript between diverges between the sender and the receiver at any point in the protocol, the handshake would terminate. The base protocol of Station to Station mistakenly assumes that if the sender and receiver arrive at shared secret they have the same view. This is only true for a DH on prime order groups. This robustly solves the problem by having each cryptographic operation commit to operators view of the protocol. Another nice thing about a transcript is it provides the basis for "secure" (barring cryptographic breakages, horrible design flaws, or implementation bugs) downgrades, where a backwards compatible handshake can be used to offer newer protocol features/extensions, peers agree to the common subset of what they support, and both sides have to agree on what the other offered for the transcript MAC to verify. With something like Protos/Amino you already get "extensions" for free (TLS uses a simple TLV format https://tools.ietf.org/html/rfc8446#section-4.2 for extensions not too far off from Protos/Amino), so as long as you cryptographically commit to what they contain in the transcript, it should be possible to extend the protocol in a backwards-compatible manner. ## Commits: * Minimal changes to remove malleability of secret connection removes the need to check for lower order points. Breaks compatibility. Secret connections that have no been updated will fail * Remove the redundant blacklist * remove remainders of blacklist in tests to make the code compile again Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * Apply suggestions from code review Apply Ismail's error handling Co-Authored-By: Ismail Khoffi <Ismail.Khoffi@gmail.com> * fix error check for io.ReadFull Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * Update p2p/conn/secret_connection.go Co-Authored-By: Ismail Khoffi <Ismail.Khoffi@gmail.com> * Update p2p/conn/secret_connection.go Co-Authored-By: Bot from GolangCI <42910462+golangcibot@users.noreply.github.com> * update changelog and format the code * move hkdfInit closer to where it's used | 14 November 2019, 09:45:17 UTC |
59da313 | Anton Kaliaev | 14 November 2019, 09:34:35 UTC | rpc: /block_results fix docs + write test + restructure response (#3615) BREAKING Example response: ```json { "jsonrpc": "2.0", "id": "", "result": { "height": "2109", "txs_results": null, "begin_block_events": null, "end_block_events": null, "validator_updates": null, "consensus_param_updates": null } } ``` Old result consisted of ABCIResponses struct and height. Exposing internal ABCI structures (which we store in state package) in RPC seems bad to me for the following reasons: 1) high risk of breaking the API when somebody changes internal structs (HAPPENED HERE!) 2) RPC is aware of ABCI, which I'm not sure we want | 14 November 2019, 09:34:35 UTC |
7bc5e1a | Marko | 14 November 2019, 04:58:43 UTC | state/store: remove extra `if` statement (#3774) closes #3543 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 14 November 2019, 04:58:43 UTC |
2be4b0f | yk | 13 November 2019, 14:26:29 UTC | rpc/lib: fix RPC client, which was previously resolving https protocol to http (#4131) Fixes #4051 Function `parseRemoteAddr` is forcing protocol HTTP and protocol HTTPs to tcp. This causes the bug in the issue #4051. I find that the tcp is only needed where `net.Dial`. So I moved the switch to makeHTTPDialer. | 13 November 2019, 14:26:29 UTC |
7cd55a7 | Austin Abell | 13 November 2019, 04:55:22 UTC | crypto/amino: add function to modify key codec (#4112) ## Issue: Hey, not sure if this is disallowed for any reason specifically, but it would be very beneficial to define additional types to decode tendermint key implementations from bytes, since it uses a static codec. If this is okay, let me know and I will add documentation. Context: For Ethermint to switch to using Cosmos' keybase, decoding the keys requires this codec to be updated Just to document, I did experiment with creating a mapping from string to objects to be able to keep track of the key types added to be able to be used in the RegisterAmino(..) call, but because of how go is compiled, cosmos would just use the base types. This may be a useful feature for someone just building on top of Tendermint and not going through Cosmos, but to not add confusion or unnecessary complexity, I left it out. ## Commits: * Exposes amino codec to be able to decode pk bytes in application * Change how codec is modified * Remove unneeded comment * Fix comment * Fix comment * Add registered type to nametable * Add pending changelog entry * Reorder change * Added check if type is registered and added test * Make test type private * Remove unnecessary duplicate exists check | 13 November 2019, 04:55:22 UTC |
7950027 | Denis Fadeev | 12 November 2019, 22:07:00 UTC | Docs theme latest (#4132) * fix logo in footer * readme and version * fix logo in footer | 12 November 2019, 22:07:00 UTC |
0c6ad4f | Mircea Colonescu | 11 November 2019, 14:43:11 UTC | added staging build step to docs deployment (#4129) | 11 November 2019, 14:43:11 UTC |
1fc4ab7 | Anton Kaliaev | 11 November 2019, 13:33:02 UTC | rpc: remove godoc comments in favor of swagger docs (#4126) No need to duplicate information in this case. It a) requires extra efforts to keep both in sync b) nobody reads godoc documentation anyways. | 11 November 2019, 13:33:02 UTC |
2c81f68 | dependabot-preview[bot] | 11 November 2019, 13:13:36 UTC | deps: bump google.golang.org/grpc from 1.25.0 to 1.25.1 (#4127) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.25.0 to 1.25.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.25.0...v1.25.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> | 11 November 2019, 13:13:36 UTC |
6a46082 | Albert | 10 November 2019, 04:41:28 UTC | docs: fix build instructions (#4123) | 10 November 2019, 04:41:28 UTC |
cf4360c | Marko | 08 November 2019, 13:58:30 UTC | Bump grpc dep (#4121) - bump grpc dep as listed here: https://github.com/tendermint/tendermint/pull/4114 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 08 November 2019, 13:58:30 UTC |
263b2d2 | Mircea Colonescu | 07 November 2019, 17:04:15 UTC | added newline to versions file and removed index.html (#4120) | 07 November 2019, 17:04:15 UTC |
40f702a | Mircea Colonescu | 07 November 2019, 16:46:17 UTC | remove source code cache restore (#4119) | 07 November 2019, 16:46:17 UTC |
8b78492 | Mircea Colonescu | 07 November 2019, 15:52:49 UTC | remove source code cache restore (#4118) | 07 November 2019, 15:52:49 UTC |
4b15b96 | cosmostuba | 07 November 2019, 13:40:00 UTC | privval: add `SignerDialerEndpointRetryWaitInterval` option (#4115) Added a small function to be able to change the default retry interval for the privval. The default is 100ms, this function allows to change to any time.Duration. Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> | 07 November 2019, 13:40:00 UTC |
98c5953 | Henrik Aasted Sørensen | 07 November 2019, 07:30:50 UTC | libs/pubsub/query: add EXISTS operator (#4077) ## Issue: This PR adds an "EXISTS" condition to the event query grammar. It enables querying for the occurrence of an event without having to provide a condition for one of its attributes. As an example, someone interested in all slashing events might currently catch them with a query such as slash.power > 0. With this PR the event can be captured with slash.power EXISTS or just slash EXISTS to catch by event type. ## Examples: `slash EXISTS` ## Commits: * Add EXISTS condition to query grammar * Gofmt files * Move PEG instructions out of auto-generated file to prevent overwrite * Update libs/pubsub/query/query.go Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * Update changelog and add test case * Merge with other changes in PR #4070 * Add EXISTS to Conditions() func * Apply gofmt * Addressing PR comments | 07 November 2019, 07:30:50 UTC |
3495a91 | Marko | 06 November 2019, 15:32:06 UTC | Doc link fixes (#4116) - closes #4090 - closes #4091 Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> | 06 November 2019, 15:32:06 UTC |
274447e | seungyeon-hwang | 05 November 2019, 08:33:29 UTC | state: txindex/kv: return an error if there's one (#4095) when the user searches for a tx (hash=X) This PR fixes error handling for performing a txindex search. TxIndex.Get returns (txresult, nil) if the transaction is found. (nil, nil) if the transaction is not found. (nil, error) if error is occurred. Therefore, if res is not nil, I think TxIndex.Search should return (txresult, nil). Previously, however, this was not a problem because errors.Wrap returns nil if its first argument err is nil. | 05 November 2019, 08:33:29 UTC |
0a014e3 | Albert | 05 November 2019, 05:29:15 UTC | changelog: fix typo (#4106) | 05 November 2019, 05:29:15 UTC |
5532e3a | Denis Fadeev | 05 November 2019, 03:14:45 UTC | Latest version of the theme (#4108) * update version * remove version from versions file | 05 November 2019, 03:14:45 UTC |
4227556 | Dev Ojha | 04 November 2019, 23:05:44 UTC | typo fix: full nude -> full node (#4107) | 04 November 2019, 23:05:44 UTC |
745846b | Erik Grinaker | 04 November 2019, 09:50:22 UTC | mempool: moved TxInfo parameter into Mempool.CheckTx() (#4083) * mempool: moved TxInfo parameter into Mempool.CheckTx(). * Updated CHANGELOG_PENDING.md * Added PR issue to CHANGELOG_PENDING Fixes #3590 | 04 November 2019, 09:50:22 UTC |
76deaa9 | zjubfd | 04 November 2019, 08:37:18 UTC | state: txindex/kv: fsync data to disk immediately after receiving it (#4104) ## Issue Why this pr: When restarting chain node, sometimes we lost tx index about recent(around 80)blocks, and some client complains that they can't find the tx by RPC call(tx_search) when the tx do exist in the block. I try to partially fix this issue in a simple way by writing the index data in a sync way. There is no performance difference under 1K TPS according to our test. It is still possible that lost index data after restarting the node, but only 2 block data will lost at most. I try to totally fix this in https://github.com/tendermint/tendermint/pull/3847/files, but this one is simple and can solve most part of the issue. Please review first, thks. ## Comments Anton: BEFORE: BenchmarkTxIndex1-2 100000 12434 ns/op BenchmarkTxIndex500-2 300 5151564 ns/op BenchmarkTxIndex1000-2 100 15053910 ns/op BenchmarkTxIndex2000-2 100 18238892 ns/op BenchmarkTxIndex10000-2 20 124287930 ns/op AFTER: BenchmarkTxIndex1-2 2000 795431 ns/op BenchmarkTxIndex500-2 200 6385124 ns/op BenchmarkTxIndex1000-2 100 11388219 ns/op BenchmarkTxIndex2000-2 100 20514873 ns/op BenchmarkTxIndex10000-2 20 107456004 ns/op Performance drop is pretty steep, but I think it's the right thing to do UNTIL we have a WAL. | 04 November 2019, 08:37:18 UTC |
735736e | Vaibhav Sinha | 03 November 2019, 15:58:18 UTC | docs: add assumption to getting started with abci-cli (#4098) | 03 November 2019, 15:58:18 UTC |
0335d07 | cosmostuba | 03 November 2019, 15:48:45 UTC | privval: remove misplaced debug statement (#4103) Co-Authored-By: Bot from GolangCI <42910462+golangcibot@users.noreply.github.com> There's no debug statement in Read func, so should be OK remove this one too. | 03 November 2019, 15:48:45 UTC |
2df4ca0 | dependabot-preview[bot] | 01 November 2019, 22:50:11 UTC | build(deps): bump github.com/spf13/viper from 1.4.0 to 1.5.0 (#4102) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.4.0...v1.5.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> | 01 November 2019, 22:50:11 UTC |
cbd5e03 | Ethan Buchman | 01 November 2019, 22:16:53 UTC | Add more comments about the hard-coded limits (#4100) * crypto: expose MaxAunts for documentation purposes * types: update godoc for new maxes * docs: make hard-coded limits more explicit * wal: add todo to clarify max size * shorten lines in test | 01 November 2019, 22:16:53 UTC |
b247522 | Mircea Colonescu | 31 October 2019, 20:33:15 UTC | added new version to docs (#4097) | 31 October 2019, 20:33:15 UTC |