AntShares 区块链搭建私有链与部署智能合约

本文详细介绍使用AntShares区块链搭建私有链的过程,包括配置环境、创建钱包、部署智能合约等关键步骤。

最近还在继续研究AntShares 区块链,可能是因为用C#实现,所以看起来特别怀旧,毕竟好久也没有写C#了。本文还会讲到搭建私有链,玩了一段时间,发现短期内是不能完全甩开Windows,所以干脆就3个Linux虚拟机(网络连接方式:桥接网卡)+一个Windows机器来搭私有链好了。本文的环境:ubuntu 16.04 ,AntSharesCore-CLI-v1.6.1 ,AntSharesCore-GUI-v1.6.6354.35073 ,net core 1.0.4。

首先,在ubuntu安装.net core,详见上篇《AntShares区块链的节点部署与搭建私有链

其次,创建4个钱包文件,用AntSharesCore-GUI来创建:

钱包1,文件名 1111.db3: 
公钥:02494f3ff953e45ca4254375187004f17293f90a1aa4b1a89bc07065bc1da521f6
私钥WIF : Kzo8BkCuamp9LX6KEHQ7c49QNunYX1KqrL8NZxNqy9H77B76tNiF

系统IP:192.168.0.105,IP自己查系统


钱包2,文件名 2222.db3
0258104bb969fa7c5d82da43cd2c79ab65eea8d5cf659ebedaee4740bb5112b819
L2yQ6JdFw9zQfWVER95Sgu9qfG6r5T5JkwkJCnHovmAUbxnTJaHa

系统IP:192.168.0.108,IP自己查系统


钱包3,文件名 3333.db3
03386062735a119574aedecafe3f4643ab0d0f448f24792468457413cb25fe2319
L3m41zNEHb96cGjYRJb663yDVbEGQ5cV9Ueu13SrKDujsqJyK9oH

系统IP:192.168.0.109,IP自己查系统


钱包4,文件名 4444.db3
020a2cf0910ca684b1fcb2e4f55b8b2b8024aba5f28b17b8f0bfd8966ab4d1d30a
L2s6eckoH6j9LTkAzqg7V4mJ6xxJaSPabysqVJPKkxPQyacXvk9F
系统IP:192.168.0.107,IP自己查系统

然后,4个节点上的AntSharesCore的procotol.json都修改成以下内容:
{
  "ProtocolConfiguration": {
    "Magic": 20170603,
    "AddressVersion": 23,
    "StandbyValidators": [
      "02494f3ff953e45ca4254375187004f17293f90a1aa4b1a89bc07065bc1da521f6",
      "0258104bb969fa7c5d82da43cd2c79ab65eea8d5cf659ebedaee4740bb5112b819",
      "03386062735a119574aedecafe3f4643ab0d0f448f24792468457413cb25fe2319",
      "020a2cf0910ca684b1fcb2e4f55b8b2b8024aba5f28b17b8f0bfd8966ab4d1d30a"
    ],
    "SeedList": [
      "192.168.0.105:10333",
      "192.168.0.108:10333",
      "192.168.0.109:10333",
      "192.168.0.107:10333"
    ],
    "SystemFee": {
      "EnrollmentTransaction": 0,
      "IssueTransaction": 0,
      "PublishTransaction": 0,
      "RegisterTransaction": 0
    }
  }
}


准备工作结束后,可以开始跑起私有链,ubuntu的3个虚拟机分别执行以下命令,记得开RPC,注意分别修改 1111.db3、2222.db3、3333.db3
cd AntSharesCore
dotnet AntSharesDaemon.dll /rpc
open wallet 1111.db3
start consensus


打开GUI版 AntSharesCore-GUI-v1.6.6354.35073,在PC版客户端中打开钱包 4444.db3,右键-》创建合约地址-》多放签名,输入 protocol.json 中的4个公钥,设置最小签名数量为3(共识节点数量/2 + 1), 如图所示


然后,在菜单栏中点击“钱包”重建钱包索引, 4个节点运行结果如下图:


接下来,讲解如何部署智能合约。
第一步,菜单栏--高级--Deploy Contract

第二步,把智能合约load进去,Information那部分随便填,区块链的“交易”可以是发布智能合约,私有链这里零花费直接交易。


第三步,获取交易编号,TXID = b25f28d590d58b8e287d343afadc69b2029f55359f15d5b4b630971b42c3d0f3 


拿着这个TXID可以通过第三方的post工具来使用AntShares的RPC服务,这里使用getrawtransaction 方法
(根据指定的散列值,返回对应的交易信息),使用方法详见(http://docs.antshares.org/document/node/api/getrawtransaction.html),查看交易的详情,192.168.0.108是Linux虚拟机IP,10332是Http的RPC端口:


部署智能合约没问题,接下来要研究一下如何查询某个智能合约执行的结果。

### 如何在本地环境部署私有区块链 #### 使用Geth部署以太坊私有链 为了建立一个用于开发和测试的私有以太坊区块链,可以利用Geth工具来启动自定义网络。这允许开发者创建智能合约,在不消耗真实货币的情况下模拟交易过程。 安装完成后,通过指定创世文件参数`--datadir`以及提供JSON格式的创世纪块配置,可初始化一个新的数据目录[^1]: ```shell geth --datadir ./privateChain init genesis.json ``` 接着,使用相同的`--datadir`选项启动节点服务,并附加控制台以便后续操作: ```shell geth --datadir ./privateChain console ``` 此时可以在JavaScript控制台上执行命令查询当前状态或管理账户余额等动作[^2]: ```javascript // 查询区块高度 eth.blockNumber // 获取第一个账号余额(转换成ether显示) web3.fromWei(eth.getBalance(eth.accounts[0]), 'ether') ``` #### 利用Truffle框架简化DApp开发流程 对于希望专注于应用逻辑而非底层实现细节的应用程序开发者来说,采用像Truffle这样的高级开发平台可能是更好的选择。这类工具提供了项目模板、编译器集成等功能支持快速迭代原型设计。 首先按照官方文档指导完成必要的软件包安装之后,就可以着手准备新的工作空间了[^3]: ```shell mkdir my-blockchain-project && cd $_ truffle init ``` 此后的步骤涉及编辑配置文件(`truffle-config.js`)指明目标网络连接详情,编写Solidity源码描述业务规则,最后借助内置的任务自动化机制一键发布至所选平台上。 #### Go语言环境下的Go-Ethereum客户端构建 如果倾向于更深入理解整个系统的运作原理,则可以从零开始动手实践基于Go语言版本的Ethereum协议栈——go-ethereum (简称geth) 的搭建方法[^4]。 先确保已妥善设置了相关依赖项及其路径映射关系: ```shell export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin source ~/.bashrc ``` 随后依照官方指南获取最新稳定版发行包并解压到合适位置,依据个人需求调整各项参数后即可投入实际运行当中去了。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值