首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在摩根大通仲裁中,伊斯坦布尔共识机制使用的是什么合同?

在摩根大通仲裁中,伊斯坦布尔共识机制使用的是什么合同?
EN

Stack Overflow用户
提问于 2018-02-14 22:39:45
回答 1查看 325关注 0票数 1

在来自示例的“7节点”安装JPMorgan中,github使用了这样一个创建文件("istanbul-genesus.json"):

代码语言:javascript
复制
{
"alloc": {
  "0x0000000000000000000000000000000000000020": {
    "code": "0x606060405236156100c45760e060020a60003504631290948581146100c9578063284d163c146100f957806342169e4814610130578063488099a6146101395780634fe437d514610154578063559c390c1461015d57806368bb8bb61461025d57806372a571fc146102c857806386c1ff681461036957806398ba676d146103a0578063a7771ee31461040b578063adfaa72e14610433578063cf5289851461044e578063de8fa43114610457578063e814d1c71461046d578063f4ab9adf14610494575b610002565b610548600435600160a060020a03331660009081526003602052604090205460ff16156100c45760018190555b50565b610548600435600160a060020a03331660009081526005602052604090205460ff16156100c4576004546001141561055e57610002565b61045b60025481565b61054a60043560056020526000908152604090205460ff1681565b61045b60015481565b61045b60043560006000600060006000600050600186038154811015610002579080526002027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630192505b60018301548110156105d75760018301805484916000918490811015610002576000918252602080832090910154835282810193909352604091820181205485825292869052205410801561023257506001805490840180548591600091859081101561000257906000526020600020900160005054815260208101919091526040016000205410155b156102555760018301805482908110156100025760009182526020909120015491505b6001016101a8565b610548600435602435600160a060020a03331660009081526003602052604081205460ff16156100c4578054839010156105e45780548084038101808355908290829080158290116105df576002028160020283600052602060002091820191016105df919061066b565b610548600435600160a060020a03331660009081526005602052604090205460ff16156100c457600160a060020a0381166000908152604090205460ff1615156100f65760406000819020805460ff191660019081179091556004805490910190558051600160a060020a038316815290517f1a4ce6942f7aa91856332e618fc90159f13a340611a308f5d7327ba0707e56859181900360200190a16100f6565b610548600435600160a060020a03331660009081526003602052604090205460ff16156100c4576002546001141561071457610002565b61045b600435602435600060006000600050600185038154811015610002579080526002027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630181509050806001016000508381548110156100025750825250602090200154919050565b61054a600435600160a060020a03811660009081526003602052604090205460ff165b919050565b61054a60043560036020526000908152604090205460ff1681565b61045b60045481565b6000545b60408051918252519081900360200190f35b61054a600435600160a060020a03811660009081526005602052604090205460ff1661042e565b610548600435600160a060020a03331660009081526003602052604090205460ff16156100c457600160a060020a03811660009081526003602052604090205460ff1615156100f65760406000818120600160a060020a0384169182905260036020908152815460ff1916600190811790925560028054909201909155825191825291517f0ad2eca75347acd5160276fe4b5dad46987e4ff4af9e574195e3e9bc15d7e0ff929181900390910190a16100f6565b005b604080519115158252519081900360200190f35b600160a060020a03811660009081526005602052604090205460ff16156100f65760406000819020805460ff19169055600480546000190190558051600160a060020a038316815290517f8cee3054364d6799f1c8962580ad61273d9d38ca1ff26516bd1ad23c099a60229181900360200190a16100f6565b509392505050565b505050505b60008054600019850190811015610002578382526002027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016020819052604082205490925014156106b8578060010160005080548060010182818154818355818115116106a5578183600052602060002091820191016106a5919061068d565b50506002015b808211156106a157600181018054600080835591825260208220610665918101905b808211156106a1576000815560010161068d565b5090565b5050506000928352506020909120018290555b600082815260208281526040918290208054600101905581514381529081018490528151600160a060020a033316927f3d03ba7f4b5227cdb385f2610906e5bcee147171603ec40005b30915ad20e258928290030190a2505050565b600160a060020a03811660009081526003602052604090205460ff16156100f65760406000819020805460ff19169055600280546000190190558051600160a060020a038316815290517f183393fc5cffbfc7d03d623966b85f76b9430f42d3aada2ac3f3deabc78899e89181900360200190a16100f656",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000001": "0x02",

      "0x0000000000000000000000000000000000000000000000000000000000000002": "0x03",
      "0x29ecdbdf95c7f6ceec92d6150c697aa14abeb0f8595dd58d808842ea237d8494": "0x01",
      "0x6aa118c6537572d8b515a9f9154be55a3377a8de7991cd23bf6e5ceb368688e3": "0x01",
      "0x50793743212c6f01d326957d7069005b912f8215f10c7536be6b10782c6c44cd": "0x01",

      "0x0000000000000000000000000000000000000000000000000000000000000004": "0x02",
      "0xaca3b76ed4968740c3180dd7fa37f4aa229a2c758a848f53920e9ccb4c4bb74e": "0x01",
      "0xd188ba2dc293670542c1befaf7678b0859e5354a0727d1188b2afb6f47fe24d1": "0x01"
    },
    "balance": "1000000000000000000000000000"
  },

  "0xed9d02e382b34818e88b88a309c7fe71e65f419d": {
    "balance": "1000000000000000000000000000"
  },
  "0xca843569e3427144cead5e4d5999a3d0ccf92b8e": {
    "balance": "1000000000000000000000000000"
  },
  "0x0fbdc686b912d7722dc86510934589e0aaf3b55a": {
    "balance": "1000000000000000000000000000"
  },
  "0x9186eb3d20cbd1f5f992a950d808c4495153abd5": {
    "balance": "1000000000000000000000000000"
  },
  "0x0638e1574728b6d862dd5d3a3e0942c3be47d996": {
    "balance": "1000000000000000000000000000"
  }
},
"coinbase": "0x0000000000000000000000000000000000000000",
"config": {
  "homesteadBlock": 1,
    "eip150Block": 2,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 3,
    "eip158Block": 3,
  "istanbul": {
    "epoch": 30000,
    "policy": 0
  },
  "isQuorum": true
},
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000f897f893946571d97f340c8495b661a823f2c2145ca47d63c2948157d4437104e3b8df4451a85f7b2438ef6699ff94b131288f355bc27090e542ae0be213c20350b76794b912de287f9b047b4228436e94b5b78e3ee1617194d8dba507e85f116b1f7e231ca8525fc9008a696694e36cbeb565b061217930767886474e3cde903ac594f512a992f3fb749857d758ffda1330e590fa915e80c0",
"gasLimit": "0x47b760",
"difficulty": "0x1",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"nonce": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00"

}

因此,这个成因文件显然包含地址0x00.0020的契约二进制代码。

,但是这个合同的源代码是什么?

我读过,在古老版本的仲裁中,这个合同是QuorumChain协商一致算法的投票契约。在最新版本中,他们删除了QuorumChain,并加入了伊斯坦布尔BFT共识。所以这是新合同。

在仲裁源中找不到它的源代码。在源中没有类似于此的合同(甚至按大小)。

我在EVM回形码中解压缩了这个合同,但是原始的来源会更有帮助。

附注:

我问了这个问题昆仑小组(通过他们的联系邮件)-他们没有回应。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-16 09:57:14

可能是voting.sol。我百分之九十肯定。

另外,我百分之九十肯定这是垃圾。本合同不为伊斯坦布尔共识所用。

一些证据(与radare2一起):

  1. 从“伊斯坦布尔-genesus.json”中剪切"code:“内容,并粘贴到文本文件”伊斯坦布尔-cintract.hex“。删除"0x“前缀:”606060405236156100c45760e060020a6
  2. 通过"rax2“工具将其转换为二进制: $ rax2 -s <./伊斯坦布尔-cintract.hex>./伊斯坦布尔-cintract.bin
  3. 用"radare2“(安装"evm”架构包,如果没有安装,$ r2pm install evm)将其解压缩。有用的链接是调试EVM换向EVM。 $ r2 -A -a evm ./伊斯坦布尔-cintract.bin不能将位64设置为“evm”不能将位64设置为“evm”--这是radare2中的一些笑话.不要惊慌失措0x00000000> pdf >/伊斯坦布尔-电影。
  4. 现在你有了“伊斯坦布尔-电影”。对此的一些分析: 6312909485 push4 0x12909485;它是公共功能的“选择器”;S:0x12909485,FUNC_SELECTOR //FUNC_SELECTOR -事务数据0x00001981 dup2的前4字节;S:FUNC_SELECTOR,0x12909485,FUNC_SELECTOR 0x000000141a eq;S:(FUNC_SELECTOR == 0x12909485),FUNC_SELECTOR 0x0000001b 6100c9 push2 0xc9;S: 0xc9,(FUNC_SELECTOR == 0x12909485),FUNC_SELECTOR 0x0000001e 57 jumpi;if (FUNC_SELECTOR == 0x12909485) goto 0xc9字节码地址
  5. 这是一个公共接口函数调用。如果函数选择器(事务数据的前4个字节)是0x12909485,它会跳到函数体上。在下面的文本中,我们可以找到其余的公共功能选择器: push4 0x12909485 6312909485等等,只有选择器推命令..。0x00000020 63284d163c push4 0x284d163c 0x0000002b 6342169e48 push4 0x42169e48 0x00000036 63488099a6 push4 0x488099a6 0x00000041 634fe437d5 push4 0x4fe437d5 0x0000004c 63559c390c push4 0x559c390c 0x00000057 6368bb8bb6 push4 0x68bb8bb6 0x00000062 6372a571fc push4 0x72a571fc 0x0000006d 6386c1ff68 push4 0x86c1ff68 0x00000078 6398ba676d push4 0x98ba676d 0x00000083 63a7771ee3 push4 0xa7771ee3 0x0000008e 63adfaa72e push4 0xadfaa72e 0x00000099 63cf528985 push4 0xcf528985 0x000000a4 63de8fa431 push4 0xde8fa431 0x000000af 63e814d1c7 push4 0xe814d1c7 0x000000ba 63f4ab9adf push4 0xf4ab9adf
  6. 作为该字节码具有与voting.sol相同接口的最后证明,可以通过"block_voting.sol“的签名重新计算选择器,并将其与字节码中找到的选择器进行比较: 0x12909485 web3.sha3("setVoteThreshold(uint256)").substr(0,10) 0x284d163c web3.sha3("removeBlockMaker(address)").substr(0,10);0x42169e48 == web3.sha3("voterCount()").substr(0,10);0x488099a6 == web3.sha3("canCreateBlocks(address)").substr(0,10);0x4fe437d5 == web3.sha3(“voteThreshold(())”).substr(0,10);0x559c390c == web3.sha3("getCanonHash(uint256)").substr(0,10);0x68bb6 == web3.sha3(“投票(uint256,bytes32)”) == (0,10);0x72a571fc == ??没找到..。0x86c1ff68 web3.sha3("removeVoter(address)").substr(0,10);0x98ba676d == web3.sha3("getEntry(uint256,uint256)").substr(0,10);0xa7771ee3 == web3.sha3(“isVoter(地址)”).substr(0,10);0xadfaa72e == web3.sha3(“canVote(地址)”).substr(0,10);0xe814d1c7 web3.sha3("isBlockMaker(address)").substr(0,10);0xf4ab9adf == web3.sha3(“addVoter(地址)”).substr(0,10);

由你来决定这是什么..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48797407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档