Zarko Milosevic
026fddee4f
Aligh the correctness arguments with the pseudocode changes
2020-01-23 14:49:45 +01:00
Zarko Milosevic
146e251892
Address reviewer comment's. Intermediate commit
2020-01-08 17:49:32 +01:00
Zarko Milosevic
7130c2e68c
Removing Store from API and providing end-to-end timing guarantees
2020-01-06 18:30:59 +01:00
Zarko Milosevic
4a9eb1f1ac
Intermediate commit (aligning spec with the code)
2019-12-31 13:31:35 +01:00
Zarko Milosevic
0adde9d415
Separating algorithm from proofs
2019-12-26 13:11:01 +01:00
Zarko Milosevic
ee0cc537b8
Addressing reviewer's comments
2019-12-25 13:58:27 +01:00
Zarko Milosevic
4f7c55507c
Address reviewer's comments
2019-12-12 12:37:36 +01:00
Zarko Milosevic
8528cdb314
Merge remote-tracking branch 'remotes/origin/master' into zm_lite_client_algo
...
# Conflicts:
# spec/consensus/light-client.md
2019-12-11 16:18:17 +01:00
Zarko Milosevic
9ddfc79813
Add explanation on difference between trusted models
2019-12-11 16:13:47 +01:00
Zarko Milosevic
069906a25d
Improve algorithms
2019-12-11 15:20:14 +01:00
Zarko Milosevic
5c580846bb
Improved error handling
2019-12-06 15:56:05 +01:00
Zarko Milosevic and Anca Zamfir
2306108d8a
Apply suggestions from code review
...
Co-Authored-By: Anca Zamfir <ancazamfir@users.noreply.github.com >
2019-12-02 12:40:47 +01:00
Zarko Milosevic
4ee393c3da
Clean up error conditions and simplify pseudocode
2019-11-28 15:42:35 +01:00
Zarko Milosevic and GitHub
d862fd4ec7
Merge pull request #56 from tendermint/zm_fix_system_model
...
Fix model section
2019-11-21 12:53:20 +01:00
Zarko Milosevic
a4b68ec2fb
Add non-recursive specification of Bisection algorithm
...
- Fix timing issues by introducing Delta parameter
2019-11-15 12:47:48 +01:00
Zarko Milosevic
f618acf2ab
Fix model section
2019-10-29 12:01:13 +01:00
Zarko Milosevic and Ethan Buchman
6f1ccb6c49
[ADR] ADR-36: blockchain reactor refactor spec ( #3506 )
...
* Add blockchain reactor refactor ADR
* docs: Correct markdown and go syntax in adr-036
* Update docs/architecture/adr-036-blockchain-reactor-refactor.md
Co-Authored-By: milosevic <zarko@interchain.io >
* Add comments and address reviewer comments
* Improve formating
* Small improvements
* adr-036 -> adr-040
2019-05-10 13:37:21 -04:00
Zarko Milosevic and Anton Kaliaev
b738add80c
cs: fix nondeterministic tests ( #3582 )
...
Should fix #3451 , #2723 and #3317 .
Test TestResetTimeoutPrecommitUponNewHeight is simplified so it reduces a risk of timeout failure. Furthermore, timeout we wait for TimeoutEvents is increased, and the timeout value is more precisely computed. This should hopefully decrease a chance of non-deterministic test failures.
This assertion is problematic to ensure consistently due to dependency on scheduler. On the other hand, if I am not wrong, order in which messages are read from the channel respects order in which messages are written. Therefore, process will receive 2f+1 precommits that are not all for v (one is for nil) so TriggeredTimeoutPrecommit would be set to true. So we don't need to assert it. I know that it would be better to still assert to it but I don't know how to do it without sleep and that is ugly and is causing us nondeterministic failures.
2019-04-23 13:19:16 +04:00
Zarko Milosevic and Anton Kaliaev
af8793c01a
cs: reset triggered timeout precommit ( #3310 )
...
* Reset TriggeredTimeoutPrecommit as part of updateToState
* Add failing test and fix
* fix DATA RACE in TestResetTimeoutPrecommitUponNewHeight
```
WARNING: DATA RACE
Read at 0x00c001691d28 by goroutine 691:
github.com/tendermint/tendermint/consensus.decideProposal()
/go/src/github.com/tendermint/tendermint/consensus/common_test.go:133 +0x121
github.com/tendermint/tendermint/consensus.TestResetTimeoutPrecommitUponNewHeight()
/go/src/github.com/tendermint/tendermint/consensus/state_test.go:1389 +0x958
testing.tRunner()
/usr/local/go/src/testing/testing.go:827 +0x162
Previous write at 0x00c001691d28 by goroutine 931:
github.com/tendermint/tendermint/consensus.(*ConsensusState).updateToState()
/go/src/github.com/tendermint/tendermint/consensus/state.go:562 +0x5b2
github.com/tendermint/tendermint/consensus.(*ConsensusState).finalizeCommit()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1340 +0x141e
github.com/tendermint/tendermint/consensus.(*ConsensusState).tryFinalizeCommit()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1255 +0x66e
github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit.func1()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1201 +0x135
github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1232 +0x94b
github.com/tendermint/tendermint/consensus.(*ConsensusState).addVote()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1657 +0x132e
github.com/tendermint/tendermint/consensus.(*ConsensusState).tryAddVote()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1503 +0x8f
github.com/tendermint/tendermint/consensus.(*ConsensusState).handleMsg()
/go/src/github.com/tendermint/tendermint/consensus/state.go:694 +0xa1e
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:655 +0x7dd
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:655 +0x7dd
Goroutine 691 (running) created at:
testing.(*T).Run()
/usr/local/go/src/testing/testing.go:878 +0x659
testing.runTests.func1()
/usr/local/go/src/testing/testing.go:1119 +0xa8
testing.tRunner()
/usr/local/go/src/testing/testing.go:827 +0x162
testing.runTests()
testing.(*M).Run()
/usr/local/go/src/testing/testing.go:1034 +0x2ee
main.main()
_testmain.go:216 +0x332
```
* fix another DATA RACE by locking consensus
```
WARNING: DATA RACE
Read at 0x00c009b835a8 by goroutine 871:
github.com/tendermint/tendermint/consensus.(*ConsensusState).createProposalBlock()
/go/src/github.com/tendermint/tendermint/consensus/state.go:955 +0x7c
github.com/tendermint/tendermint/consensus.decideProposal()
/go/src/github.com/tendermint/tendermint/consensus/common_test.go:127 +0x53
github.com/tendermint/tendermint/consensus.TestResetTimeoutPrecommitUponNewHeight()
/go/src/github.com/tendermint/tendermint/consensus/state_test.go:1389 +0x958
testing.tRunner()
/usr/local/go/src/testing/testing.go:827 +0x162
Previous write at 0x00c009b835a8 by goroutine 931:
github.com/tendermint/tendermint/consensus.(*ConsensusState).updateHeight()
/go/src/github.com/tendermint/tendermint/consensus/state.go:446 +0xb7
github.com/tendermint/tendermint/consensus.(*ConsensusState).updateToState()
/go/src/github.com/tendermint/tendermint/consensus/state.go:542 +0x22f
github.com/tendermint/tendermint/consensus.(*ConsensusState).finalizeCommit()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1340 +0x141e
github.com/tendermint/tendermint/consensus.(*ConsensusState).tryFinalizeCommit()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1255 +0x66e
github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit.func1()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1201 +0x135
github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1232 +0x94b
github.com/tendermint/tendermint/consensus.(*ConsensusState).addVote()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1657 +0x132e
github.com/tendermint/tendermint/consensus.(*ConsensusState).tryAddVote()
/go/src/github.com/tendermint/tendermint/consensus/state.go:1503 +0x8f
github.com/tendermint/tendermint/consensus.(*ConsensusState).handleMsg()
/go/src/github.com/tendermint/tendermint/consensus/state.go:694 +0xa1e
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:655 +0x7dd
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:642 +0x948
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/go/src/github.com/tendermint/tendermint/consensus/state.go:655 +0x7dd
```
* Fix failing test
* Delete profile.out
* fix data races
2019-02-18 11:29:41 +04:00
Zarko Milosevic and Ethan Buchman
c20fbed2f7
[WIP] fix halting issue ( #3197 )
...
fix halting issue
2019-01-24 09:33:47 -05:00
Zarko Milosevic and Ethan Buchman
1895cde590
[WIP] Fill in consensus core details in ADR 030 ( #2696 )
...
* Initial work towards making ConsensusCore spec complete
* Initial version of executor and complete consensus
2019-01-13 14:47:00 -05:00