1.区块链-创世区块(windows私链以太坊网络搭建)

  最近迷上了区块链,然后就迷上了搭建区块链,然后就迷上了创世纪,造数字货币,然后自己挖来装逼。。。。。。。

     这些天不知道反反复复失败了多少次,造成的那一瞬间,心里简直无法言喻,激动地站了起来,然后发现在办公室,然后若无其事地装着去厕所洗了把脸。

    1.作为如今最大的区块链开源平台,必须要安装 以太坊

 Geth  windows官方安装指南:

  https://github.com/ethereum/go-ethereum/wiki/Installation-instructions-for-Windows(全英文的,建议用gogle浏览器,直接右键翻译)


ps:安装的时候在c盘中找到cmd.exe 右键利用管理员权限安装,因为需要安装许多安装包,不然会报错



   2.看白皮书,看白皮书,看白皮书,重要事情说三遍

区块链白皮书地址:

https://github.com/ethereum/wiki/wiki/White-Paper


3.因为geth需要同步所有区块,所以时间超级超级的长,我用了一天的时间才同步完


4.以上按照官方文档操作即可,都准备好后,建立创世纪区文件,为json格式,然后在json文件里面填入新区块配置:

{

    "config": {

        "chainId": 15,

        "homesteadBlock": 0,

        "eip155Block": 0,

        "eip158Block": 0

    },

    "coinbase" : "0x0000000000000000000000000000000000000000",

    "difficulty" : "0x40000",

    "extraData" : "",

    "gasLimit" : "0xffffffff",

    "nonce" : "0x0000000000000042",

    "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

    "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

    "timestamp" : "0x00",

    "alloc": { }

}


解释一下各个参数的作用:

 

mixhash

与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。.

nonce

nonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。

difficulty

设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度

alloc

用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。

coinbase

矿工的账号,随便填

timestamp

设置创世块的时间戳

parentHash

上一个区块的hash值,因为是创世块,所以这个值是0

extraData

附加信息,随便填,可以填你的个性信息

gasLimit

该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。



5.启动区块链节点:

进入windows的以太坊目录下,创建文件夹chain,存放区块资料,然后把之前创建好的json文件放在里面,我下载安装的默认路径如图:



piccgenesis.json即为创世区块配置


6.

a.进入geth安装目录:C:\Users\admin\AppData\Roaming\Ethereum


b.执行:geth  --datadir "%cd%\chain" init piccgenesis.json

c.穿件数据存放地址并初始化创世模块:

启动Geth即可以启动以太坊的区块链,为了构建私有链 ,需要在Geth启动时加入一些参数,指令如下:

geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir "%cd%\chain" --port "30303"  --rpcapi "db,eth,net,web3" --networkid 93318 console

 执行成功后,会进入javascript 控制台:


 以太坊私有网络搭建成功


PS:  Geth参数含义如下:

identity

区块链的标示,随便填写,用于标示目前网络的名字

init

指定创世块文件的位置,并创建初始块

datadir

设置当前区块链网络数据存放的位置

port

网络监听端口

rpc

启动rpc通信,可以进行智能合约的部署和调试

rpcapi

设置允许连接的rpc的客户端,一般为db,eth,net,web3

networkid

设置当前区块链的网络ID,用于区分不同的网络,是一个数字

console

启动命令行模式,可以在Geth中执行命令



7.进入的JS控制台后使用节点创建账号:

  a.输入指令查看账号信息:

    指令:eth.accounts

正常情况下是没有的 下面的输出为[],因为之前我创建过,所以我才有账号,

  

b.创建账户:

 指令:personal.newAccount("wangyaxing"),


d.再次输入查询账号指令:eth.accounts

可见我有两个账号以数组形式存放


!!!!!!

8.账户已经有了,而且这个区块链使我们自己创建的,里面的货币数量是也我们定义的,那么,嘿嘿嘿,当然是开始赚钱,赚很多很多的钱

 赚钱方法英文叫Mining  俗称挖矿


a. 在命令行 执行开始挖矿:

指令:miner.start()



因为是私有节点,并且没有竞争者,所以我们一分钟 就会有获得很多的奖励,


输入指令:miner.stop(),停止挖矿

然后再来看看我们账户钱包有多少矿了:

查询钱包余额指令:eth.getBalance(eth.accounts[0])

看看我们的账户,有多少以太币,是不是 惊呆了?  哈哈哈哈哈哈哈哈哈哈哈哈哈!!!



PS:查询的是第一个账户的余额,当我们挖矿时,奖励金存储默认的是第一个账户,如果第二个账户需要,我们可以执行转账指令;

 eth.sendTransaction({from:"第一个账户的账号",to:"第二个账户的账号",value:web3.toWei(1000000,"ether")})

当直接执行此方法时会抛出异常:

account is locked

    at web3.js:3119:20

    at web3.js:6023:15

    at web3.js:4995:36

    at <anonymous>:1:1

     是没解锁的原因

解锁指令:

personal.unlockAccount("第一个账户的账号","设定的密码")


然后需要执行挖矿命令,才会把转账真正完成,会看到转的账户数字增加。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
搭建本地以太坊私链并连接钱包实现转账,需要以下步骤: 1. 安装Geth客户端 Geth是以太坊客户端软件,可以用于连接以太坊网络。可以从https://geth.ethereum.org/downloads/下载Geth安装包并安装。 2. 创建创世块 在创建私链之前,需要先创建创世块。可以使用Puppeth工具来创建创世块,该工具可以从https://github.com/ethereum/go-ethereum/releases下载。使用Puppeth可以选择网络ID、区块时间、初始难度等选项,并生成创世块配置文件。 3. 初始化私链 使用以下命令来初始化私链: ``` geth --datadir /path/to/chaindata init /path/to/genesis.json ``` 其中,/path/to/chaindata为私链数据存储路径,/path/to/genesis.json为创世块配置文件路径。执行该命令后,私链数据存储路径下会生成相应的数据文件。 4. 启动私链 使用以下命令来启动私链: ``` geth --datadir /path/to/chaindata --networkid 1234 --rpc --rpcport "8545" --rpcaddr "127.0.0.1" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --nodiscover console ``` 其中,/path/to/chaindata为私链数据存储路径,--networkid为私链网络ID,--rpc为启用RPC服务,--rpcport为RPC服务端口,--rpcaddr为RPC服务IP地址,--rpccorsdomain为跨域访问配置,--rpcapi为RPC接口配置,--nodiscover为禁用节点发现。执行该命令后,会启动私链节点并进入控制台。 5. 创建钱包 在私链节点控制台中,使用以下命令来创建钱包: ``` personal.newAccount() ``` 执行该命令后,会提示输入密码,并返回钱包地址。 6. 解锁钱包 使用以下命令来解锁钱包: ``` personal.unlockAccount("钱包地址", "密码", 0) ``` 其中,"钱包地址"为钱包地址,"密码"为钱包密码,0为解锁时长,表示永久解锁。执行该命令后,会返回true表示解锁成功。 7. 转账 在私链节点控制台中,使用以下命令来转账: ``` eth.sendTransaction({from: "发送方钱包地址", to: "接收方钱包地址", value: web3.toWei(1, "ether")}) ``` 其中,"发送方钱包地址"为发送方钱包地址,"接收方钱包地址"为接收方钱包地址,web3.toWei(1, "ether")为转账金额,表示1个以太币。执行该命令后,会返回交易哈希值。 8. 查询余额 使用以下命令来查询钱包余额: ``` eth.getBalance("钱包地址") ``` 其中,"钱包地址"为钱包地址。执行该命令后,会返回钱包余额。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值