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

avatar
avatar
admin
1676
文章
5
评论
2020年5月8日16:47:19 评论 410 1800字阅读6分0秒

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#版的钱包或者挖矿小程序

仅仅只是演示如何创建私链 为了演示成功搭了二三十遍才出来的 后期在慢慢分享 。

匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: