在win10电脑上搭建私有区块链


注:方法比较简单,内容比较详细,适合刚开始入手的小白选手,如果你已经有一些,以太坊的底子有些内容需要调跳过;

win10电脑搭建私有区块链的条件

安装go-ethereum.
在这里插入图片描述

开始搭建私有区块链

搭建区块链前准备工作

注:在搭建私有区块链之前最好自己先建一个文件夹,搭建本地的区块链虽然不是很大,但是防止与其他文件搞混。
比如:我的目录选择在D:\blockchain\chain10
搭建区块链之前我们要在D:\blockchain\chain10中创建文件genesis.json,并且打开该目录下的命令行窗口。
genesis.json文件内容如下:
下面展示一些 内联代码片

{
  "config": {
    "chainId": 88,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "ethash": {}
  },
  "difficulty": "1",
  "gasLimit": "8000000",
  "alloc": {
    "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
    "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
  }
}
  1. genesis.json是用来创建创世区块的配置文件,加入同一私链的节点必须使用同一配置文件
  2. chainid是私链网络的标识,可以是任意数字。即使chainid相同,如果genesis.json配置不一样,也将是两个不兼容的网络
  3. balance是创世区块为每个账户分配的初始以太币。这里看似分配了很多,其实单位是wei。1eth=10^18wei。

注:普通的命令行打开并不是在这个目录下;可以选择在电脑左下角直接输入cmd,但是可能不在需要的文件目录下,但是也是可以通过命令行跳转到目标目录下。也可以通过下面方式。

这是打开命令行的方法;
在这里插入图片描述

开始搭建区块链

然后输入第一行指令:

geth --datadir node init genesis.json

先让以太坊节点自动初始化以太坊网络
在这里插入图片描述
接下来:

geth --datadir node --networkid 88 --rpc --rpcport "8545"  --rpcapi eth,web3,personal,net --port 30303   console  --nodiscover --allow-insecure-unlock

该命令是启动以太坊节点并且进入客户端;
–networkid 88:该命令是指在该区块链下的网络id,也就是即使在同一网络也需要不同的网络id进行区分;
–rpc:启动rpc服务,后续的换,如果我们想要通过,第三方对该区块链进行操作,并且将来部署智能呢合约都会用的到;
–rpcport “8545”:这个命令便是指启动电脑需要通过启动8545端口启动区块链,但是在这里并没有说明地址,其实是默认本地地址:–rpcaddr 172.0.0.1
–rpcapi eth,web3,personal,net:这个便是rpc服务可以用到的功能;
–port 30303:这个是该节点的端口,节点的地址当然也就是本地地址;但是在同意网络下,不同的节点,必须端口和节点,都需要不一样;
console:该命令行是启动客户端,我们便可以操纵该区块链了;
–allow-insecure-unlock:在最新的以太坊区块链中的客户端是不允许进行基本的转账行为,通过该命令便可以得到解决;
在这里插入图片描述
(注:我将一些重要的标志用线标记出来,大家可以区块链有基本的了解)

现在我们已经创建了区块链以及一个节点,接下来我们便开始创建账户;

personal.newAccount("111")

该命令创建了一个账户,并且该账户的密码为:111
如果我们需要查看我们的账户可以通过命令行

eth.accounts

在这里插入图片描述
通过上面的的命令行,我们从创建了两个账户,并且默认地址账户为矿工;但是有一点默认该节点只能有一个矿工,但是我们可以通过命令行进行设置;

miner.setEtherbase(eth.accounts[1])  //设置矿工

那其实通过该命令行,就可以设置矿工;其中eth.accounts[1],我们也可以发现这个是一个地址,所以也可以在这直接输入你想要命名的账号的地址;在这里我便不做演示,我们知道即可;

接下来我们便要开始挖矿环节;

miner.start()  //开始挖矿
miner.stop()  //停止挖矿

在这里插入图片描述
在这个环节中,输如命令行,可能会开始刷屏环节,不要慌,看见这种情况,挖一会(几秒就行了),输入自己停止挖矿命令,会停止;
但是记住看见Successfully sealed new block,才表示挖矿成功,有可能会出现其他的提示,如果是那种情况,就等一等,没关系,因该一会就好了。我之前出现过这种情况,一般不到一分钟;如果好几分钟,就不要等了,查看一下是不是哪里有问题。

那接下来我们需要查看一下,区块链的区块数目,即每个账户的以太币;

eth.blockNumber  //查看区块链的区块数目;
web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')  //设置以太币单位
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')  //设置以太币单位

在这里插入图片描述
接下来是转账环节:
注:在转账环节中,因为转账是需要提前解锁账户的,所以需要两步骤;

personal.unlockAccount(eth.accounts[0])   //解锁账户,相当于转钱之前,登录
eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1],value: web3.toWei(5,'ether')})  // 转5个以太币

在这里插入图片描述

到这一步转账的交易已经产生,但是如果真的想转账成功,需要讲进行挖矿,将这笔交易全部记录在区块链中,便会使交易生效。
在这里插入图片描述
所以需要再挖一次矿,现在也已经完成了;
我们再次产看一下,账户的以太币;
在这里插入图片描述
在这里我们便已经看到,在账户1中,确实收到5个以太币;至于为什么账户0的以太币则增加了,那是因为毕竟有新的区块产生,系统产生的区块里面,便有新的以太币;

部署智能合约

部署智能合约的条件

  1. 需要Google浏览器(这个如何下载,就不出教程了,网上太多了);
  2. 在谷歌浏览器上面下载Matemask插件;
    通过谷歌浏览器打开,点击下载,安装啥的;
    安装完成之后,注册账号,(需要什么助记词,密码,跟着教程来)最后的状态我给一个截图;
    在这里插入图片描述
  3. 最后一个就是你需要编辑智能合约的网站;
    在这里插入图片描述

部署智能合约

配置网络导入账号

首先应该将本地区块链与刚才的matemask,和编辑浏览器连接;

打开matemask插件,配置网络;
在这里插入图片描述
在这里插入图片描述
完事点击保存;
接下来添加我们刚才的账户;
在这里插入图片描述

在这里插入图片描述

这里面先择文件中是json文件的导入
json文件具体在D:\blockchain\chain10\node\keystore
注:我们当初链是在D:\blockchain\chain10,节点信息都在node文件夹里面;
node文件夹里面的keystore便是存储着我们两个账户的信息;
在这里插入图片描述
在这里我们需要把两个账户都导入(一个也行);导入过程我电脑很慢,我一度以为浏览器出问题了,其实就是慢一些,耐心等待一会。
在这里插入图片描述
确实需要很长的时间,好多分钟;导好那就这个样子,点击这两个那就切换到这两个账号上。在这个插件上其实还可以转账,但是记得转完钱,只是生成交易,要让交易生效,还必须返回,命令行窗口继续挖矿。这里不能进行挖矿命令好像。

部署智能合约

接下来就要部署只能合约:
注:智能合约很简单,给个过程,如果需要我们可以后面讲专门讲智能合约;他的名字其实不是很重要最好跟合约名字一样,像这个就起:chan.sol

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract chan{

uint256 public number=5;

     function change() public {
        number = 10;
    }

}

在这里插入图片描述
在这里插入图片描述
点击部署,然后点击确认,那就部署完了,但是别忘了,后台需要挖矿,才能让合约生效;
在这里插入图片描述

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值