diff --git a/contrib/local-testnet.sh b/contrib/local-testnet.sh index a321bfe7f1..8d12664a5d 100755 --- a/contrib/local-testnet.sh +++ b/contrib/local-testnet.sh @@ -69,7 +69,7 @@ do sleep 1 - # Create account keypair + # Create account key pair interchain-security-pd keys add $PROV_KEY --home ${PROV_NODE_DIR} --keyring-backend test --output json > ${PROV_NODE_DIR}/${PROV_KEY}.json 2>&1 sleep 1 @@ -394,7 +394,7 @@ do sleep 1 - # Create account keypair + # Create account key pair interchain-security-cd keys add $PROV_KEY --home ${CONS_NODE_DIR} --keyring-backend test --output json > ${CONS_NODE_DIR}/${PROV_KEY}.json 2>&1 sleep 1 diff --git a/docs/figures/hypha-consumer-start-process.excalidraw b/docs/figures/hypha-consumer-start-process.excalidraw index 72a1b05445..387ad9b059 100644 --- a/docs/figures/hypha-consumer-start-process.excalidraw +++ b/docs/figures/hypha-consumer-start-process.excalidraw @@ -6117,11 +6117,11 @@ "locked": false, "fontSize": 20, "fontFamily": 1, - "text": "Hz\nwe get the \nevidence and \nslash", + "text": "Hz\new get the \nevidence and \nslash", "textAlign": "center", "verticalAlign": "middle", "containerId": "V2uHp_TDQ8ihrS_8j9zZZ", - "originalText": "Hz\nwe get the evidence and slash", + "originalText": "Hz\new get the evidence and slash", "autoResize": true, "lineHeight": 1.25 }, @@ -7482,7 +7482,7 @@ "locked": false, "fontSize": 16, "fontFamily": 1, - "text": "height at which \nwe receive\nthe evidence", + "text": "height at which \new receive\nthe evidence", "textAlign": "center", "verticalAlign": "middle", "containerId": "s48-4wXmB4eSn25hza5zD", @@ -17350,11 +17350,11 @@ "locked": false, "fontSize": 16, "fontFamily": 1, - "text": "LC figures\nout that\nconsumer chain\nbecame\nunsecore on\ntimestamp T\n\nThen, LC would need to\n\"deactivate\"\nof all headers that\nhave timestamp >= T.\n\nWe can keep getting\nupdates but not use \ntheir Merkle root. ", + "text": "LC figures\nout that\nconsumer chain\nbecame\nunsecore on\ntimestamp T\n\nThen, LC would need to\n\"deactivate\"\nof all headers that\nhave timestamp >= T.\n\new can keep getting\nupdates but not use \ntheir Merkle root. ", "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "LC figures\nout that\nconsumer chain\nbecame\nunsecore on\ntimestamp T\n\nThen, LC would need to\n\"deactivate\"\nof all headers that\nhave timestamp >= T.\n\nWe can keep getting\nupdates but not use \ntheir Merkle root. ", + "originalText": "LC figures\nout that\nconsumer chain\nbecame\nunsecore on\ntimestamp T\n\nThen, LC would need to\n\"deactivate\"\nof all headers that\nhave timestamp >= T.\n\new can keep getting\nupdates but not use \ntheir Merkle root. ", "autoResize": true, "lineHeight": 1.25 }, @@ -33824,11 +33824,11 @@ "locked": false, "fontSize": 16, "fontFamily": 1, - "text": "bogus header\n4. Febuary 2023\nsigned by Vm", + "text": "bogus header\n4. February 2023\nsigned by Vm", "textAlign": "center", "verticalAlign": "middle", "containerId": "dr-C5qJTTjNBk139hzYmq", - "originalText": "bogus header\n4. Febuary 2023\nsigned by Vm", + "originalText": "bogus header\n4. February 2023\nsigned by Vm", "autoResize": true, "lineHeight": 1.25 }, @@ -39079,11 +39079,11 @@ "locked": false, "fontSize": 36, "fontFamily": 1, - "text": "powers and consumer\npublic keys the validators\nhad when they actually\nopted in to a\nconsumer chain at the\nbeginning of an epoch\nCurrently used by consumer\nchain.\nWE STORE THOSE for\neach validator", + "text": "powers and consumer\npublic keys the validators\nhad when they actually\nopted in to a\nconsumer chain at the\nbeginning of an epoch\nCurrently used by consumer\nchain.\new STORE THOSE for\neach validator", "textAlign": "center", "verticalAlign": "top", "containerId": null, - "originalText": "powers and consumer\npublic keys the validators\nhad when they actually\nopted in to a\nconsumer chain at the\nbeginning of an epoch\nCurrently used by consumer\nchain.\nWE STORE THOSE for\neach validator", + "originalText": "powers and consumer\npublic keys the validators\nhad when they actually\nopted in to a\nconsumer chain at the\nbeginning of an epoch\nCurrently used by consumer\nchain.\new STORE THOSE for\neach validator", "autoResize": true, "lineHeight": 1.25 }, diff --git a/scripts/test_doc/test_documentation.md b/scripts/test_doc/test_documentation.md index 016e9cefe6..a2327888a0 100644 --- a/scripts/test_doc/test_documentation.md +++ b/scripts/test_doc/test_documentation.md @@ -84,7 +84,7 @@ |----------|-------------------| [TestRelayAndApplyDowntimePacket](../../tests/integration/slashing.go#L50) | TestRelayAndApplyDowntimePacket tests that downtime slash packets can be properly relayed from consumer to provider, handled by provider, with a VSC and jailing eventually effective on consumer and provider.
Details* Set up CCV channels and retrieve consumer validators.
* Select a validator and create its consensus address.
* Retrieve the provider consensus address that corresponds to the consumer consensus address of the validator.
* The validator's current state is also retrieved, including its token balance,
* Set validator's signing information is to ensure it will be jailed for downtime.
* Create the slashing packet and send it from the consumer chain to the provider chain with a specified timeout.
* Receive the packet and verify that the validator was removed from the provider validator set.
* Relay VSC packets from the provider chain to each consumer chain and verify that the consumer chains correctly process these packets.
* Check the validator's balance and status on the provider chain to ensure it was jailed correctly but not slashed,
and its unjailing time is updated.
* Reset the outstanding downtime flag on the consumer chain, and ensure that the consumer
chain acknowledges receipt of the packet from the provider chain.

Note: This method does not test the actual slash packet sending logic for downtime
and double-signing, see TestValidatorDowntime and TestValidatorDoubleSigning for
those types of tests.
| [TestSlashPacketAcknowledgement](../../tests/integration/slashing.go#L185) | TestSlashPacketAcknowledgement tests the handling of a slash packet acknowledgement.
Details* Set up a provider and consumer chain, with channel initialization between them performed.
* Send a slash packet with randomized fields from the consumer to the provider.
* The provider processes the packet
| - [TestHandleSlashPacketDowntime](../../tests/integration/slashing.go#L236) | TestHandleSlashPacketDowntime tests the handling of a downtime related slash packet, with integration tests.
Details* Retrieve a validator from provider chain's validators and checks if it's bonded.
* Set tThe signing information for the validator.
* The provider processes the downtime slashing packet from the consumer.
* Check that the validator has been jailed as a result of the downtime slashing packet being processed.
* Verify that the validator’s signing information is updated and that the jailing duration is set correctly.

Note that only downtime slash packets are processed by HandleSlashPacket.
| + [TestHandleSlashPacketDowntime](../../tests/integration/slashing.go#L236) | TestHandleSlashPacketDowntime tests the handling of a downtime related slash packet, with integration tests.
Details* Retrieve a validator from provider chain's validators and checks if it's bonded.
* Set the signing information for the validator.
* The provider processes the downtime slashing packet from the consumer.
* Check that the validator has been jailed as a result of the downtime slashing packet being processed.
* Verify that the validator’s signing information is updated and that the jailing duration is set correctly.

Note that only downtime slash packets are processed by HandleSlashPacket.
| [TestOnRecvSlashPacketErrors](../../tests/integration/slashing.go#L283) | TestOnRecvSlashPacketErrors tests errors for the OnRecvSlashPacket method in an integration testing setting.
Details* Set up all CCV channels and expect panic if the channel is not established via dest channel of packet.
* After the correct channelID is added to the packet, a panic shouldn't occur anymore.
* Create an instance of SlashPacketData and then verify correct processing and error handling
for slashing packets received by the provider chain.
TODO: Move to unit tests.
| [TestValidatorDowntime](../../tests/integration/slashing.go#L412) | TestValidatorDowntime tests if a slash packet is sent and if the outstanding slashing flag is switched when a validator has downtime on the slashing module.
Details* Set up all CCV channel and send an empty VSC packet, then retrieve the address of a validator.
* Validator signs blocks for the duration of the signedBlocksWindow and a slash packet is constructed to be sent and committed.
* Simulate the validator missing blocks and then verify that the validator is jailed and the jailed time is correctly updated.
* Ensure that the missed block counters are reset.
* Check that there is a pending slash packet in the queue, and then send the pending packets.
* Check if slash record is created and verify that the consumer queue still contains the packet since no
acknowledgment has been received from the provider.
* Verify that the slash packet was sent and check that the outstanding slashing flag prevents the jailed validator to keep missing block.
| [TestQueueAndSendSlashPacket](../../tests/integration/slashing.go#L533) | TestQueueAndSendSlashPacket tests the integration of QueueSlashPacket with SendPackets. In normal operation slash packets are queued in BeginBlock and sent in EndBlock.
Details* Set up all CCV channels and then queue slash packets for both downtime and double-signing infractions.
* Check that the correct number of slash requests are stored in the queue, including duplicates for downtime infractions.
* Prepare the CCV channel for sending actual slash packets.
* Send the slash packets and check that the outstanding downtime flags are correctly set for validators that were slashed
for downtime infractions.
* Ensure that the pending data packets queue is empty.
TODO: Move to unit tests.
| diff --git a/tests/integration/slashing.go b/tests/integration/slashing.go index 840821b12c..7c51ad9e96 100644 --- a/tests/integration/slashing.go +++ b/tests/integration/slashing.go @@ -227,7 +227,7 @@ func (s *CCVTestSuite) TestSlashPacketAcknowledgement() { // TestHandleSlashPacketDowntime tests the handling of a downtime related slash packet, with integration tests. // @Long Description@ // * Retrieve a validator from provider chain's validators and checks if it's bonded. -// * Set tThe signing information for the validator. +// * Set the signing information for the validator. // * The provider processes the downtime slashing packet from the consumer. // * Check that the validator has been jailed as a result of the downtime slashing packet being processed. // * Verify that the validator’s signing information is updated and that the jailing duration is set correctly.