将智能合约部署到私有链

  本文将介绍一下如何将智能合约部署到私有链(感觉就是令人窒息的操作)。

1. 建立新文件

打开终端,输入

mkdir SimpleStorage//文件名可以任意替换
cd SimpleStorage
truffle init webpack

很多教程第三步都写的truffle init ,但这在新版本的truffle中编译会出现问题(文件没有完全生成,app文件和node文件缺失,会导致很多错误)。


自己编写智能合约(我是随便放的,但是要正确,可以通过编译,可以在remix上debug)放入目录中

SimpleStorage.sol保存到SimpleStorage/contracts目录中.

 打开migration/2_deploy_contracts.js, 修改为:

 
 
var ConvertLib = artifacts.require( "./ConvertLib.sol" );
var MetaCoin = artifacts.require( "./MetaCoin.sol" );
var SimpleStorage = artifacts.require( "./SimpleStorage.sol" )
 
module.exports = function (deployer) {
   deployer.deploy(ConvertLib);
   deployer.link(ConvertLib, MetaCoin);
   deployer.deploy(MetaCoin);
   deployer.deploy(SimpleStorage);
};

2.部署私有链(可以看上一篇,这里也会详写,怕自己忘掉Orz)

在SimpleStorage建立文件piccgenesis.json,里面的内容为

    {  
      
        "nonce":"0x0000000000000042",  
      
        "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",  
      
        "difficulty": "0x4000",  
      
        "alloc": {},  
      
        "coinbase":"0x0000000000000000000000000000000000000000",  
      
        "timestamp": "0x00",  
      
        "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",  
      
        "extraData": "0x000000",  
      
        "config":{  
          "chainId":15,  
          "homesteadBlock":0,  
          "eip155Block":0,  
          "eip158Block":0  
      
    },  
      
        "gasLimit":"0xffffffff"  
      
    }  
在终端中输入——建立私有链
geth --datadir "./" init piccgenesis.json
geth --datadir "./" --nodiscover console 2>>geth.log
然后建立账户
personal.newAccount("123456")//123456是密码阔以自己修改;


3.启动私有链

在终端中输入

geth --datadir "./" --networkid 314590 --ipcdisable --port 61910 --rpc --rpcapi 'web3,eth,net' --rpccorsdomain '*' --rpcport 8200 console
打开SimpleStorage/truffle.js文件,然后修改prot: 8545为:8200

在geth中输入

acc0 = eth.accounts[0]

>personal.unlockAccount(eth.accounts[0],"123456//密码", 1000*60*30)

这一步为了解锁,不然后面程序无法执行。

并且开始挖矿,因为所有交易必须通过区块链才能执行。


4.启动节点

打开新的终端,输入

truffle migrate 

过了很久便能看到





总的来说操作还是有点复杂,挖矿的时间也比较长,如果出现错误,还是耐心搜寻一下,最后可以解决。


错误原因一:



账号被锁,再打开就好了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
私有链的搭建在Windows系统上可以通过安装geth来完成。首先,选择一个安装目录,比如d:\blockchain,并在该目录下安装geth。安装完成后,你会在该目录下看到geth.exe文件。请注意,文件路径中不能出现中文。如果你想将geth安装在其他目录,可以在安装完成后将geth.exe复制到d:\blockchain中。建议不要将geth安装在C盘,因为系统对C盘有一些访问权限的限制。\[3\] 安装完成后,你可以使用geth命令行工具来创建和管理私有链。你可以使用以下命令来启动私有链: ``` geth --datadir d:\blockchain\data init d:\blockchain\genesis.json geth --datadir d:\blockchain\data --networkid 1234 console ``` 其中,`d:\blockchain\data`是你指定的数据目录,`d:\blockchain\genesis.json`是你创建的创世区块文件。你可以根据自己的需求进行相应的修改。\[2\] 启动私有链后,你可以使用geth提供的命令来进行交易、挖矿、部署智能合约等操作。后续的Linux环境搭建和智能合约的学习可以在之后进行。希望你能够顺利搭建私有链并享受学习的过程。\[2\] #### 引用[.reference_title] - *1* [windows环境下部署以太坊私有链](https://blog.csdn.net/luoye4321/article/details/82746417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [以太坊 链私有链环境搭建(windows) 2018.4.11](https://blog.csdn.net/u014409380/article/details/53522581)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值