Commit Graph

190 Commits

Author SHA1 Message Date
William Banfield 93c4e00e8e abci++: remove app_signed_updates (#8128) 2022-03-15 17:07:02 -04:00
frog power 4000 aff1481682 Update abci++_basic_concepts_002_draft.md (#8114)
Minor Typo (nice doc!)
2022-03-12 18:57:43 -08:00
Manuel Bravo 4edc8c5523 abci++ spec: reorganizing basic concepts, adding outline for easy navigation (#8048)
* reorganizing basic concepts, adding outline to navigate easy

* Update spec/abci++/README.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* address problem with snapshot list data type

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>

* Update spec/abci++/abci++_basic_concepts_002_draft.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* clarify handling events in same-execution model

* remove outdated text about vote extension singing

* clarification apphash state-sync

Co-authored-by: Sergio Mena <sergio@informal.systems>
Co-authored-by: M. J. Fromberger <fromberger@interchain.io>
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
2022-03-08 11:12:57 +01:00
William Banfield 0b8a62c87b abci: Synchronize FinalizeBlock with the updated specification (#7983)
This change set implements the most recent version of `FinalizeBlock`. 

# What does this change actually contain?

* This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name.
* The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock`
* The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous.
* Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across.
* Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created.

# Questions for reviewers
* We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable?
* Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? 


closes: #7658
2022-03-04 22:32:37 +00:00
William Banfield c8c248d733 docs: add an overview of the proposer-based timestamps algorithm (#8058)
This change adds an overview of the proposer-based timestamps algorithm. The goal of this documentation is to give a plain enough explanation of the algorithm so that application developers and validators can understand both the utility of the algorithm and understand how the new constrains may affect their network and topology. 

I'm blanking on the scheme we decided on for docs linking, so if anyone could remind me what link format we decided on, I'll go clean that up ASAP.

Once this is merged, I intend to create a runbook for chains that see slower block-times or higher nil prevotes and link that runbook to this document to provide a higher-level overview.

closes: #8046
2022-03-03 22:25:06 +00:00
Sergio Mena 7c4fe5b108 Vote extensions: new design (#8031)
* Changed the spec text to agreed VoteExtension solution

* Revert "Removed protobufs related to vote extensions"

This reverts commit 4566f1e302.

* Changes to ABCI protocol buffers

* Update spec/core/data_structures.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Update spec/core/data_structures.md

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Fix dangling link in ABCI++ readme

* Addressed comments

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>
2022-03-02 22:12:01 +01:00
M. J. Fromberger c42c6d06d2 Migration of TLA+ files from the spec repo (#8004) (#8018)
Co-authored-by: Kukovec <jure.kukovec@gmail.com>
2022-03-02 09:08:39 -05:00
Manuel Bravo 82a2ca4ba5 abci++ spec: remove new_hashes and discuss transaction traceability (#8002)
* remove new_hashes, discuss traceability

* Update spec/abci++/abci++_methods_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_methods_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* Update spec/abci++/abci++_methods_002_draft.md

Co-authored-by: Sergio Mena <sergio@informal.systems>

* quote example traceability

* remove new_hashes from protobuf

Co-authored-by: Sergio Mena <sergio@informal.systems>
2022-03-01 12:41:09 +01:00
M. J. Fromberger b848c79971 Revert "Migration of TLA+ files from the spec repo (#8004)" (#8016)
This reverts commit e762dbb603.

These files need a more thorough review before integration.
2022-02-25 16:37:31 -08:00
Kukovec e762dbb603 Migration of TLA+ files from the spec repo (#8004) 2022-02-25 16:09:27 -08:00
Callum Waters 50de246a2b docs: update repo and spec readme's (#7907) 2022-02-21 20:00:05 +01:00
Thane Thomson abdf717761 spec: Minor updates to spec merge PR (#7835)
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Callum Waters <cmwaters19@gmail.com>
2022-02-20 11:36:20 -08:00
Callum Waters e81b0e290e spec: merge spec repo into tendermint repo (#7804) 2022-02-17 13:02:48 +01:00
Sergio Mena 1543e4122a Added all ABCI++ APIs to protobufs 2022-02-04 20:19:00 +01:00
Daniel 4fb99af40d PBTS: spec reorganization, summary of changes on README.md (#399)
* PBTS: brief context and proposal added to README

* PBTS: summary of algorithmic solution added to README

* PBTS: Context section of README improved

* PBTS: fixing links and page titles

* PBTS: moved first drafts to v1/, links updated

* PBTS: added issues to README, link to arXiv PDF

* PBTS: brief context and proposal added to README

* PBTS: summary of algorithmic solution added to README

* PBTS: Context section of README improved

* PBTS: fixing links and page titles

* PBTS: moved first drafts to v1/, links updated

* PBTS: added issues to README, link to arXiv PDF

* Apply suggestions from code review

Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>

* Fixing linting problems

Co-authored-by: Daniel Cason <cason@gandria>
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
2022-02-04 10:44:32 +01:00
William Banfield 329da35a84 Add the newly defined timeout parameters to the consensus parameters (#400) 2022-02-03 14:24:07 -05:00
William Banfield 91f898cb98 proto: merge the proposer-based timestamps parameters (#393) 2022-02-02 10:21:09 -05:00
Kukovec f8c4ec38ec Apalache annotations (#398) 2022-02-02 12:29:02 +01:00
Jasmina Malicevic 8e5b44d46a p2p/message: Changed evidence message to contain evidence, not a list… (#394)
* p2p/message: Changed evidence message to contain evidence, not a list of evidence

* Update spec/p2p/messages/evidence.md

Co-authored-by: Callum Waters <cmwaters19@gmail.com>

Co-authored-by: Callum Waters <cmwaters19@gmail.com>
2022-02-02 11:17:47 +01:00
Kukovec 17a197929c Updated Apalache type annotations (#395) 2022-02-01 19:49:18 +01:00
Sergio Mena 611cc63a27 Addressed Callum's latest comments 2022-01-17 10:25:14 +01:00
Sergio Mena 33f529b06b Revert "Included extra parameter in FinalizeBlock in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec"
This reverts commit 22e8aafa03c189a6d97301076b711199808ea438.
2022-01-17 10:25:14 +01:00
Sergio Mena e7136888bb Addressed Callum's comments 2022-01-17 10:25:14 +01:00
Sergio Mena eb233d5565 Update spec/abci++/abci++_methods_002_draft.md
Co-authored-by: Callum Waters <cmwaters19@gmail.com>
2022-01-17 10:25:14 +01:00
Sergio Mena f774c09a97 Editorial/Lint changes 2022-01-17 10:25:14 +01:00
Sergio Mena 5c41de2b85 Update spec/abci++/abci++_app_requirements_002_draft.md
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
2022-01-17 10:25:14 +01:00
Sergio Mena 54a1773435 Addressed propose timeout issue if App is fully executing blocks 2022-01-17 10:25:14 +01:00
Sergio Mena e3da1bf94a Handle the distinction between 'any' occurrences (*) and 'infinite' occurrences (omega) in the grammar 2022-01-17 10:25:14 +01:00
Sergio Mena 81be4d0d14 Included extra parameter in FinalizeBlock in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec 2022-01-17 10:25:14 +01:00
Sergio Mena f4e1039830 Addressed outstanding comments 2022-01-17 10:25:14 +01:00
Sergio Mena af8a1a2ce3 Fixed hyperlinks 2022-01-17 10:25:14 +01:00
Sergio Mena 0d610258f5 Addressed comments from @lklimek 2022-01-17 10:25:14 +01:00
Sergio Mena ddb1eb27c9 Editorial changes 2022-01-17 10:25:14 +01:00
Sergio Mena a75a2c6f00 Fixed bug in grammar 2022-01-17 10:25:14 +01:00
Sergio Mena ff2104ec0b Moved the same_block boolean to ConsensusParams. Revamped the "Tendermint's behavior" section 2022-01-17 10:25:14 +01:00
Sergio Mena 009c120abb Addressed latest comments from Josef and William 2022-01-17 10:25:14 +01:00
Sergio Mena 7bbbba9acf Update spec/abci++/abci++_app_requirements_002_draft.md spec/abci++/abci++_basic_concepts_002_draft.md
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
2022-01-17 10:25:14 +01:00
Sergio Mena 383d6b1117 Fixed rebase conflicts 2022-01-17 10:25:14 +01:00
Sergio Mena 7c1883c692 ABCI++: Found a solution to set the execution mode 2022-01-17 10:25:14 +01:00
Sergio Mena 523974167a ABCI++: Major refactor of spec's structure. Addressed Josef's comments. Merged ABCI's methods and data structs that didn't change. Added introductory paragraphs 2022-01-17 10:25:14 +01:00
Sergio Mena 57cc810744 Fixed 'bug' in Property 11. Reworked section 'App expectations from Tendermint' 2022-01-17 10:25:14 +01:00
Sergio Mena 438b490fe0 Update spec/abci++/abci++_properties_001_draft.md
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
2022-01-17 10:25:14 +01:00
Sergio Mena 243601d02a Reworked the text to reflect the contents of meeting on 2021-12-09 2022-01-17 10:25:14 +01:00
Sergio Mena 6fb0ca4201 Addressed William's latest comments. Added text: 'App devs SHOULD return true in ProcessProposal/VerifyVoteExtension' 2022-01-17 10:25:14 +01:00
Sergio Mena 9496ea84f8 Updated the text with results of discussions in the last days. Addressed William's comments 2022-01-17 10:25:14 +01:00
Sergio Mena f3275ae608 Addressed comments from Wed's meetings. Tackled TODOs that are now well understood 2022-01-17 10:25:14 +01:00
Sergio Mena 500a4a1419 Addressed comments from meeting on 2021-11-30 2022-01-17 10:25:14 +01:00
Sergio Mena 8c2645aa81 Addressed comments from meeting on Nov 29. Draft PR ready for PR 2022-01-17 10:25:14 +01:00
Sergio Mena e9211f5941 Second iteration. Extended all TODOs that don't need discussions. Params and types included. First version of ABCI++'s properties 2022-01-17 10:25:14 +01:00
Sergio Mena 836a723ca3 Developed the "Application's point of view" for ProcessProposal 2022-01-17 10:25:14 +01:00