• truffle 发布 智能合约


    参考 这篇https://www.codeooze.com/blockchain/ethereum-geth-private-blockchain/ 说的已经很详细了 

    genesis.json 过时了可参考https://mlgblockchain.com/ethereum-private-network.html修改为如下

    {

    "config" :{

    "chainId": 16,

    "homesteadBlock": 0,

    eip155Block": 0,

    eip158Block":0

    },

    "nonce": "0x0000000000220042",

    "timestamp": "0x0",

    parentHash": "0x000000000000000000",

    "mixhash": "0x000000000000000000",

    "gasLimit": "0x8000000",

    "difficulty": "0x10",

    "alloc":{}

    }

    geth --datadir privchain init genesis.json

    geth --port 3000 --networkid 58342 --nodiscover --datadir="privchain" --maxpeers=0 --rpc --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" --rpcapi "eth,net,web3"

    然后新启动一个终端输入 如下 

    geth attach ipc://home/someone/privchain/geth.ipc

    geth启动基本也就完成了 

    personal.newAccount('password')

    personal.unlockAccount(web3.eth.coinbase, "password", 15000) 解锁账户 不然发布的时候会报错  15000应该是时间 超时之后重新解锁账户就可以了 

    miner.start() 保证挖矿状态

    truffle migrate --reset (此处为了避免遇到错误 我直接带上reset参数)

    truffle console

    HelloWorld.deployed() 就算完成了 

    中途遇到2个错误 其一  Error: No network specified. Cannot determine current network异常

    原因是 truffle配置文件中没有指定networkid 

    导致上面异常的原因为是因为truffle.js里面未配置链接合约发布的环境地址,找到对应的truffle.js文件,修改代码为类似如下配置即可解决问题:

    module.exports = {
        networks: {
            development: {
                host: "localhost",
                port: 8545,
                network_id: "*" // 匹配任何network id
             }
        }
    };
    其二 Error: Exceeds block gas limit
    gas给的(或者消耗的)太多超出区块最大的gas限制量了 修改gaslimit
  • 相关阅读:
    linux定时器的使用
    6410 spi总线
    6410 spi 设备驱动
    qtcreator 安装后不能显示菜单
    基于Tiny 6410的内核移植 (NAND FLASH 、UBIFS篇)
    有关ajax跨域问题
    sqlmap的安装
    C# 连接数据库的配置方法
    初识Markdown
    ASP.NET 使用Ueditor富文本编辑器
  • 原文地址:https://www.cnblogs.com/rexzhao/p/8707395.html
Copyright © 2020-2023  润新知