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

Special case onblock action from contract whitelist/blacklist to avoid misuse #3814

Closed
arhag opened this issue Jun 4, 2018 · 0 comments · Fixed by #3921
Closed

Special case onblock action from contract whitelist/blacklist to avoid misuse #3814

arhag opened this issue Jun 4, 2018 · 0 comments · Fixed by #3921
Assignees
Milestone

Comments

@arhag
Copy link
Contributor

arhag commented Jun 4, 2018

As of v1.0.1, if a producer sets up their contract-whitelist to include accounts other than eosio, or alternatively has an empty contract-whitelist but includes eosio in the contract-blacklist, then that producer will reject the onblock transaction from executing. However, since we have no way of signaling whether the onblock transaction executed or not in the block structure, other nodes with a different whitelist/blacklist configuration may attempt to the run the onblock transaction. This leads to a discrepancy of the action_mroot and therefore the digest that the block producers signs compared to the digest other nodes expect the producer to have signed.

With the current behavior, it is inappropriate for a block producer to include eosio in the blacklist (or if a whitelist is set, to not include eosio in the whitelist). Either this needs to be made clear in the documentation, or better yet we should special case the eosio::onblock action so that it is not possible for a block producer to badly configure the whitelist/blacklist.

Thanks to EOS Canada for bringing this to our attention.

@arhag arhag added this to the Version 1.1 milestone Jun 4, 2018
@arhag arhag self-assigned this Jun 4, 2018
@arhag arhag modified the milestones: Version 1.1, Version 1.0.2 Jun 6, 2018
arhag added a commit that referenced this issue Jun 7, 2018
Also fixed error in transaction::send definition and added helper script
for abi generation.
@arhag arhag modified the milestones: Version 1.0.3, Version 1.0.2 Jun 7, 2018
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 a pull request may close this issue.

1 participant