Commit Graph
10054 Commits
Author SHA1 Message Date
William Banfield 3de294a513 clang format intermediate file 2022-03-15 10:03:38 -04:00
William BanfieldandGitHub e87cef8dd3 Merge branch 'master' into wb/abci-prepare-proposal-synchronize 2022-03-15 09:54:05 -04:00
William Banfield 9781ec60ae update validation comment 2022-03-15 09:34:59 -04:00
b08dd93d88 libs/log: remove Must constructor (#8120)
* libs/log: remove Must constructor

* Update test/e2e/node/main.go

Co-authored-by: M. J. Fromberger <michael.j.fromberger@gmail.com>

* use stdlog

Co-authored-by: M. J. Fromberger <michael.j.fromberger@gmail.com>
2022-03-15 13:02:31 +00:00
William BanfieldandGitHub 6da708049f Merge branch 'master' into wb/abci-prepare-proposal-synchronize 2022-03-15 01:05:52 -04:00
William Banfield 11edd067e7 add test for preserving order 2022-03-15 00:32:42 -04:00
William Banfield e080b9c740 helper fixups 2022-03-15 00:04:15 -04:00
William Banfield 3783fbb327 change mh variable 2022-03-15 00:00:46 -04:00
William Banfield 438adcd0dd split into smaller functions 2022-03-14 19:49:15 -04:00
William Banfield fa9b029a26 defensive copy + layout change 2022-03-14 18:01:09 -04:00
1dce618a65 Apply suggestions from code review
Co-authored-by: M. J. Fromberger <fromberger@interchain.io>
2022-03-14 17:56:04 -04:00
William Banfield 747eb86de8 remove Get prefix 2022-03-14 17:51:54 -04:00
William Banfield 5a5167974f remove comment incorrectly stating allocation by NewTxRecordSet 2022-03-14 17:48:54 -04:00
William Banfield 7c7307961b remove TxRecordsToTxs 2022-03-14 17:47:40 -04:00
William Banfield 235a636af2 comment Txs sort 2022-03-14 17:47:09 -04:00
b1ddcb947d Update proto/tendermint/abci/types.proto.intermediate
Co-authored-by: M. J. Fromberger <fromberger@interchain.io>
2022-03-14 17:45:02 -04:00
William Banfield a843d8bf28 createProposalBlock explicit returns 2022-03-14 17:41:29 -04:00
William Banfield 889488f92c log if part set errors 2022-03-14 17:35:59 -04:00
William Banfield 89c932352b comment types_test 2022-03-14 17:34:33 -04:00
William Banfield 51cf3fe7db rename to MarshalTxResults 2022-03-14 17:32:56 -04:00
William Banfield c8844abd62 create separate removed list in kvstore 2022-03-14 17:29:51 -04:00
Sam KleinmanandGitHub a5320da5c8 node: cleanup evidence db (#8119) 2022-03-14 21:00:51 +00:00
William Banfield 4bf2027d3c comment the validation logic 2022-03-14 15:55:22 -04:00
William Banfield bef6ab6e51 remove methods from abci tx records 2022-03-14 14:54:07 -04:00
William Banfield 9082915626 implement TxRecordSet for dealing with TxRecord validation 2022-03-14 14:52:19 -04:00
William BanfieldandGitHub 8e5dfa55ef rfc: RFC 015 ABCI++ Tx Mutation (#8033)
This pull requests adds an RFC to discuss the proposed mechanism for transaction replacement detailed in the ABCI++ specification.
2022-03-14 09:49:04 -04:00
Jordi PinyanaandGitHub 70df7d9e6e readme: add vocdoni (#8117)
Add Vocdoni under applications section on the README.
2022-03-14 12:52:19 +00:00
frog power 4000andGitHub 98dd0d6c5a minor typo in docs (#8116) 2022-03-13 21:09:49 -07:00
frog power 4000andGitHub aff1481682 Update abci++_basic_concepts_002_draft.md (#8114)
Minor Typo (nice doc!)
2022-03-12 18:57:43 -08:00
William Banfield ce9b5982bc fix all cases of CreateProposalBlock votes 2022-03-11 17:39:15 -05:00
William Banfield 64b0b0a646 mempool_test does not make new list of Tx 2022-03-11 17:31:26 -05:00
William Banfield 4655d5d9f0 trim prefix from demo app 2022-03-11 17:29:44 -05:00
William Banfield ca1824b415 update substPrepareTx 2022-03-11 17:24:02 -05:00
William Banfield 1500369946 remove transaction hash log 2022-03-11 17:00:50 -05:00
William Banfield dac4e84990 test only deterministic fields used in hash 2022-03-11 16:59:45 -05:00
William Banfield 0ca101912f comment tx fix 2022-03-11 16:41:57 -05:00
William Banfield d3c4f7c7d9 change app prepareproposal 2022-03-11 16:41:56 -05:00
William Banfield 5849b16dff fix joined lines 2022-03-11 16:41:55 -05:00
William Banfield 232b38100b use block.Txs 2022-03-11 16:41:54 -05:00
William Banfield dd98161894 thread vote information through for future use by vote extensions 2022-03-11 16:41:49 -05:00
M. J. FrombergerandGitHub e9bc33d807 consensus: ensure the node terminates on consensus failure (#8111)
Updates #8077. The panic handler for consensus currently attempts to effect a
clean shutdown, but this can leave a failed node running in an unknown state
for an arbitrary amount of time after the failure.

Since a panic at this point means consensus is already irrecoverably broken, we
should not allow the node to continue executing. After making a best effort to
shut down the writeahead log, re-panic to ensure the node will terminate before
any further state transitions are processed.

Even with this change, it is possible some transitions may occur while the
cleanup is happening. It might be preferable to abort unconditionally without
any attempt at cleanup.

Related changes:

- Clean up the creation of WAL directories.
- Filter WAL close errors at rethrow.
2022-03-11 13:30:15 -08:00
Thane ThomsonandGitHub 72bbe64da7 proto: update proto generation to use buf (#7975)
* Hard-code go_package option for .proto files

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Automatically relocate generated ABCI types after proto-gen

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Skip building gogoproto (i.e. only build our types)

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove unnecessary proto generation scripts

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Upgrade buf config from v1beta1 to v1

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add simple proto generation script

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Replace buf-based protobuf generation with simple protoc-based approach

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove custom buf-based Docker image generation config and Dockerfile

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Adopt Cosmos SDK's approach to Protobuf linting and breakage checking in CI

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Suppress command echo when running proto checks

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix proto-check workflow YAML indentation

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Restore proto-format target

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Replace custom BASH script with make equivalent

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove proto linting/breaking changes CI checks after discussion today

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove dangling reference to CI workflow that no longer exists

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Update contributing guidelines relating to protos

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Use buf instead for generating protos

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove unused buf config for gogoprotobuf

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add reminder for if we migrate fully to buf

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Restore protopackage script for #8065

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix permissions on protopackage script

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Update contributing guidelines to show building of protos using buf

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix breaking changes check and add disclaimer

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Expand on contributing guidelines for clarity

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Re-remove old proto workflows

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add buf-based proto linting workflow in CI

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Superficially reorder proto targets

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix proto lints

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix GA workflow YAML indentation

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Temporarily use forked version of mlc

Use forked version of markdown-link-check until
https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/126
lands.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Temporarily disable markdown link checker

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove gogo protos - superseded by version from buf registry

Signed-off-by: Thane Thomson <connect@thanethomson.com>
2022-03-11 14:10:46 -05:00
William Banfield 26c4f9088f add error log for failure to create proposal block 2022-03-11 12:57:05 -05:00
William Banfield 46cc63dccc types_test comment changes 2022-03-11 12:50:07 -05:00
William Banfield 8765d1e506 wip tx hashing 2022-03-11 12:40:48 -05:00
William Banfield 4d8e81a1f5 error message change 2022-03-11 12:00:56 -05:00
William Banfield 6ce11e5e5e check duplicates of different types in txrecords 2022-03-11 11:55:59 -05:00
William Banfield 3c35f894f3 remove empty tx records in substPrepareTx 2022-03-11 11:27:27 -05:00
M. J. FrombergerandGitHub 658a7661c5 p2p: remove unnecessary panic handling in PEX reactor (#8110)
The message handling in this reactor is all under control of the reactor
itself, and does not call out to callbacks or other externally-supplied code.
It doesn't need to check for panics.

- Remove an irrelevant channel ID check.
- Remove an unnecessary panic recovery wrapper.
2022-03-11 08:23:03 -08:00
M. J. FrombergerandGitHub 89b4321af2 p2p: update polling interval calculation for PEX requests (#8106)
The PEX reactor has a simple feedback control mechanism to decide how often to
poll peers for peer address updates. The idea is to poll more frequently when
knowledge of the network is less, and decrease frequency as knowledge grows.

This change solves two problems:

1. It is possible in some cases we may poll a peer "too often" and get dropped
   by that peer for spamming.

2. The first successful peer update with any content resets the polling timer
   to a very long time (10m), meaning if we are unlucky in getting an
   incomplete reply while the network is small, we may not try again for a very
   long time. This may contribute to difficulties bootstrapping sync.

The main change here is to only update the interval when new information is
added to the system, and not (as before) whenever a request is sent out to a
peer. The rate computation is essentially the same as before, although the code
has been a bit simplified, and I consolidated some of the error handling so
that we don't have to check in multiple places for the same conditions.

Related changes:

- Improve error diagnostics for too-soon and overflow conditions.
- Clean up state handling in the poll interval computation.
- Pin the minimum interval avert a chance of PEX spamming a peer.
2022-03-11 07:49:33 -08:00