精华内容
下载资源
问答
  • 以太坊区块时间
    千次阅读
    2022-01-27 22:06:37


    正如我们所见,您可以有两种方式查询区块信息。

    一、查询区块信息

    1.1 根据区块高度获取区块信息

    调用客户端的BlockByNumber方法来获得完整区块。您可以读取该区块的所有内容和元数据,例如,区块号,区块时间戳,区块摘要,区块难度以及交易列表等等。

    // GetBlockByNumber 根据区块高度获取区块信息,isFullTx 全交易
    func (eth *Http) GetBlockByNumber(height string, isFullTx bool) (interface{}, error) {
    	args = []interface{}{height, isFullTx}
    	params := NewHttpParams("eth_getBlockByNumber", args)
    	resBody, err := eth.rpc.HttpRequest(params)
    	if err != nil {
    		return nil, err
    	}
    	return eth.ParseJ
    更多相关内容
  • 以太坊区块的相关内容,包括区块内容、区块时间、区块大小

    以太坊区块

    区块是指一批交易的组合,每个区块都包含链中上一个区块的哈希,这将区块连接在一起(成为一个链),因为哈希是从区块数据中加密得出的,这在一定程度上就可以防止欺诈,因为以前的任何区块中的任何改变都会使后续所有区块无效,而且所有哈希都会改变,所有运行区块链的人都会发现,从而揪出作恶节点。

    区块包含什么?

    • timestamp – 开采区块的时间。
    • blockNumber – 区块链中区块的长度。
    • baseFeePerGas - 要将交易纳入区块,每个 gas 所需的最低费用。
    • difficulty – 开采所需的努力。
    • mixHash – 该区块的唯一标识符。
    • parentHash – 前一区块的唯一标识符(这是区块形成链的方式)。
    • transactions –包含在区块中的交易。
    • stateRoot –系统的整个状态:帐户余额、合约存储、合约代码和帐户随机数。
    • nonce – 哈希,当与 mixHash 结合使用时,可以证明该块已经通过了工作量证明。

    区块时间

    区块时间指的是开采一个新区块所需的时间。 在以太坊中,平均出块时间在 12 到 14 秒之间,并在每个区块挖出后再进行评估。预期区块时间在协议层面被设定为一个常数,当矿工增加计算能力时,用于保护网络的安全。平均区块时间与预期区块时间进行比较,如果平均区块时间较高,则区块头的难度会降低。如果平均区块时间较小,则会增加区块头中的难度。

    区块大小

    最后一个重要的一点是,区块本身的大小是有界限的。 每个区块的目标大小为 1500 万 gas,但区块的大小将根据网络需求而增加或减少。最多到 3000 万 gas 的区块限制(目标区块大小的 2 倍)。 区块中所有交易所消耗的 gas 总量必须低于区块的 gas 限制。 这很重要,因为它可以确保区块不能任意大。 如果区块可以任意大,由于空间和速度方面的要求,性能较差的完整节点将逐渐无法跟上网络。

    展开全文
  • 以太坊区块数据结构

    2021-05-19 10:53:35
    深度知识】以太坊区块数据结构及以太坊的4棵数 EVM 账户存储 数据结构 底层逻辑 以太坊区块数据结构及以太坊的4棵数 1. 摘要 本文介绍以太坊区块链的一些基本知识,包括: 区块数据结构 数据结构基础 ...

    深度知识】以太坊区块数据结构及以太坊的4棵数

    以太坊区块数据结构及以太坊的4棵数

    1. 摘要

    本文介绍以太坊区块链的一些基本知识,包括:

    • 区块数据结构
    • 数据结构基础
    • 以太坊的4棵树
    • 状态树
    • 交易树
    • 收据树
    • 账户存储树

    2. 区块数据结构

    以太坊的区块是由区块头、交易列表和叔区块三部分组成。其中区块头包含块区号、块哈希、父块哈希等信息,其中State Root、Transaction Root、Receipt Root分别代表了状态树、交易树和交易树的哈希。除了创世块外,每个块都有父块,用Parent Hash连成一条区块链。如下图:

    3. 数据结构基础

    1、Merkle 树
    Merkle Tree,也叫做哈希树,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块的hash值。非叶节点是其对应子节点串联字符串的hash。是一个把任意长度的数据通过哈希函数映射成固定长度数据,这个数据就叫hash值,将这些hash值放到一个List里面,就叫做Hash List。Merkle Tree可以看做Hash List的泛化。
    1)Merkle Tree的原理
    把数据分成小的数据块,每个数据块有相应地哈希,把相邻的两个哈希合并成一个字符串,然后运算这个字符串的哈希,得到了一个”子哈希“。如果哈希总数是单数,那么直接取最后一个哈希作为下个子哈希。这样就可以得到数目更少的新一级哈希。然后按照这种方式逐渐计算上去,最终必然形成一棵倒挂的树,到了树根的这个位置,就剩下一个根哈希了,我们把它叫做 Merkle Root。过程如下图:

    2)Merkel树的意义
    在p2p网络,下载之前,先从可信的源获得文件的Merkle Tree树根。一旦获得了树根,就可以从其他从不可信的源获取Merkle tree。通过可信的树根来检查接受到的Merkle Tree。如果Merkle Tree是损坏的或者虚假的,就从其他源获得另一个Merkle Tree,直到获得一个与可信树根匹配的Merkle Tree。

    2、Trie 树
    Trie树,又称前缀树或字典树。利用字符串的公共前缀来减少查询时间,最大限度的减少无谓的字符串比较,查询效率比哈希树高。典型应用是用于统计,排序和保存大量的字符串(不仅限于字符串),经常被搜索引擎系统用于文本词频统计。如图5

    基本性质:
    1)根节点不包含字符,除根节点外的每一个子节点都包含一个字符
    2)从根节点到某一节点。路径上经过的字符连接起来,就是该节点对应的字符串
    3)每个节点的所有子节点包含的字符都不相同
    注:键不需要被显式地保存在节点中。图示中标注出完整的单词,只是为了演示trie的原理

    3、Patricia树
    Patricia树,或称Patricia trie,压缩前缀树,是一种更节省空间的Trie。对于基数树的每个节点,如果该节点是唯一的儿子的话,就和父节点合并。

    4,以太坊的树

    以太坊区块数据有三棵树,分别为状态树,交易树和收据树。整个以太坊系统中只有一棵状态树,记录整个以太坊系统的所有账户状态。每个区块保存着一棵交易树,记录该区块的交易情况,一棵收据树用来记录该区块的交易收据。
    状态树采用Merkel-Patrica(MPT)树,而交易树和状态树采用Merkel树。
    对于交易树和收据树来说,一旦树已经建立,花多少时间来编辑这棵树并不重要,因为树一旦建立了,它就会永远存在并且不会改变。所以交易树和收据树采用Merkel树。
    对于状态树,每个节点基本上包含了一个键值映射,其中的键是地址,而值包括账户的声明、余额、随机数nounce、代码以及每一个账户的存储。不同于交易历史记录,状态树需要经常地进行更新:账户余额和账户的随机数nonce经常会更变,更重要的是,新的账户会频繁地插入,存储的键也会经常被插入以及删除。我们需要这样的数据结构,它能在一次插入、更新、删除操作后快速计算到树根,而不需要重新计算整个树的Hash。Patricia树具有Trie树快速查找特点,并且比Trie树更加节省空间,所以以太坊中,对Merkel树改造成Merkel-Patrica(MPT)树。

    账户存储树是保存与账户相关联数据的结构。该项只有合约账户才有,而在 EOA 中, storageRoot 留空、 codeHash 则是一串空字符串的哈希值。
    (1)状态树

    状态树中有四种节点,分别是空节点、叶子节点、扩展节点和分支节点。
    空节点 ,简单的表示空,在代码中是一个空串。
    叶子节点(leaf) ,表示为[key,value]的一个键值对,其中key是key的一种特殊十六进制编码,value是value的RLP编码。
    扩展节点(extension) ,也是[key,value]的一个键值对,但是这里的value是其他节点的hash值,这个hash可以被用来查询数据库中的节点。也就是说通过hash链接到其他节点。
    分支节点(branch) ,因为MPT树中的key被编码成一种特殊的16进制的表示,再加上最后的value,所以分支节点是一个长度为17的list,前16个元素对应着key中的16个可能的十六进制字符,如果有一个[key,value]对在这个分支节点终止,最后一个元素代表一个值,即分支节点既可以搜索路径的终止也可以是路径的中间节点。

    假如有四个账户,账户1地址0x811344,余额1ETH;账户2地址0x879337,余额2ETH;账户3地址0x8fd365,余额3ETH;账户4地址0x879397,余额4ETH,存储如下:

    从图中可以看出,状态树的存储涉及3种编码方式:
    KeyBytes编码
    Hex编码
    Compact编码

    在完成Compact编码后,会通过折叠操作把子结点替换成子结点的hash值,然后以键值对的形式将所有结点存储到LevelDBA数据库中。下面详细介绍上面3中编码方式。

    KeyBytes编码
    即原始关键字,比如图中的0x811344、0x879337等。每个字节中包含2个nibble(半字节,4 bits),每个nibble的数值范围时0x0~0xF。

    Hex编码
    由于我们需要以nibble为单位进行编码并插入MPT,因此需要把一个字节拆分成两个,转换为Hex编码。

    Compact编码
    当我们需要把内存中MPT存储到数据库中时,还需要再把两个字节合并为一个字节进行存储,这时候会碰到2个问题:
    关键字长度为奇数,有一个字节无法合并
    需要区分结点是扩展结点还是叶子结点

    为了解决这个问题,以太坊设计了一种Compact编码方式,具体规则如下:
    扩展结点,关键字长度为偶数,前面加00前缀
    扩展结点,关键字长度为奇数,前面加1前缀(前缀和第1个字节合并为一个字节)
    叶子结点,关键字长度为偶数,前面加20前缀(因为是Big Endian)
    叶子结点,关键字长度为奇数,前面加3前缀(前缀和第1个字节合并为一个字节)

    StateDB的存储
    StateDB中存储了很多stateObject,而每一个stateObject则代表了一个以太坊账户,包含了账户的地址、余额、nonce、合约代码hash等状态信息。所有账户的当前状态在以太坊中被称为“世界状态”,在每次挖出或者接收到新区块时需要更新世界状态。
    为了能够快速检索和更新账户状态,StateDB采用了两级缓存机制,参见下图:

    第一级缓存以map的形式存储stateObject
    第二级缓存以MPT的形式存储
    第三级就是LevelDB上的持久化存储
    当上一级缓存中没有所需的数据时,会从下一级缓存或者数据库中进行加载。

    (2)交易树
    从下图中可以看出,MPT是以交易在区块中的索引的RLP编码作为key,存储交易数据的RLP编码。事实上交易在LeveDB中并不是单独存储的,而是存储在区块的Body中。在往LeveDB中存储不同类型的键值对时,会在关键字中添加不同的前缀予以区分。
    因此,以b + block index + block hash作为关键字就可以唯一确定某个区块的Body所在的位置。另外,为了能够快速查询某笔交易的数据,在数据库中还存储了每笔交易的索引信息,称为TxLookupEntry。TxLookupEntry中包含了block index和block hash用于定位区块Body,同时还包含了该笔交易在区块Body中的索引位置。

    (3)收据树
    交易回执的存储和交易类似,区别是交易回执是单独存储到LevelDB中的,以r为前缀。另外,由于交易回执和交易是一一对应的,因此也可以通过TxLookupEntry快速定位交易回执所在的位置,加速交易回执的查找。

    (3)账户存储树
    以太坊中有两种账户类型:外部所有账户(Externally Owned Accounts 简称 EOA)以及合约账户。我们用来互相收发以太币、部署智能合约的账户就是 EOA 账户,而部署智能合约时自动生成的账户则是合约账户。每一个智能合约都有其独一无二的以太坊账户。

    账户状态反映了一个以太坊账户的各项信息。例如,它存储了当前账户以太币的余额信息、当前账户发送过的交易数量...每一个账户都有账户状态。

    下面就来看看账户状态中都包括什么:
    nonce
    从此地址发送出去的交易数量(如果当前为 EOA 账户)或者此账号产生的合约创建操作(现在先别管合约创建操作是什么)。
    balance
    此账号所拥有的以太币数量(以 Wei 计量)。
    storageRoot
    账户存储树的根节点哈希值(稍后介绍账户存储是什么)。
    codeHash
    对于合约账户,就是此账户存储 EVM 代码的哈希值。对于 EOA 账户,此处留空。

    账户状态中不容忽视的一个细节是,上述对象在内的所有对象都可变(除了 codeHash)。举例来说,当一个账户向其他账户发送以太币时,除了 nonce 会增加,账户的余额也会相应改变。

    而 codeHash 的不可变性使得,如果部署了有漏洞的智能合约,也无法修复更新此合约。对应的,只能部署一个新合约(而有漏洞的版本会一直存在于区块链上)。这也是为什么使用 Truffle 进行智能合约的开发和部署十分必要,并且用 Solidity 编程时要遵循 最佳实践 的要求。

    账户存储树是保存与账户相关联数据的结构。该项只有合约账户才有,而在 EOA 中, storageRoot 留空、 codeHash 则是一串空字符串的哈希值。所有智能合约的数据都以 32 字节映射的形式保存在账户存储树中。此处不再赘述账户状态树如何维持合约数据。账户状态中的 storageRoot 区域负责维持账户存储树根节点哈希值。

    存储树,账户状态,世界状态的构成关系

    根据以太坊黄皮书,账户若是一个智能合约账户,则必定包含了 存储树 (storageRoot)和 代码存储 (codeHash)。

    若我们继续放大观察存储树,即为上图最左边的树。存储树保存了智能合约的变量数据,它维持着256位的变量数据索引与RLP 算法编码过的256位数据本身。

    为保证数据完整性,这些数据 也被组织成一棵 MPT 树的形式 。该MPT树的根节点哈希值称为 存储树 。
    存储树 是账户状态的一个 域 ,该值随着合约的存储区的增加、删除、改动而不断变更。
    代码存储 是只读的,它是合约账户的所执行的代码,它在合约第一次创建完毕后就不可以再变更。

    5,总结

    总结一下,以太坊有四种前缀树:
    (1)状态树包括了从地址到账户状态之间的映射。状态树的根节点哈希值由区块保存(在 stateRoot 字段),它标示了区块创建时的当前状态。整个网络中只有一个状态树。
    状态标识了以太坊这台分布式计算机的硬盘。它是从地址到账户状态的映射。
    (2)交易树包含了一个区块中的所有交易信息。由区块头(在 transactionsRoot 区域)保存交易树的根节点哈希值。每个区块都有一棵交易树。
    交易标示了系统中的状态转移。它可以是资金的转移、消息调用或是合约的部署。
    (3)交易收据树包含了一个区块中所有交易的收据信息。同样由区块头(在 receiptsRoot 区域)保存交易收据树的根节点哈希值;每个区块都有对应的交易收据树。
    (4)账户存储树保存了与某一智能合约相关的数据信息。由账户状态保存账户存储树的根节点哈希值(在 storageRoot 字段)。每个账户都有一个账户存储树。
    账户状态保存着每个以太坊账户的状态信息。账户状态同样保存着账户状态树的 storageRoot,后者包含了该账户的存储数据。

    用一张图总结而言:

    展开全文
  • 该工程通过java web3j 直连以太坊节点(可自建或使用免费节点) 进行区块数据解析 支持数据进行mysql存储
  • 文章目录一、状态树1.1 trie1.2 Patricia tree(trie)1.3 Merkle Patricia tree(trie)1.4 Modified Merkle Patricia tree(trie)1.5 账户状态值存储二、交易树、收据树2.1 ...以太坊是基于账户的账本,因此需要进行账户地
  • 以太坊的整个实现机制比比特币复杂得多,所以它的区块结构也比比特币的复杂,而且它的存储不止区块这一种方式,咱们花几天的时间来好好学习一下以太坊区块和存储。 先从区块开始。跟比特币一样,以太坊区块...

    以太坊的整个实现机制比比特币复杂得多,所以它的区块结构也比比特币的复杂,而且它的存储不止区块这一种方式,咱们花几天的时间来好好学习一下以太坊的区块和存储。

    先从区块开始。跟比特币一样,以太坊的区块结构也分为区块头和区块体,这一篇我们先讲区块头。以太坊的区块头包含15个字段:

    ParentHash
    这是上一个区块的哈希值,跟比特币一样,我们可以把它看成一个指针,指向上一个区块,正是有这个指针,区块和区块才串联起来,才有区块链。

    Coinbase
    在比特币里也有一个coinbase,但那个coinbase是指一笔特殊的交易,就是系统奖励比特币给区块创建者的那笔交易。但在以太坊这里,是区块创建者留下的以太坊地址,用于接收系统奖励和交易手续费。

    UncleHash
    以太坊有一个独特的东西,叫叔区块,咱们下一篇会仔细讲讲。现在只要知道这个字段就是所有叔区块用RLP编码后再哈希出来的值即可。

    Root
    这是一棵MPT树的根哈希,这棵树存储了所有以太坊账户。

    TxHash
    这也是一棵MPT树的根哈希,这棵树存储了所有的交易信息。

    ReceiptHash
    这还是一棵MPT树的根哈希。对于以太坊账户和交易我们都已讲过,MPT我们也讲过,用MPT树来存储它们好理解。那这棵树又是存什么的呢?其实,这棵树存储的是收据信息。什么是收据?就是交易完成后会提供一个清单给你,告诉你一些信息:比如这笔交易被哪个区块打包了,这笔交易最终花费了多少gas、执行交易时创建的一些日志等等。

    Bloom
    我们可以在合约中通过定义“事件”来生成日志。上面说了,在收据树里会存储一些日志,这个bloom其实是一个过滤器,通过这个过滤器可以快速搜索和判断某个日志是不是存在于收据中。

    Difficulty、 Nonce、mixHash
    这三个字段都和以太坊的挖矿有关,以太坊和比特币一样,也是POW模式,所以它也有一个挖矿难度系数,这个系数会根据出块速度来进行调整。以太坊第一个区块的难度是131,072,后面区块的难度会根据前面区块出块的速度调整,出得快难度就调高一点,出得慢就调低一点。

    Difficulty就是区块的难度系数,Nonce是目标值,Nonce值小于等于2^256/Difficulty。所以,难度值越高,目标值的范围越窄,要找到符合的就越难。以太坊具体的挖矿计算比比特币复杂得多,但大概的流程就是不断尝试不同的mixHash来获得符合条件的Nonce。所以,mixHash可以简单理解为比特币区块头里的随机值。

    Number
    区块的序号,每个区块的序号就是在父区块的序号上加1。

    Time
    区块生成的时间。这个时间不是那么精确地就是区块真正生成的时间,有可能就是父区块的生成时间加上10秒,有可能就是区块产生时的“大概”时间。

    GasLimit
    区块内所有Gas消耗的理论上限。这个理论值与父区块有关,它允许打包区块的矿工根据父区块的情况对这些值做些微调。每个区块在产生时就必须设定这么一个gas消耗的理论上限,这个上限值限定了一个区块打包交易的总量,比如一个区块的上限值设定为10000,现在有3笔交易的gas设定分别都是5000,那么这个区块就最多打包其中的两笔交易,如果硬要打包3笔,其他节点就不会认这个区块的。

    可以这么说,这个字段限定了一个区块的存储规模,但仍保有一定弹性。这一点与比特币不同,比特币的一个区块是多大,直接写死在比特币软件里,要更改的话只能通过硬分叉。

    GasUsed
    区块内所有交易执行完后所实际消耗的gas总量。

    extraData
    这个字段是留给区块的创建者,让他可以记录一些与该区块有关的信息,长度小于等于32字节即可。

    这就是区块头的完整信息,明天咱们继续学习以太坊的区块结构以及其他存储方式。

    展开全文
  • 获取给定日期的以太坊区块号。 或按给定的持续时间阻止。 适用于任何基于以太坊的主网或测试网网络。 安装 使用npm: npm i ethereum-block-by-date 或纱线: yarn add ethereum-block-by-date 用法 const ...
  • 以太坊的基本了解

    2022-05-12 14:41:56
    以太坊综述(Ethereum) 庞大的开发者社区,目前最大的区块链开发平台 相对较成熟,有代表性,资料众多 以应用入手,学习曲线不那么陡峭 与JavaScript结合紧密,方便开发人员上手
  • 以太坊区块浏览器可以查询所有基于 以太坊 的 TOKEN 信息,以及查询所有的 以太坊 账户地址情况。 网站主要是英文,如果英文不好的同学,可以使用谷歌浏览器或360极速浏览器打开,利用浏览器自带的翻译功能...
  • 以太坊基础---区块验证

    千次阅读 2022-02-20 14:40:47
    以太坊中的区块结构具备的独特之处: 1.交易的列表[0,…,n-1]和最近区块的状态(parent_Block_Merkleroot_Hash)会在以太坊的区块链中存储 2.以太坊区块的数量和挖矿难度也会保存在区块链中 以太坊的状态转换...
  • EthVM:开源处理引擎和以太坊区块浏览器 关于 什么是EthVM? EthVM是带有客户端Block Explorer的开源区块链数据处理和分析引擎,尽管随着时间的推移将支持其他网络和分支。 EthVM由团队构建,并受(GNU Affero...
  • 1 以太坊基本原理

    千次阅读 2022-04-22 13:47:57
    以太坊基本原理包括:以太坊账户、以太坊虚拟机、钥匙文件、交易、Gas、以太坊区块、以太币 以太坊开发包括:以太坊客户端,以太坊钱包,搭建以太坊私有链,智能合约,redmix-ide开发智能合约 1.以太坊基本原理 1.1 ...
  • 昨天讲了以太坊区块头,接着来我们今天讲讲区块体。 在比特币里,区块体里就一个东西,那就是一笔一笔的交易信息。但在以太坊区块体里,除了交易信息,还有一些特殊区块区块头。 因为这些特殊区块的父区块...
  • 以太坊主动数据同步简析

    千次阅读 2022-03-23 14:34:19
    以太坊数据同步是一个复杂的流程,需要节点、数据主体、以太坊P2P通信协议、执行器通力合作才能完成。数据主体如何确定需要同步的数据呢?不同数据又是否需要分类同步呢?
  • 我看过各路翻译的很多版本的ETH白皮书,这是我见过最干净最漂亮的版本,现在将他免费分享给各位,希望各位有机会能从炒币转为投资数字资产。
  • 以太坊区块大小并无限制。 但是gas有个上限的,每个区块耗完gas就不能再写入数据了。 目前以太坊中最大区块大小大约为1500000Gas。 从一个帐户到另一个帐户的ETH基础交易或支付(并非智能合约)大约消耗21000...
  • 以太坊中的数据结构 以太坊中的账户地址是160位(20个字节),一般表示成四十个十六进制的数。 简单的hash表来实现怎么样? 查询、更新都是在常数时间内完成的,另外这种结构无法很好的提供hash proof,比如要签署一个...
  • 以太坊是每个区块都有可能调整挖矿难度,调整的算法比较复杂,已经变更了很多次。 以下是区块难度的公式,这个H是当前的区块,这个Hi是当前区块的序号,D(H)是难度。这里放置难度炸弹的作用主要是为了向权益证明...
  • 以太坊源码之挖矿与区块确认

    千次阅读 2019-03-25 20:34:12
    大家都知道,以太坊前期的共识算法是工作量证明(POW),可以简单的理解为下述的公式: RAND(h, nonce) <= M / d 其中h表示区块头的哈希;nonce表示一个自增的变量;RAND表示经过一系列算法生成数值;M表示一个极...
  • 以太坊的GHOST协议

    2021-01-20 13:17:44
    以太坊1.0将出块时间降低到15s左右,发布的区块在网络上传播时间本身就需要10几秒,其他节点没有充足时间来接收区块,会使得分叉变成常态,且分叉数量会很多,大量孤块(orphan block)得不到收益。同时这些分叉造成...
  • 以太坊交易事务的打包规则

    千次阅读 2021-08-17 15:33:55
    以太坊交易的本质 首先,大家应该都知道以太坊交易的本质:我给你 10 个以太币不是我真的把什么东西给了你,而是我向以太坊网络提出了更改余额状态的请求,让各个节点上纪录的你与我的 Ether Balance进行更新。 ...
  • 18 以太坊的共识机制

    2021-01-08 04:26:18
    以太坊把出块时间降低到十几秒,但是这样也带来了很多问题,较频繁的出现分叉,这对于共识协议来说有什么影响呢? 在比特币中,只有最长合法链的中才是合法链, GHOST协议:假如一条区块链没有成为最长合法链,就会...
  • 以太坊区块生成并写入区块链数据库,分为创世区块和普通区块两种。其写入过程是相同的,区别在于区块生成过程。以生成创世区块为例子,总体流程是从genesis.json读取配置,写入内存的数据结构,再写入磁盘leveldb...
  • 没过几分钟,小黑反悔了,通过自己控制的超过 50% 的算力,发起了 51% 算力攻击,通过剔除发给大白的 666BTC 那笔交易,重组第 N 个区块,并在重组的第 N 个区块后面继续延展区块,使之成为最长合法链。 这就是双...
  • 以太坊基础概念

    千次阅读 2022-03-20 21:28:12
    1、以太坊的组成部分:P2P网络、交易、以太坊虚拟机(EVM)、以太坊账本、客户端 ...3、以太发行规则:挖矿前、挖矿产出、...5、以太坊区块收入:普通区块收入、叔块收入 6、“幽灵”协议(GHOST) 7、以太坊和图灵完备
  • 十五、以太坊中的状态树 以太坊采用基于账户的模式,系统中显式地维护每个账户上有多少余额,今天看一下用什么样的数据结构来实现account-based ledger。 完成的功能:从账户地址到账户状态的映射,addr->state。...
  • 以太坊创世区块与链配置载入分析

    千次阅读 2019-04-25 20:49:16
    以太坊允许通过创世配置文件来初始化创世区块,也可使用选择使用内置的多个网络环境的创世配置。默认使用以太坊主网创世配置。 创世配置文件 如果你需要搭建以太坊私有链,那么了解创世配置是必须的,否则你大可不...
  • block:区块:包含交易(0或多个)、父区块(parent)hash及其他数据的数据包。在区块链中,除创世区块的每个区块都...state:状态,在区块链在特定时间点上所有余额和数据的快照。通常体现了一个特定区块的状况 Transa
  • 以太坊允许通过创世配置文件来初始化创世区块,也可使用选择使用内置的多个网络环境的创世配置。 默认使用以太坊主网创世配置。 创世配置文件 如果你需要搭建以太坊私有链,那么了解创世配置是必须的,否则你大...
  • 以太坊区块浏览器怎么使用We’ve previously written about Geth, one of the most popular Ethereum nodes. 我们之前已经写过关于最流行的以太坊节点之一的Geth的文章。 When you install Geth with helper tools...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,235
精华内容 4,494
关键字:

以太坊区块时间