stacks-network / stacks-core

The Stacks blockchain implementation
https://docs.stacks.co
GNU General Public License v3.0
3.01k stars 671 forks source link

Feat/more multi miner fixes jude #5093

Closed jcnelson closed 2 months ago

jcnelson commented 2 months ago

This PR fixes several more bugs and performance regressions in the networking stack and relayer. These bugs were discovered in a six-node topology with three miners and three stacker-signer followers, where each node was paired to its own bitcoin node and each stacker-signer follower was paired to a single follower (see schematic below):

            `bitcoind 0` <-----> `bitcoind 1` <-----> `bitcoind 2` <-----> `bitcoind 3` <-----> `bitcoind 4` <-----> `bitcoind 5`
                 |                    |                    |                    |                    |                    |
                 |                    |                    |                    |                    |                    |
                 V                    V                    V                    V                    V                    V
             `stacks 0`  <----->  `stacks 1`  <----->  `stacks 2`  <----->  `stacks 3`  <----->  `stacks 4`  <----->  `stacks 5`
             `(miner) `           `(miner) `           `(miner) `           `(follower)`         `(follower)`         `(follower)`
                                                                                ^                    ^                    ^
                                                                                |                    |                    |
                                                                                |                    |                    |
                                                                            `signer 0`           `signer 1`           `signer 2`

Fixes included the following:

Things I still need to do:

ASuciuX commented 2 months ago

Adding this here as link reference for the action for when it will be completed and the output will be displayed.

obycode commented 2 months ago

@jcnelson you need a rustfmt.

jcnelson commented 2 months ago

cc @obycode @jferrant ping :pray:

kantai commented 2 months ago

Pushed bfdb6e4 -- this should fix the unit test failures. The matches!() macro invocations were backwards -- if you match on the enum variant first, it treats the variable afterwards as a binding. Cargo would warn against this, but unused variable warnings are disabled in a lot of the testing codebase especially.

obycode commented 2 months ago

doh! looks like we still need a formatting fix.

blockstack-devops commented 2 weeks ago

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.