区块链数据深度解析2025年5月31日 | 阅读 10 分钟 ![]() 链上数据:它是什么?区块链系统中保存的每一条信息都被称为链上数据。它作为网络上发生过的每一次交易的不可更改的日志,因此对所有人都是可访问的。 它有多种链上数据,包括:
与链下数据相比,链上信息是不可更改的,因此全面了解区块链生态系统至关重要。这些信息可用于追踪区块链上的资源流向、确认盈利交易,并得出关于网络运营的结论。 链上信息的问题在于它可能难以有效获取。虽然链上信息易于访问,但它以机器可读的方式存储,这牺牲了人文理解以换取安全性。JSON和XML是人类可读格式的示例,而这就是应用程序二进制接口(ABI)发挥作用的地方。 数据结构是什么意思?如前所述,链上数据不能像传统数据一样保存。相反,信息通常以字节码或其他机器可读类型存储。应用程序二进制接口(ABI)帮助设计者追踪和转换信息为人可用的实体。ABI用于智能合约中描述信息结构。作为一种操作选择,ABI除了定义每个方法接收和生成的信息类型以及它与智能合约交互的方式之外,还帮助定义了信息类型。换句话说,它是一种以计算机和人都能理解的格式表示信息结构的常见方法。 区块链数据存储在哪里?区块链数据通常存储在一组节点上,而不是一个地方,这被称为开放式账本。由于每个节点都保存信息的额外副本,节点对于区块链信息的保存和安全至关重要。 下面描述了几种不同的节点类型及其一般功能:
数据可以以节点以外的方式存储。链下信息存储选项包括数据库、本地机器和在线存储解决方案。尽管链下数据存储不如链上数据存储安全,但它对许多应用程序仍然有益,因为它成本更低且更容易检索。当数据存储在链下时,分布式账本上通常只保留定位链下数据所需的详细信息。 区块链内存和智能合约尽管智能合约本质上包含信息方法的存储,但它们在区块链上在同行之间进行维护。智能合约使用一种称为合约内存设计来存储数据。指导合约存储参数在持久内存中排列的原则被称为合约内存架构。 内存、调用数据以及存储是Solidity(一种用于创建智能合约的高级编程语言)可以用来告诉EVM将参数保存在何处的内存的三种类型。
文件和数据存储的比较最基本的形式是,保存数据涉及存储信息以便后续检索和使用。另一方面,当文件本身与任何关于它们的元数据分开存储时,它们的保存独立于数据的存储。通常,这种划分是为了提高安全性、降低成本或提高效率。 使用像IPFS或Arweave这样的分布式文件存储协议是分离数据存储和文件存储的一种流行方法。通过降低必须跨区块链本身保存的数据量,这些解决方案使客户能够在分布式设备集合上保存文档并变得经济。 在最高层,文件存储在链下,而它包含的信息存储在链上。当应用程序需要访问文件时,它们可以使用这些信息来获取IPFS和Arweave URL。程序可以使用此网址通过IPFS或Arweave下载文档。 IPFS:它是什么?IPFS的内容寻址架构中的每个文件都由其内容标识符或CID确定。无论项目的位置如何,CID都是唯一的哈希值,始终指向单个项目。 因此,这意味着哈希值将随着文件的任何修改或更新而修改。文件可以使用这种内容寻址方法根据其CID而不是其位置进行保存和恢复。 以下是IPFS如何运作的简要概述:
ArweaveArweave是另一个分布式数据库解决方案,也使用CID来存储和检索信息,并将信息链接到元数据。主要区别在于Arweave鼓励节点无限期地保留数据,这是奖励和永久性的替代策略。 信息可用性、数据存储和数据发布
模块化区块链和其他数据源
链上数据类型在讨论了链上数据的定义之后,我们将研究其各种形式以及它们的创建、存储和检索过程。 交易数据:它包含什么?关于区块链交易的所有详细信息都包含在交易数据中,包括:
每当用户在分布式账本上完成一项操作时,都会生成该信息。该操作随后通过在其他网络成员中广播而得到确认并添加到公共注册表中。 Merkle树是一种树形信息结构,可用于保存和验证交易信息。Merkle树是二叉树,每个节点代表其包含信息的哈希值,从而实现快速数据验证。您只需树根的哈希值即可确认Merkle树中内容的准确性。通过在Merkle树中收集信息,分布式账本可以尽可能地保持小巧。 Patricia Merkle Tries是一种结合了Merkle树和基数树(Patricia trie)的混合结构,专门用于比特币中保存信息。 通过使用以太坊网络上的区块链浏览器(例如Etherscan),可以轻松获取交易信息。比特币扫描仪可用于跟踪货币流动、发现未经授权的交易以及创建区块链应用程序等。它们允许用户检查和浏览每个交易的信息。您必须使用交易哈希的详细信息来查找有关特定交易的详细信息。 元数据提供有关分布式账本属性和活动的更多详细信息的数据称为元数据。这可能包含更多信息,例如:
尽管与交易信息不同,信息对于分布式账本的功能并非必需,但程序员可以利用它来创建应用程序,例如可视化、钱包和区块浏览器等。元数据可能由某人直接创建(例如,资产元数据),也可能由智能合约或区块链持续创建(例如,交易信息)。 开发人员可以使用getMetadata查询来检索数据。开发人员必须使用分布式账本API(例如Alchemy API)才能使用这些查询。开发人员可以生成一系列应用程序,支持消费者理解和交互区块链系统,通过使用getMetadata查询。 事件数据智能合约在交易执行期间发布的信息被称为事件信息。该信息可能包含以下详细信息:
此数据可通过日志访问,并有助于程序员监控智能合约的行为。 智能合约创建日志,这些日志是分布式账本上发生的每个事件的记录。交易发票包含这些日志,可以通过提交eth_getLogs查询来查看。 调用信息当调用目标时发送到智能合约的信息称为调用数据。换句话说,函数参数在传递给智能合约之前会暂时保存在此处。任何类型的信息,包括数字、字符、数据数组以及更多,都可能包含在调用数据中。这至关重要,因为它实现了智能合约与用户之间的通信;例如,调用数据可以用来赋予个人NFT的所有权。所有比特币操作都会产生汽油费,使用调用数据也不例外。当L2操作出现在以太坊上时,对话数据是交易的一部分。这是因为以太坊网络需要电话呼叫信息来验证交易并执行指定的智能合约操作。调用数据消耗多少汽油取决于范围和电话呼叫数据中包含的数据类型。以太坊的每个区块最大调用数据大小为1,048,576字节。 结论总之,每个希望使用或创建Web3基础设施或服务的开发人员都会发现理解区块链数据很有帮助。交易信息、信息、事件数据、联系数据以及Blob是记录在分布式账本上的链上数据的各种类别。根据应用程序的用例,有几种方法可以在数据保存到服务器后获取这些信息。 下一主题Plaid-区块链 |
我们请求您订阅我们的新闻通讯以获取最新更新。