欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c#实战开发:以太坊私链搭建(一)

程序员文章站 2022-10-26 19:41:57
1.第一步环境搭建 运行环境:window 客户端版本:Go语言geth 下载地址https://ethereum.github.io/go-ethereum/downloads/ 以太坊API中文文档:http://web3.tryblockchain.org/Web3.js-api-refren ......

1.第一步环境搭建

运行环境:window  客户端版本:Go语言geth

下载地址https://ethereum.github.io/go-ethereum/downloads/

以太坊API中文文档:http://web3.tryblockchain.org/Web3.js-api-refrence.html

下载后在桌面创建一个json文件 一下是文件内容

{
  "config": {
        "chainId": 1666,// 私链区块链的ID  1是公链的ID
        "homesteadBlock": 0,//硬分叉高度
        "eip155Block": 0,//eip
        "eip158Block": 0 //eip
    },
  "coinbase"   : "0x0000000000000000000000000000000000000000",//默认账户,发送奖励账号一般默认第一个
  "difficulty" : "0x400",//产生区块的难度 也叫挖矿难度
  "extraData"  : "",//附加信息 好像没什么用
  "gasLimit"   : "0xffffff",//限制区块交易量信息,私链没有限制
  "nonce"      : "0x0000000000000042",//交易可存储数量 在没有进行挖矿时未承认交易数量
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",//hash生成规则 私链随意
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",//上一个hash 因为创世区块随意
  "timestamp"  : "0x00",//时间撮配置 在进行转账交易时有用 比如智能合约转账验证时可以用 私链随意
  "alloc": {}//预设账号以及账号的以太币数量,私有链挖矿比较容易可以不配置
}

以上就是创世区块配置 我们进行下一步

创建两个文件夹

c#实战开发:以太坊私链搭建(一)

先把下载的客户端放入Geth  在创建一个txt 后面我在把后缀改成bat

文件内容

choice /D y /t 3 > nul

set today=%date:~0,4%%date:~5,2%%date:~8,2%
geth --datadir F:\privateEthereum --networkid 1666 --ipcdisable --rpc --rpcaddr "127.0.0.1" --rpcport "8546" --port "30304" --rpcapi "eth,web3,personal,net" --nodiscover console 2>> F:\privateEthereum\log\geth%today%.log

c#实战开发:以太坊私链搭建(一)

客户端的默认入口端口8545 出是30303 我这怕和钱包端口冲突给修改了 完成后放入Geth 文件夹内

c#实战开发:以太坊私链搭建(一)

后面再初始化区块数据 放入创世区块json文件 接着在建一个bat命令去运行json文件

c#实战开发:以太坊私链搭建(一)

xxxx\geth --datadir F:\privateEthereum init genesis.json

c#实战开发:以太坊私链搭建(一)

接着在区块文件夹内创建一个LOG日志文件 用储存geth客户端产生的日志 此时文件夹应该有三个文件

c#实战开发:以太坊私链搭建(一)

双击bat 初始化创世区块  如果没成功  看看地址是不是写错了 为了这个问题我找了好久

c#实战开发:以太坊私链搭建(一)

c#实战开发:以太坊私链搭建(一)

这里就是 用户的数据 里面都有以太币 不过是私链的  再点几geth文件夹下的 客户端 通过bat命令去启动geth.exe

c#实战开发:以太坊私链搭建(一)

c#实战开发:以太坊私链搭建(一)

接着我们创建一个用户

personal.newAccount("123456")   里面密码  也叫用户私钥 回车生成账户地址 也叫账户公钥

c#实战开发:以太坊私链搭建(一)

可以通过 输入 web3  查看所有命令和属性 文章开头也给了 基本命令地址

可以也通过c# 对接以太坊 实行用户地址创建

c#实战开发:以太坊私链搭建(一)这是通过c# 创建的用户

接着我们在去看看客户端是否创建成功了 输入一下命令 查看用户和余额

 var i =0;
 eth.accounts.forEach(
 function(e){
 console.log("  eth.accounts["+i+"]: " +  e + " \tbalance: " + web3.fromWei(eth.getBalance(e), "ether") + " ether");
 i++;
 }) 回车

c#实战开发:以太坊私链搭建(一)

 

 创建成功  也可对接钱包出生成用户 后期可以做一个c#版的钱包或者挖矿小程序

仅仅只是演示如何创建私链 为了演示成功搭了二三十遍才出来的可能刚出学校工作太笨了 后期在慢慢分享 不说了主管来了,该干活了。