-
Notifications
You must be signed in to change notification settings - Fork 631
Single-machine multi-node mixed cluster CI prerequisites #4247
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6743bc7
to
5530860
Compare
What exactly is the problem? That patch to nt-tcp opens up a denial of service attack. The check was put there for good reason. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
network-transport-tcp changes are not acceptable
If you really must disable the hostname check, you can set it in
But beware! Your node will be vulnerable. |
@avieth, thank you! I've missed the check at https://github.com/avieth/network-transport-tcp/blob/csl-2.0.0/src/Network/Transport/TCP.hs#L1044 |
5530860
to
03c458b
Compare
@avieth, the example failure:
|
|
8485432
to
0e8cb4c
Compare
0e8cb4c
to
f32a634
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Let's just await a green light from @avieth.
bors r+ |
4247: Single-machine multi-node mixed cluster CI prerequisites r=deepfire a=deepfire This supplies the necessary changes for a mixed-cluster integration test, as per IntersectMBO/cardano-node#255 : 1. `mainnet_ci_full` genesis & configuration, starting in OBFT node 2. fix for an OBFT EBB rollback issue, which was trying to erase EBB even if the chain was started in OBFT mode, leading to IntersectMBO/cardano-node#255 (comment) 3. change in `network-transport-tcp` to be more lenient regarding remote address claims: deepfire/network-transport-tcp@44f84a8. This is necessary to avoid problems when starting multiple nodes on the same machine. 4. small improvements in genesis generation Additionally, this resets the protocol version for the `shelley_staging_short_full` configuration to 0 -- a prerequisite for its respin. *NOTE*: perhaps this PR should be split. But then, this repository sees very little activity, so perhaps the separation wouldn't have much benefit. I don't have a strong opinion myself. Co-authored-by: Kosyrev Serge <[email protected]>
bors r- |
Canceled |
Waiting on @mhuesch's review of the EBB rollback change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - the OBFT change seems reasonable & minimal.
-- If we're starting up a chain in OBFT mode, we need to ensure | ||
-- that we don't rollback the actual genesis block out of existence | ||
-- (i.e. the EBB at epoch 0): | ||
BlockHeaderGenesis _ -> unless (tipHeader ^. epochIndexL == 0) $ do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this looks completely reasonable. My memory is fuzzy, but I thought we had tested scenarios where the cluster started in OBFT mode, but perhaps I am misremembering - it seems like we would've hit the same snag that Serge encountered here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mhuesch: Yeah, we definitely had tested those scenarios before but I think after implementing your rollback solution we eventually ended up accepting a trade-off here such that we'd not be able to start up a chain directly in OBFT.
bors r+ |
4247: Single-machine multi-node mixed cluster CI prerequisites r=deepfire a=deepfire This supplies the necessary changes for a mixed-cluster integration test, as per IntersectMBO/cardano-node#255 : 1. `mainnet_ci_full` genesis & configuration, starting in OBFT node 2. fix for an OBFT EBB rollback issue, which was trying to erase EBB even if the chain was started in OBFT mode, leading to IntersectMBO/cardano-node#255 (comment) 3. change in `network-transport-tcp` to be more lenient regarding remote address claims: deepfire/network-transport-tcp@44f84a8. This is necessary to avoid problems when starting multiple nodes on the same machine. 4. small improvements in genesis generation Additionally, this resets the protocol version for the `shelley_staging_short_full` configuration to 0 -- a prerequisite for its respin. *NOTE*: perhaps this PR should be split. But then, this repository sees very little activity, so perhaps the separation wouldn't have much benefit. I don't have a strong opinion myself. Co-authored-by: Kosyrev Serge <[email protected]>
Build succeeded |
59: Bump deps and update to changes in them r=deepfire a=deepfire This: 1. Bumps dependencies to the version used in `cardano-node`, 2. Uses a bumped `cardano-sl` with input-output-hk/cardano-sl#4247 3. Updates to changes in `cardano-ledger` and `ouroboros-network` 4. Adds new dependencies to facilitate the above. Co-authored-by: Kosyrev Serge <[email protected]>
This supplies the necessary changes for a mixed-cluster integration test, as per IntersectMBO/cardano-node#255 :
mainnet_ci_full
genesis & configuration, starting in OBFT nodenetwork-transport-tcp
to be more lenient regarding remote address claims: deepfire/network-transport-tcp@44f84a8. This is necessary to avoid problems when starting multiple nodes on the same machine.Additionally, this resets the protocol version for the
shelley_staging_short_full
configuration to 0 -- a prerequisite for its respin.NOTE: perhaps this PR should be split. But then, this repository sees very little activity, so perhaps the separation wouldn't have much benefit. I don't have a strong opinion myself.