zoukankan      html  css  js  c++  java
  • web3部署智能合约碰到的一个奇怪问题

    都是gasLimit惹的祸 解决一个奇怪问题Error: Number can only safely store up to 53 bits

    原来好好的node endpointtest.js ,结果在新的私链上怎么都不能运行了.
    这个部署js文件就不上了,很简单.
    只要 gas设置稍大一点就报标题的那个错误,但是gas设置小了,又满足不了要求.
    经过排查发现时genesis.json指定的gasLimit太大了,导致web3.js在计算的时候出错.

    私链的genesis.json

    {
        "config": {
            "chainId": 89120348582,
            "homesteadBlock": 1,
            "eip155Block": 1,
            "eip158Block": 1,
            "ByzantiumBlock":1
        },
        "difficulty": "2",
        "gasLimit": "0xff210000000000000",
        "alloc": {
            "0x1a9ec3b0b807464e6d3398a59d6b0a369bf422fa": { "balance": "30000000000000000000000" },
            "0x33df901abc22dcb7f33c2a77ad43cc98fbfa0790": { "balance": "40000000000000000000000" }
        }
    }
    

    后来修改gaslimit为990000000000000,总算解决问题.看来gaslimit不是随便设置一个就可以的.
    太小会造成你的合约经常超出最大限制而无法运行,太大就会出现标题中的问题.

    感谢开源软件,可以添加一些调试信息来发现错误.

  • 相关阅读:
    .net core 2.0以上版本加载appsettings.json
    BZOJ 2564: 集合的面积
    P3829 [SHOI2012]信用卡凸包
    P2215 [HAOI2007]上升序列
    P2511 [HAOI2008]木棍分割
    P2510 [HAOI2008]下落的圆盘
    P4053 [JSOI2007]建筑抢修
    P4050 [JSOI2007]麻将
    P4049 [JSOI2007]合金
    P4161 [SCOI2009]游戏
  • 原文地址:https://www.cnblogs.com/baizx/p/8045218.html
Copyright © 2011-2022 走看看