区块链了解

下面用记账的例子来介绍区块链。

方案一: 
老王负责记账,负责村里的每一笔账目,很稳,没人怀疑。 
惨了,老王被老绿发现修改了里面的账目,老绿告诉了全村人,因此要修改方案。使用下面方案二。

方案二: 
村里的人决定选出一帮可信任的人,轮流来记账,这帮人有老A,老B,老C,老等等(反正字母就是了)。 
各位老字母好像找到了套路,老A先修改里面的账目,然后故意把修改的那一页损坏,其它人照样学样。村里人肯定不同意,因此出现了下面的方案三。

方案三: 
使用了一个方法,如果账目有改动,每一本账本都要修改。 
似乎一切都很稳,但是每个账房的先生都很累,不想干了。 
考虑到这样,村里人有提出了其它方案,出现了方案四。

方案四: 
每次账目有变动,都会掷骰子,选出一个账房先生去记账,并给予该账房先生奖励,这样大家就争相去抢着记录了。

嗯这种方式很好,没错,这就是区块链的雏形了。

 

1、 每个账房先生对应的是每个网络节点,如果一个节点有改变,会广播通知其他的节点(这种互相通信的功能叫做“网络路由”)

2、 前一章的“掷骰子”成为“共识算法”(一种大家都认同的遵守的筛选方案),选出一个节点之后,数据在一段时间内以这个节点为准。此节点如果发生改变,会广播通知其它节点,其它的节点验证没问题后,就存储到各自的账本中。

3、 被选中的节点肯定是要处理很多事情的,于是设计了一个激励机制,像论坛积分一样增加,这样很多的节点都会去抢着干,这种竞争的过程,称之为“挖矿”

技术细节:

那么每个节点怎么去证明自己的身份呢?

这里用到了公开密钥算法的机制去处理。每个节点都要两种密钥,公钥(提供给其它节点),私钥(作为自己的节点唯一标志)。举个例子,如老A寄信给老B,那么老A给使用老B的公钥和自己的私钥加密,发送给老B。这样老B可以解开自己的钥,也能知道是谁发过数据过来了。

 

geth创建私链流程

geth --dev console 2>>geth1         //这种情况下(开发者模式),创建后会有一个已知账户存在,且账户中有以太币

geth --datadir "./"  --networkid 1108 console 2>>geth.log   //非开发者模式,带路径

命令的主体是geth console,表示启动节点并进入交互式控制台,--datadir选项指定使用data0作为数据目录,--networkid选项后面跟一个数字,这里是1108,表示指定这个私有链的网络id为1108。网络id在连接到其他节点的时候会用到,以太坊公网的网络id是1,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络id

–dev 启用开发者网络(模式),开发者网络会使用POA共识,默认预分配一个开发者账户并且会自动开启挖矿。ie:测试网络
–datadir 后面的参数是区块数据及秘钥存放目录。
第一次输入命令后,它会放在当前目录下新建一个testNet目录来存放数据。
console 进入控制台

创建账户     

bei = personal.newAccount('password')

获取账户余额

eth.getBalance(bei)

获取当前账户地址

eth.accounts

获取某个账户

eth.accounts[0]

发送交易

eth.sendTransaction({from: usr,to: bei,value: 10})

当前区块数

eth.blockNumber

开始挖矿

miner.start()

结束挖矿

miner.stop()

解锁账户

personal.unlockAccount(eth.accounts[0],"password")      //password为创建账户时输入的密码

在部署合约前需要先解锁账户(就像银行转账要输入密码一样)

列出当前账户

personal.listAccounts

查看区块具体信息

eth.getBlock(7)

查看交易

eth.getTransaction("0x7ce0faae69bc502936dbd0b27de5e1eae4b9cb40f9812f0571b6e970bce933a6")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木晗晗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值