Skip to content
Yi Zhang edited this page Mar 29, 2018 · 13 revisions

Contract Discussion

  1. Inconsistent between target_hash and target_epoch https://github.com/ethereum/casper/issues/57
  2. validator_index or validators' signature checkers maybe different on different chains. It is OK because a validator has to wait two dynasties (two finalized blocks) to join a validator set, then the case in which he has two different identities for the same ether deposit would mean that there were two different finalized blocks (competing forks) and some previous validators were slashed. In such a case, the community is expected to either choose a chain to rally behind or simply both chains continue to exist (like eth/eth-classic) in which the people not at fault continue to have funds on both.

Vyper compiler Discussion

  1. Support for integer division https://github.com/ethereum/vyper/issues/716
  2. Improvement in shift function. shift is compiled to the following code:
       ['if', ['sle', '_s', 0], 
              ['div', '_v', ['exp', 2, ['sub', 0, '_s']]], 
              ['mul', '_v', ['exp', 2, '_s']]]]],
    
    When _s == 0, ['div', '_v', ['exp', 2, ['sub', 0, '_s']]] and ['mul', '_v', ['exp', 2, '_s']]]] are the same. But in the div branch, it need to execute sub which potentially costs more gas. Suggest using slt instead of sle. On the other hand, EIP145 proposes supporting shift opcode directly in EVM. Not sure when it will happen.

ToDo

  1. Checking no reentrance exploit
Clone this wiki locally