区块链基础知识

Posted 测试周小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链基础知识相关的知识,希望对你有一定的参考价值。

nonce规则

为了防止交易重播,ETH(ETC)节点要求每笔交易必须有一个nonce数值。每一个账户从同一个节点发起交易时,这个nonce值从0开始计数,发送一笔nonce对应加1。当前面的nonce处理完成之后才会处理后面的nonce。注意这里的前提条件是相同的地址在相同的节点发送交易。

以下是nonce使用的几条规则:

  • nonce太小(小于之前已经有交易使用的nonce值),交易会被直接拒绝。
  • nonce太大,交易会一直处于队列之中。
  • 当发送一个比较大的nonce值,然后补齐开始nonce到那个值之间的nonce,那么交易依旧可以被执行。
  • 当交易处于queue中时停止geth客户端,那么交易queue中的交易会被清除掉。

获取nonce值

在实际应该用中我们如何保障 nonce 值的可靠性呢?这里有两个思路。

第一个思路就是由业务系统维护nonce值的递增。如果交易发送就出现问题,那么该地址下一笔交易继续使用这个nonce进行发送交易。

第二个思路就是使用现有的api查询当前地址已经发送交易的nonce值,然后对其加1,再发送交易。对应的API接口为:eth_getTransactionCount,此方法由两个参数,第一个参数为需要查询nonce的地址,第二个参数为block的状态:latestearliestpending。一般情况使用pending就可以查询获得最新已使用的nonce

 

什么是 GAS?

Gas 是指在以太坊网络上执行特定操作所需的计算工作量。

由于每笔以太坊交易都需要计算资源才能执行,每笔交易都需要付费。 在这个方面上,Gas 是指在以太坊成功进行交易所需的费用。

优先费(小费)

在伦敦升级之前,矿工获得区块中所含全部交易的总燃料费。

由于新的基础费被销毁,伦敦升级引入了优先费(小费),激励矿工将交易添加到区块中。 如果没有小费,矿工会发现开采空区块在经济上可行,因为他们会获得相同的区块奖励。 在正常情况下,一笔金额不大的小费为矿工添加交易提供了极小的激励。 对于需要在同一区块中优先执行的交易,需要提供更高的小费,力争使出价高于竞争交易。

学习的地址:https://ethereum.org/zh/developers/docs/accounts/

区块链基础入门

区块链知识基础

1.区块链的定义:

  区块链是一个集合了密码学、分布式储存、智能合约、共识算法等多种新型技术的数据传输方式。并对现有互联网进行升级和创新。

2.区块:

  在数据上传过程中,数据会被打包到一起形成一个个数据块。而被打包好的数据块,也被称作“区块”。

3.链:

  将“区块”打包好后,依照时间的顺序连在一起,就形成了链式的网络,因为整个网络。

4.区块链实质:

  本质上其实是一个不可篡改的数据库,数据上传过程中,数据会被打包形成一个个数据块,然后将数据块依照时间顺序连在一起,所形成的链式网络就被称为“区块链”。因为整个网络结构是由“区块”和“链”构成的,所以创始人将它称为“blockchain”译为“区块链”。

5.中心化:

  在平时生活中我们在购物或者交易时,会有银行或阿里巴巴这些绕不开的平台或者公司,这就被称为“中心化”。他们作为中心平台,维护着整个网络购物生态。

6.去中心化:

  所谓的“去中心化”,就是将所谓的“中心”去掉,重新建立一套大家可以共同管理数据,且能自由交易的新规则。

7.中心化的缺点:

  在中心化的模式里数据都存储在中心服务器里,一旦这个服务器瘫痪,整个网络都会出现问题。除此以外,整个行业数据都集中在少数几家巨头公司,由于数据管理不透明,一旦数据泄露,后果就是灾难性的。

8.去中心化的优点:

  通过人人参数数据维护,数据不再集中,从而解决了这些问题。

9.区块链运行原理:

  本质上就是人们在互联网中达成共识,彼此信任的过程。实质就是一个人人都可以参与记账的大账本,每个人都还有一个小的账本,可以将大账本里的全部数据备份下来。当一笔交易数据产生后,会有人将这笔数据进行处理,然后同步到每个人的小账本里,交给大家进行确认。其中大部分的人认为这个数据是真实、可信的时候,这笔数据才会被记录到整个区块链网络的账本中,所有人再去同步更新新的数据。这就解决了信任问题,只要在区块链中有人想要更改数据,就会和其他小账本所记录的数据产生冲突,很快会被人发现。

10.挖矿:

  不同于日常生活中所讲的“挖矿”,区块链中的“挖矿”是指区块链网络中的一种奖励行为。区块链实际上是一个人人都可以参与数据处理的数据库,但在没有一个团队维护的情况下,当然无法平白无故作数据维护,于是为了激励大家积极参与数据维护,区块链就有了一个奖励规则。谁能把数据处理得最快、最好,并得到系统的认可,谁就能获得相应数量的比特币作为奖励,因为比特币的数量是有限的,这种行为又与淘金矿的举动相类似,所以我们就将这种规则获得比特币的方式称之为“挖矿”。而参与数据处理的这些人,我们称之为“矿工”,“矿工”就像是区块链的保护神,需要维护网络的运行,还能守护网络的安全,而且人人都可以参与。

11.比特币的挖矿原理:

  实际上就是一个数据记录的过程每隔一段时间,就需要矿工将之前没有经过大家确认的交易数据,收集起来进行处理。但问题就在于,矿工很多无法确认该用谁的数据,所以就有了一个特殊的机制。所有参与的矿工,把数据打包的时候,必须加入一个叫做“哈希值”的东西,而且这个哈希值必须是满足一定条件,系统才会认可你处理的数据,能最先完成这件事,并把自己的工作成功广播给其他的矿工进行确认,且大部分认为没有问题,谁就能获得记录数据的权利,以及很多比特币作为奖励。当然矿工挖矿并不只是为了比特币,这还是维护整个区块链网络的重要环节。挖矿的人越多,参与数据确认的人也就越多,我们的数据也就越安全。

12.区块链的分叉:

  区块链的分叉可以说是区块链网络中独有的一种版本升级方式,如同我们生活中使用的互联网软件一样,是需要进行优化、升级的,来解决用户使用问题。只不过区块链升级的时候会由矿工共同来决定,甚至还能产生多种版本,不同于互联网的一家独裁。

13.区块链分叉原理:

  由于区块链是一个由数据块组成的链式结构,所以当他升级的时候,实际上会从某一个数据块开始,连接到两个不同的数据块上,从而分成了两条链,就如同树枝一样,大家共用同一个树干,共享未分开前的数据,但是又有很多条树枝,属于多条链,而这个过程也叫作分叉。

14.软分叉:

  区块链升级是由矿工们一起来决定的,既然参与的人多,就会有不同的意见,当大家能达成共识的时候,分叉出来的两条链就相当于一个是老版本,一个是新版本,两者兼容。老链上的矿工升级后逐渐向新链过程,最终升级完成,只剩新链。

15.硬分叉:

  当矿工们不能达成共识的时候,产生了分歧。大家虽热共用之前的数据,但是形成了两条新的链,互不兼容。

16.区块链分类:

  根据开放程度分为三种类型,公有链、私有链、联盟链。

17.公有链:

  如同一个大家共同记账的公共账本,对任何人都是开放的,每个人都可以参与进来,数据由大家共同记录,公平公正公开,数据不可篡改,去中心化的性质最强。多用于公共建设。

18.私有链:

  同公有链的性质相反,它如同一个属于个人或公司的私有账本,只对个人企业内部开放,它的数据虽然也不可篡改,但毕竟开放程度有限,去中心化程度很弱,不过参与数据处理的人数很少,所以效率会比公有链要高很多。多用于企业或组织。

19.联盟链:

  介于公有链和私有链之间,类似于一个由多个公司组成的联盟,内部所用的公用账本,数据由联盟内部成员共同维护,只对组织内部成员开放。它的去中心化程度适中,甚至是多中心化的,其效率方面比公有链强,比私有链弱,多用于企业或组织。

20.区块链的核心技术:

  主要有四个部分,分别是分布式存储、共识机制、智能合约、密码学。每个技术都有它们各自的作用。

21.分布式储存:

  是一种数据的存储技术,人人都可以参与一起记录数据,主要是起到了数据储存的功能。

22.共识机制:

  就是之前概念中所说的挖矿原理,是一种协调大家处理数据的机制,因为每个人都可以参与的话,记录下来的数据就这么多,无法确定用谁的。于是共识机制就决定了这些数据中,获取数据记账权。共识机制主要起到了数据的维护作用。

23.智能合约:

  类似于我们生活中的合同,它是一种大家把规则都制定好,由机器自动去执行的技术,之前存储和维护好的数据总需要有人去执行的,所以智能合约在系统中主要起到了数据的执行作用。

24.密码学:

  是一种特殊的加密和解密技术,主要起到了维护数据安全和数据证明的作用。有了它我们才能在网络中证明“我是我”,才能证明“我的币是我的币”。

25.区块链运行的过程:

  区块链是一个数据传输的模型,它运行的过程是,当数据产生后,有共识机制进行数据维护,通过分布式储存记录在链上,然后交由智能合约去执行,最后由密码学保障整个体系安全。各司其职,从而构建出了整个系统。

以上是关于区块链基础知识的主要内容,如果未能解决你的问题,请参考以下文章

区块链基础知识

区块链基础入门

区块链技术与应用

区块链基础知识大系列

通俗版《区块链白皮书》:你要掌握的区块链基本知识

1.2 区块链基础知识