Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

Implement NO_DUPLICATE_DEFERRED_ID protocol feature #7072

Merged
merged 10 commits into from
Apr 11, 2019

Conversation

arhag
Copy link
Contributor

@arhag arhag commented Apr 4, 2019

Change Description

Resolves #6115.

This PR adds support for the NO_DUPLICATE_DEFERRED_ID protocol feature which makes changes to ensure that it is virtually impossible for deferred transactions to end up with a transaction ID that collides with the ID of any other transaction that is scheduled/retired in the blockchain, and also makes it possible for a contract to know the transaction ID of the scheduled deferred transaction prior to sending it.

This PR also makes changes to better handle the error case of a transaction containing disallowed extensions.

This PR introduces a new unit test protocol_feature_tests/no_duplicate_deferred_id_test to test the behavior of this new protocol feature. The deferred_test test contract was augmented to meet the needs of the new unit test.

Consensus Changes

  • Consensus Changes

Makes the NO_DUPLICATE_DEFERRED_ID protocol feature available. See above description and #6115 for details.

The NO_DUPLICATE_DEFERRED_ID protocol feature depends on the REPLACE_DEFERRED protocol feature (#6997). See this comment for details about what that means.

API Changes

  • API Changes

Documentation Additions

  • Documentation Additions

Allows the `num_failed` tracker and blacklist of producer_plugin to work 
as intended.
Preserves the current pattern of not retiring (except for case with 
expired status) deferred transaction with invalid extensions even after 
NO_DUPLICATE_DEFERRED_ID activation.
… the getAllBuiltinFeatureDigestsToPreactivate function in Node.py #6115
…to test the NO_DUPLICATE_DEFERRED_ID protocol feature. #6115

Updated the deferred_test test contract to support testing requirements 
of new test.
@arhag arhag marked this pull request as ready for review April 9, 2019 01:01
@taokayan taokayan self-requested a review April 11, 2019 01:07
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants