Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add info-level diagnostic logs to aid with resolving stalled BFT chains #7271

Merged
merged 3 commits into from
Jul 1, 2024

Conversation

matthew1001
Copy link
Contributor

@matthew1001 matthew1001 commented Jun 27, 2024

PR description

This PR adds INFO level diagnostic logs to BFT nodes if (and only if) the round for a given block reaches 2 or higher:

2024-06-27 10:38:22.076+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:38:22.076+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 4 (Local node)
2024-06-27 10:38:22.077+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 4 

It also logs an INFO message when the local node expires a round, clearly indicating when the next round will expire, again only if the node reaches round 2 or higher:

2024-06-27 10:37:50.011+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundTimer | QBFT round 2 expired. Moved to round 3 which will expire in 32 seconds

Detail

When a BFT chain stalls, the logs are very quiet. Below is an example of a 4-validator chain where 2 validators go offline for 2 minutes and then come back online (note the 4-minute absence of any logs in between blocks 31 and 32):

2024-06-27 10:49:23.015+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Imported #29 / 0 tx / 0 pending / 0 (0.0%) gas / (0xabf6dbf576bfe4f82f51952dbc8cac4e4fc49bc572abe8435e5620825f05498a)
2024-06-27 10:49:24.012+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Produced #30 / 0 tx / 0 pending / 0 (0.0%) gas / (0xbc839f21f03a16e0b686bd6eb2c61ccc4332ee0e53f25503f0df352d87da21a8)
2024-06-27 10:49:25.014+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Imported #31 / 0 tx / 0 pending / 0 (0.0%) gas / (0x6aa4b6a5353857a0691f3014b0d7b4380c5f1fed9d14eb4ee8856d38099ecbb3)
2024-06-27 10:53:25.916+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftRound | Importing proposed block to chain. round=ConsensusRoundIdentifier{Sequence=32, Round=5}, hash=0x6b26c5824251bcdba6df989ed573c9ca73a9c64c0b66720ae1841258c9f2f4c4
2024-06-27 10:53:25.925+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Imported #32 / 0 tx / 0 pending / 0 (0.0%) gas / (0x6b26c5824251bcdba6df989ed573c9ca73a9c64c0b66720ae1841258c9f2f4c4)
2024-06-27 10:53:25.960+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Imported #33 / 0 tx / 0 pending / 0 (0.0%) gas / (0xd9c68d80175333998e7ce391373a2d7098e4be384efd6c9fe9047d3febe6fd43)
2024-06-27 10:53:27.040+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Produced #34 / 0 tx / 0 pending / 0 (0.0%) gas / (0x33e636c3674fe2c2377a422a9f759ce8a162e29ea3385b9c02ea79054eedf908)

When this happens it is often necessary to look at DEBUG or TRACE logs, sometimes on several of the nodes, to determine which round each node has reached and understand if/when the chain will begin producing new blocks.

Reviewers may be concerned about the use of INFO logs for these diagnostic messages. My contention is that it is probably reasonable to use INFO messages in this case for 3 reasons:

  1. As shown in the example above the INFO logs are extremely quiet in a stalled-chain case. Giving a summary of where the round-changes are without needing to enable DEBUG or TRACE is a very useful indicator of whether the user needs to investigate further (e.g. if round changes aren't being received from other nodes) or whether the chain is just waiting for quorum nodes to reach the same round. In the cases where blocks are being produced successfully, none of the extra log messages are produced.
  2. If a BFT chain stalls arguably the only thing the user is interested in is why, and when blocks will start being produced again. So the noise of the extra INFO logs in this case isn't obfuscating any other INFO logs.
  3. The "noisyness" of the logs implicitly reduces over time as the time between round changes increases exponentially

Below is an example of the same 4-validator chain during the same 2-minute stall. Note how once the chain begins producing blocks the new diagnostic messages cease to be written:

2024-06-27 10:37:20.025+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Imported #17 / 0 tx / 0 pending / 0 (0.0%) gas / (0x75cbea215b6191af7f997add7c559c17dbc8115f2cd2d9d0c4a15d7f8339363f)
2024-06-27 10:37:21.021+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Produced #18 / 0 tx / 0 pending / 0 (0.0%) gas / (0xf6cb7b1401052466b3e4bc3616600e81f3ddc5f58e8e659674cfb247e9bde2b0)
2024-06-27 10:37:34.005+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundTimer | QBFT round 1 expired. Moved to round 2 which will expire in 16 seconds
2024-06-27 10:37:34.009+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:37:34.009+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 2 (Local node)
2024-06-27 10:37:34.010+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 2 
2024-06-27 10:37:50.011+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundTimer | QBFT round 2 expired. Moved to round 3 which will expire in 32 seconds
2024-06-27 10:37:50.015+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:37:50.015+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 3 (Local node)
2024-06-27 10:37:50.015+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 3 
2024-06-27 10:38:22.014+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundTimer | QBFT round 3 expired. Moved to round 4 which will expire in 64 seconds
2024-06-27 10:38:22.076+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:38:22.076+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 4 (Local node)
2024-06-27 10:38:22.077+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 4 
2024-06-27 10:39:26.017+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundTimer | QBFT round 4 expired. Moved to round 5 which will expire in 128 seconds
2024-06-27 10:39:26.035+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:39:26.035+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:39:26.036+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:05.200+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:40:05.202+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:40:05.202+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:05.202+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 1 
2024-06-27 10:40:05.215+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:40:05.215+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 1 
2024-06-27 10:40:05.215+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:40:05.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:05.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 1 
2024-06-27 10:40:13.205+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:40:13.205+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 1 
2024-06-27 10:40:13.205+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:40:13.205+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:13.205+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 2 
2024-06-27 10:40:13.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:40:13.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 2 
2024-06-27 10:40:13.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:40:13.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:13.217+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 2 
2024-06-27 10:40:29.211+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:40:29.212+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 2 
2024-06-27 10:40:29.212+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:40:29.212+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:29.212+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 3 
2024-06-27 10:40:29.220+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:40:29.221+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 3 
2024-06-27 10:40:29.221+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:40:29.221+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:40:29.221+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 3 
2024-06-27 10:41:01.208+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:41:01.208+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 3 
2024-06-27 10:41:01.208+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:41:01.209+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:41:01.209+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 4 
2024-06-27 10:41:01.223+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:41:01.223+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 4 
2024-06-27 10:41:01.223+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 5 (Local node)
2024-06-27 10:41:01.223+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 5 
2024-06-27 10:41:01.223+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 4 
2024-06-27 10:41:34.021+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundTimer | QBFT round 5 expired. Moved to round 6 which will expire in 256 seconds
2024-06-27 10:41:34.052+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:41:34.052+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 4 
2024-06-27 10:41:34.052+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 6 (Local node)
2024-06-27 10:41:34.052+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 6 
2024-06-27 10:41:34.052+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 4 
2024-06-27 10:42:05.216+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:42:05.217+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 4 
2024-06-27 10:42:05.217+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 6 (Local node)
2024-06-27 10:42:05.217+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 6 
2024-06-27 10:42:05.217+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 5 
2024-06-27 10:42:05.227+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:42:05.227+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 5 
2024-06-27 10:42:05.228+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 6 (Local node)
2024-06-27 10:42:05.228+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 6 
2024-06-27 10:42:05.228+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 5 
2024-06-27 10:44:13.225+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:44:13.227+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 5 
2024-06-27 10:44:13.227+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 6 (Local node)
2024-06-27 10:44:13.227+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 6 
2024-06-27 10:44:13.227+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 6 
2024-06-27 10:44:13.236+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | BFT round summary (quorum = 3)
2024-06-27 10:44:13.236+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xf4ffcf181a94328e848a9622d2d668d9a7035089  Round: 6 
2024-06-27 10:44:13.236+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0xa0685b78b74b63841651855f23d8161482e3bd1b  Round: 6 (Local node)
2024-06-27 10:44:13.236+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x6a5d767a9cfd5711bffefa121491fe9d78d27a27  Round: 6 
2024-06-27 10:44:13.236+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | RoundChangeManager | Address: 0x33b38bbb139832055630194c0673a43b6075663f  Round: 6 
2024-06-27 10:44:13.254+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftRound | Importing proposed block to chain. round=ConsensusRoundIdentifier{Sequence=19, Round=6}, hash=0xa6dcffdd0206a3e0d5dd71bae3ddb67d7905ce0b97e5493ef184f50791f0bbd8
2024-06-27 10:44:13.269+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Imported #19 / 0 tx / 0 pending / 0 (0.0%) gas / (0xa6dcffdd0206a3e0d5dd71bae3ddb67d7905ce0b97e5493ef184f50791f0bbd8)
2024-06-27 10:44:14.026+01:00 | BftProcessorExecutor-QBFT-0 | INFO  | QbftBesuControllerBuilder | Produced #20 / 0 tx / 0 pending / 0 (0.0%) gas / (0x66a847ebf58829312b342764de0fb3b7b656532010b205096985216ee74a2cc5)

I did consider concatenating the summary list into a single line, and I accept that reviewers might prefer the PR to use that approach instead of the multi-line logs I've gone with. I tend to prefer logs that are easy for the user to consume by eye and I think the example above shows how easy it is to scan the current round-change status and determine if they need to do any more investigation. But I welcome any comments on the format/verbosity.

@matthew1001 matthew1001 marked this pull request as ready for review June 27, 2024 09:59
Copy link
Contributor

@macfarla macfarla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's justified to use INFO for this in BFT networks

@matthew1001 matthew1001 enabled auto-merge (squash) July 1, 2024 07:29
@matthew1001 matthew1001 merged commit 08772b4 into hyperledger:main Jul 1, 2024
40 checks passed
daniellehrner pushed a commit to daniellehrner/besu that referenced this pull request Jul 16, 2024
…ns (hyperledger#7271)

* Add info-level diagnostic logs to aid with resolving stalled BFT chains

Signed-off-by: Matthew Whitehead <[email protected]>

* Add javadoc

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Matt Whitehead <[email protected]>
daniellehrner pushed a commit to daniellehrner/besu that referenced this pull request Jul 16, 2024
…ns (hyperledger#7271)

* Add info-level diagnostic logs to aid with resolving stalled BFT chains

Signed-off-by: Matthew Whitehead <[email protected]>

* Add javadoc

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Matt Whitehead <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>
daniellehrner added a commit that referenced this pull request Jul 17, 2024
* EIP 7702 first draft

Signed-off-by: Daniel Lehrner <[email protected]>

* added CHANGELOG.md entry

Signed-off-by: Daniel Lehrner <[email protected]>

* bug fixes, added first tests

Signed-off-by: Daniel Lehrner <[email protected]>

* container verify GitHub workflow (#7239)

Container verification step in release process automated with the container verify GitHub workflow. New workflow is triggered at the end of the release workflow which will check the release container images starts successfully. Verification test only checks container starts and reach the Ethereum main loop

Signed-off-by: Chaminda Divitotawela <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Investigate chain halts when syncing (#7162)

Fix some reasons for chain download halts when syncing

Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Check for EOFCreate subcontainer rules (#7232)

Check and test for the unused container rule, and only returncontract
targets can have truncated data rule.
Also test the other subcontainer rules in unit tests.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Remove deprecation message for `--Xp2p-peer-lower-bound` (#7247)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* less invasive code injection approach

Signed-off-by: Daniel Lehrner <[email protected]>

* added missing java doc & fixed test

Signed-off-by: Daniel Lehrner <[email protected]>

* added (currently non-working) acceptance test, some bug fixes in the transaction validation and tx pool logic

Signed-off-by: Daniel Lehrner <[email protected]>

* fix spotless

Signed-off-by: Daniel Lehrner <[email protected]>

* updated acceptance test, still not working, newPayload request seems to be necessary before final fork choice update

Signed-off-by: Daniel Lehrner <[email protected]>

* use correct world state to inject temporary code, inject code in existing accounts as well

Signed-off-by: Daniel Lehrner <[email protected]>

* renamed test service to prague, because the engine versions used are only available in the prague hard fork

Signed-off-by: Daniel Lehrner <[email protected]>

* fixed acceptance test, some bug fixes if authorized account does not yet exist

Signed-off-by: Daniel Lehrner <[email protected]>

* Add build version option to prefix git hash with custom version property (#7222)

* Add build version option to prefix git hash with custom version property
* Refactor to make appending the git hash a boolean property. Include a commented-out example of how to use the properties in the gradle file

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Handle invalid snap getTrieNode requests with empty paths gracefully (#7221)

Signed-off-by: Jason Frame <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* fix typos in CHANGELOG (#7226)

Signed-off-by: Ties <[email protected]>
Co-authored-by: Matt Nelson <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* feat: Add network option for LUKSO Mainnet (#7223)

* Add option for LUKSO network

Signed-off-by: Wolmin <[email protected]>

* Add tests for LUKSO

Signed-off-by: Wolmin <[email protected]>

* Apply spotless

Signed-off-by: Wolmin <[email protected]>

* Add changelog entry

Signed-off-by: Wolmin <[email protected]>

* Fix duplicate func

Signed-off-by: Wolmin <[email protected]>

* Fix changelog

Signed-off-by: Wolmin <[email protected]>

* Add bootnodes to genesis

Signed-off-by: Wolmin <[email protected]>

---------

Signed-off-by: Wolmin <[email protected]>
Signed-off-by: Wolmin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Update Docker base image to Ubuntu 24.04 (#7251)

Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Reconfigure how Protocol Specs are created WRT EVM condiguration (#7245)

Make the max code size and max initcode size a part of the EVM
configuration. As part of the change we need to move the tasks
CodeFactory once handled as a static class and move it into the EVM.
This has a nice follow on effect that we don't need to pass in max EOF
versions or max code sizes anymore.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Fix the wrong 'Identifier' and 'Synchronizer' usage (#7252)

* fix the synchronizer usage

Signed-off-by: Leni <[email protected]>

* fix Identifier usage

Signed-off-by: Leni <[email protected]>

---------

Signed-off-by: Leni <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Fix flaky SECP256R1 test (#7249)

Signed-off-by: Daniel Lehrner <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* update to work with the new max retries value (#7253)

Signed-off-by: Justin Florentine <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Temporary CancunEOF fork for EOF testing. (#7227)

Add Genesis ("CancunEOFTime") and reference test ("CancunEOF") support
for a temporary Cancun+EOF fork, in anticipation of potential devnets.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* fixed bug introduced through merge of main, made acceptance test easier to understand

Signed-off-by: Daniel Lehrner <[email protected]>

* added missing java docs

Signed-off-by: Daniel Lehrner <[email protected]>

* removed unnecessary tag

Signed-off-by: Daniel Lehrner <[email protected]>

* make encodeSingleSetCode public again

Signed-off-by: Daniel Lehrner <[email protected]>

* Snapserver responses to return at least one response (#7190)

Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* copy setCodeTransactionPayloads as well

Signed-off-by: Daniel Lehrner <[email protected]>

* fixed bug during tests with forrest db

Signed-off-by: Daniel Lehrner <[email protected]>

* Snapserver GetTrieNodes request to handle short hash for storage (#7264)

Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* javadoc: Adding javadoc for ethstats module (#7269)

* javadoc: Adding javadoc for ethstats module

---------

Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Fix javadoc for ethereum:core top level package (#7270)

* javadoc - Apply javadoc to ethereum core top level package

---------

Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Disable Flaky tests - permissioning (#7256)

* disable some flaky tests

Signed-off-by: Sally MacFarlane <[email protected]>

* correct name for test

Signed-off-by: Sally MacFarlane <[email protected]>

* formatting

Signed-off-by: Sally MacFarlane <[email protected]>

* disable some flaky tests

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Add bootnodes to the maintained peer list (#7257)

* Add bootnodes to the maintained peer list

Signed-off-by: Matthew Whitehead <[email protected]>

* Update unit tests

Signed-off-by: Matthew Whitehead <[email protected]>

* Add entry in changelog

Signed-off-by: Matthew Whitehead <[email protected]>

* Tweak unit test

Signed-off-by: Matthew Whitehead <[email protected]>

* Refactor to keep common steps the same for both cases

Signed-off-by: Matthew Whitehead <[email protected]>

* Add debug log, call sanitizePeers() only once

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Fix javadoc for ethereum api module, graphql package (#7272)

* javadoc - Adding missing javadocs ethereum:api graphql package

Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* T8n support for isStateTest and empty accounts (#7275)

Update t8n executor to support new isStateTest env flag that will
disable extra-transactional processing such as block rewards and beacon
root.
Also, make sure such extra-transactional commits don't create empty
accounts.

Signed-off-by: Danno Ferrin <[email protected]>
Co-authored-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Promote storage x-trie-log subcommand to trie-log (#7278)

Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Evm tool readme update (#7274)

* update paths to binary. update docker build to use java 21
* updated suggested jdk

---------

Signed-off-by: Justin Florentine <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* javadoc - Add missing javadoc for evmtool module (#7277)

Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Rename ValidatorPublicKey to ValidatorPubKey (#7280)

Adapt to EIP-7002 name change for validator public key in all places.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Add info-level diagnostic logs to aid with resolving stalled BFT chains (#7271)

* Add info-level diagnostic logs to aid with resolving stalled BFT chains

Signed-off-by: Matthew Whitehead <[email protected]>

* Add javadoc

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Matt Whitehead <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Update EIP-2935 contract (#7281)

Use the updated contract and address for EIP-2539.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* add evmtool compability, fixing bugs related to sender recovery of 7702 txs and handling authorizations to empty accounts

Signed-off-by: Daniel Lehrner <[email protected]>

* Deeper tracing of self-destructed accounts (#7284)

Consider previously self-destructed accounts when creating accounts.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* next release version after 24.7.0 (#7285)

Signed-off-by: garyschulte <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Add experimental `--Xsnapsync-bft-enabled` which enables snap sync for BFT chains (#7140)

* Create a BFT-specific pivot block handler

Signed-off-by: Matthew Whitehead <[email protected]>

* Change visibility

Signed-off-by: Matthew Whitehead <[email protected]>

* Refactor sync-peer-count internal variable to match name, add experimental flag to enabled snap + BFT

Signed-off-by: Matthew Whitehead <[email protected]>

* Merge with main

Signed-off-by: Matthew Whitehead <[email protected]>

* Fix uppercase

Signed-off-by: Matthew Whitehead <[email protected]>

* Address synchronization issue with trie pruning. Create BFT-specific account range handler. Add pipeline name and logs

Signed-off-by: Matthew Whitehead <[email protected]>

* Remove debug log

Signed-off-by: Matthew Whitehead <[email protected]>

* fixing snapsync for empty state

Signed-off-by: Karim Taam <[email protected]>

* Don't queue up events we can't handle

Signed-off-by: Matthew Whitehead <[email protected]>

* Fix timing window where a validator with an empty data dir sometimes falls back to full sync if peer status isn't received quickly enough

Signed-off-by: Matthew Whitehead <[email protected]>

* Remove BFT-specific account request class. Not needed

Signed-off-by: Matthew Whitehead <[email protected]>

* Refactor some more 'fast' sync variables that are common to all pivot-based sync types

Signed-off-by: Matthew Whitehead <[email protected]>

* In FULL sync mode, disable bonsai-limit-trie-logs-enabled instead of failing to start

Signed-off-by: Matthew Whitehead <[email protected]>

* Add javadoc comments, clarify overriding bonsai-limit-trie-logs-enabled

Signed-off-by: Matthew Whitehead <[email protected]>

* Add BFT pivot block selector tests

Signed-off-by: Matthew Whitehead <[email protected]>

* Fix failure error message

Signed-off-by: Matthew Whitehead <[email protected]>

* Remove the unnamed Pipe constructor and update tests to set a pipe name

Signed-off-by: Matthew Whitehead <[email protected]>

* Revert some info logs back to debug given the feedback on noise in the logs syncing with holesky

Signed-off-by: Matthew Whitehead <[email protected]>

* Refactor fastSyncPivotDistance to syncPivotDistance

Signed-off-by: Matthew Whitehead <[email protected]>

* Incomplete refactoring

Signed-off-by: Matthew Whitehead <[email protected]>

* Update BFT event queueing tests

Signed-off-by: Matthew Whitehead <[email protected]>

* Event queue test fixes

Signed-off-by: Matthew Whitehead <[email protected]>

* Remove automatic setting of bonsai-limit-trie-logs-enabled to false if sync-mode = FULL (moving to another PR)

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Karim Taam <[email protected]>
Signed-off-by: Matt Whitehead <[email protected]>
Co-authored-by: Karim Taam <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Turn off CicleCI for Besu (#7291)

All the CI jobs run in GitHub actions and Circle CI it no longer needed in Besu project

Signed-off-by: Chaminda Divitotawela <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Check for snap server (#6609)

* EthPeer add isServingSnap to be able to make sure that we have enough snap servers connected when we are snap syncing

Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Implement System Calls (#7263)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* wrap WorldUpdater inside a WorldUpdaterService to inject the authorized code whenever needed

Signed-off-by: Daniel Lehrner <[email protected]>

* Update limit trie logs validation message for sync-mode=FULL (#7279)

Signed-off-by: Simon Dudley <[email protected]>

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Execute requests before block persist (#7295)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* fixed MainnetTransactionProcessor retrieval of correctn `to` account with injected code, fixed code injection

Signed-off-by: Daniel Lehrner <[email protected]>

* only first authorization is accepted, all the following ones are ignored

Signed-off-by: Daniel Lehrner <[email protected]>

* don't cache account with empty code

Signed-off-by: Daniel Lehrner <[email protected]>

* revert wrapping of world updater, as its `updater()` method creates a type of nesting that is not compatible with wrapping it. Instead a service is injected in the world updater to inject the code into the authorized accounts

Signed-off-by: Daniel Lehrner <[email protected]>

* Fixed outdated tech redirect link. (#7297)

* fix wiki link

Signed-off-by: Snazzy <[email protected]>

* fix format

Signed-off-by: Snazzy <[email protected]>

* change knownHash

Signed-off-by: Snazzy <[email protected]>

---------

Signed-off-by: Snazzy <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Increment private nonce even if transaction failed. (#6593)

Increment private nonce even if transaction failed

Signed-off-by: George Tebrean <[email protected]>
Signed-off-by: [email protected] <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* feat: Enhance --profile to load external profiles (#7292)

* feat: --profile can load external profiles
* fix external profile name method
* fix ProfilesCompletionCandidate
* test: Add unit tests
* changelog: Update changelog
* test: Fix TomlConfigurationDefaultProviderTest
* test: Fix BesuCommandTest

---------

Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Fix status badge for documentation (#7304)

Documentation has been moved to GitHub pages and no longer use readthedocs. Updated the README status badge for docs with correct link

Signed-off-by: Chaminda Divitotawela <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* [MINOR] Fixed some typos (#7299)

* typos

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* refactored to share one AuthorizedAccountService between the different instances of the world updater, renamed some classes

Signed-off-by: Daniel Lehrner <[email protected]>

* spotless

Signed-off-by: Daniel Lehrner <[email protected]>

* load code for authorization at the beginning of the transaction

Signed-off-by: Daniel Lehrner <[email protected]>

* ignore authorization if chain id doesn't match

Signed-off-by: Daniel Lehrner <[email protected]>

* cache authority address, evmtool: do not fail if sender address is wrong

Signed-off-by: Daniel Lehrner <[email protected]>

* Add evmtool block-test subcommand (#7293)

* Add evmtool block-test subcommand

Add an evmtool subcommand that will run non-hive blockchain tests.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Make the retrying snap tasks switching (#7307)

* make snap tasks switching

Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* 6612: Remove deprecated sync modes and related helper methods (#7309)

* 6612: Remove deprecated sync modes and related helper methods

Signed-off-by: Matilda-Clerke <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* EOF Reference Test Fixes (#7306)

Fix a number of issues found in reference tests and evmone tests.

- Be tolerant of more nulls in json
- Support ContainerKind in reference tests
- re-order EXTCALL oeprands
- correct return value for REVERT in EXT*CALL
- re-order EOFCREATE code validation

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* test template refactor, bump besu-native to 0.9.2 (#7315)

Signed-off-by: garyschulte <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Feature/use gnark-crypto for eip-2537 (#7316)

* use gnark-crypto for bls precompiles

Signed-off-by: garyschulte <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* 6612 update changelog with removed syncmodes (#7320)

* 6612: Update changelog with removal of deprecated sync modes

Signed-off-by: Matilda Clerke <[email protected]>

* 6612: Update changelog with removal of deprecated sync modes

Signed-off-by: Matilda Clerke <[email protected]>

* 6612: Update changelog with removal of deprecated sync modes

Signed-off-by: Matilda Clerke <[email protected]>

---------

Signed-off-by: Matilda Clerke <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Update datacopy (#7319)

Check for OOG earlier in DataCopy.
Add unit tests to cover operation branches.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* disable flaky test (#7308)

* disable flaky test

Signed-off-by: Sally MacFarlane <[email protected]>

* disable flaky test

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Update unit test (#7317)

* Update parameterized unit tests so the enumerate with --dry-run
* Update the prague-withdrawal.json unit test to handle current code

Signed-off-by: Danno Ferrin <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* persist accounts that have storage updates, but no nonce, balance nor code

Signed-off-by: Daniel Lehrner <[email protected]>

* Revert "persist accounts that have storage updates, but no nonce, balance nor code"

This reverts commit 9c9121a.

Signed-off-by: Daniel Lehrner <[email protected]>

* removed PKI backed QBFT (#7310)

* removed PKI backed QBFT

Signed-off-by: Sally MacFarlane <[email protected]>

* changelog

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* EIP-7251 add consolidation request type (#7266)

* add request type for consolidations, encoder, decoder and tests

* added raw tx for consolidation

* add consolidation reqs to EngineGetPayloadResultV4

* set storage slot value to 0 initially and value for tx

* updates plugin api

Signed-off-by: Justin Florentine <[email protected]>

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Justin Florentine <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* fix: `eth_call` deserialization to correctly ignore unknown fields in the transaction object (#7323)

* fix: Use Builder for JsonCallParameter
* changelog
* add additional unit tests
* fix: Update builder to withGas to match the json eth_call
---------

Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* Stop transaction selection on TX_EVALUATION_TOO_LONG (#7330)

Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>

* message frame buider will create AuthorizedCodeService by itsef if it isn't set

Signed-off-by: Daniel Lehrner <[email protected]>

* get correct nonce for authorization

Signed-off-by: Daniel Lehrner <[email protected]>

* nonce only returns a vaid nonce, new method nonceList returns all the nonces

Signed-off-by: Daniel Lehrner <[email protected]>

* plugs leaky abstraction

Signed-off-by: Justin Florentine <[email protected]>

* some renaming, acceptance tests checks for exact balance of tx sponsor at the end.

Signed-off-by: Daniel Lehrner <[email protected]>

* inject the 7702 code into DiffBasedWorldStateUpdateAccumulator.createAccount

Signed-off-by: Daniel Lehrner <[email protected]>

* spotless

Signed-off-by: Justin Florentine <[email protected]>

* spotless fix, removed todos

Signed-off-by: Daniel Lehrner <[email protected]>

* make AuthorityProcessor & chain id for it optional

Signed-off-by: Daniel Lehrner <[email protected]>

---------

Signed-off-by: Daniel Lehrner <[email protected]>
Signed-off-by: Chaminda Divitotawela <[email protected]>
Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Ties <[email protected]>
Signed-off-by: Wolmin <[email protected]>
Signed-off-by: Wolmin <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Leni <[email protected]>
Signed-off-by: Justin Florentine <[email protected]>
Signed-off-by: Usman Saleem <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Matt Whitehead <[email protected]>
Signed-off-by: garyschulte <[email protected]>
Signed-off-by: Karim Taam <[email protected]>
Signed-off-by: Snazzy <[email protected]>
Signed-off-by: George Tebrean <[email protected]>
Signed-off-by: Matilda-Clerke <[email protected]>
Signed-off-by: Matilda Clerke <[email protected]>
Co-authored-by: Chaminda Divitotawela <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Danno Ferrin <[email protected]>
Co-authored-by: Gabriel-Trintinalia <[email protected]>
Co-authored-by: Matt Whitehead <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Ties <[email protected]>
Co-authored-by: Matt Nelson <[email protected]>
Co-authored-by: Wolmin <[email protected]>
Co-authored-by: Fabio Di Fabio <[email protected]>
Co-authored-by: leniram159 <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>
Co-authored-by: Usman Saleem <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>
Co-authored-by: garyschulte <[email protected]>
Co-authored-by: Karim Taam <[email protected]>
Co-authored-by: gringsam <[email protected]>
Co-authored-by: George Tebrean <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: Matilda-Clerke <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants