zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    组合继承
    包装明星——封装
    多种添加公用方法的方式
    专有扩展
    插入标记
    mac 命令操作
    php(apache)切换版本
    SqlServer索引+约束篇章
    sqlserver 常用语法
    C# 通用数据访问类
  • 原文地址:https://www.cnblogs.com/rexzhao/p/8707395.html
Copyright © 2011-2022 走看看