eth: implement eth/62 synchronization logic#1661
eth: implement eth/62 synchronization logic#1661karalabe wants to merge 16 commits intoethereum:developfrom karalabe:eth62-downloader
Conversation
Updated: Fri Aug 21 07:48:13 UTC 2015 |
Current coverage is
|
|
There is one issue I encountered and thought I'd note it here so I won't forget it and neither will it be merged without some solution: whenever block bodies arrive, the fetcher picks out whatever works for him. The issue is that some bodies (i.e. no transaction, no uncle) may work for a lot of blocks, so the fetcher may steal a block from the downloader, causing it to detect bad peers. This could be solved by simply not sending back bodies at all for empty blocks, and have the fetcher/dowloader figure it out by themselves (i.e. check against nil content before even requesting such bodies). Edit: The fetcher was updated to detect empty blocks already at header time and not request bodies for such. This alleviates the problem as the downloader can now keep all the empty transactions and uncles. However, that should still be fixed so that it itself skips pulling empty blocks. |
There was a problem hiding this comment.
No "Msg" suffix for that guy and the next? Seems unfair ;)
There was a problem hiding this comment.
Ah, good catch :). I just started adding these packages and then saw that there's quite a lot of database side logic missing so I never bothered to finish them up. Will correct nonetheless :)
|
Closing in favor of a fresh rebased PR #1701. |
### Description This PR adds the race flag as an option to `build/ci.go` and enables the race flag on the CI's unit-test job. ### Tested See `circleCI: race` in CI ### Backwards compatibility Yes
* chore: bump alpine image in release dockerfile (ethereum#1661) * go mod tidy & comment e2e-test
This is a WIP PR to track progress and CI. It builds on top of the eth/62 and eth/63 server side PR (#1380), please see that merged first before you check in here.