Web 3 一些常见术语

server/2024/9/23 6:03:31/

目录

    • Provider 提供者
    • Signer 签名者
    • Transaction 交易
    • Contract 合约
    • Receipt 收据

首先,从高层次上对可用对象的类型及其负责的内容有一个基本的了解是很有用的。

Provider 提供者

一个 Provider 是与区块链的只读连接,允许查询区块链状态,例如帐户、区块或交易详细信息,查询事件日志或使用调用评估只读代码。

如果您来自 Web3.js,您会习惯于提供读写访问权限的Provider 。在 Ethers 中,所有写操作都被进一步抽象为另一个对象,即Signer

Signer 签名者

一个 Signer 包装与帐户交互的所有操作。帐户通常在某处有一个私钥,可用于对各种类型的有效负载进行签名。

私钥可能位于内存中(使用 Wallet )或通过某些 IPC 层进行保护,例如 MetaMask,它代理从网站到浏览器插件的交互,从而使私钥远离网站,并且仅在请求用户许可并收到授权后才允许交互。

Transaction 交易

要对区块链进行任何状态更改,需要进行交易,这需要支付费用,其中费用涵盖执行交易(例如读取磁盘和执行数学)和存储更新信息的相关成本。

如果交易恢复,仍然必须支付费用,因为验证者仍然必须花费资源来尝试运行交易以确定它已恢复,并且仍然记录其失败的详细信息。

交易包括从一个用户向另一个用户发送以太币、部署合约或针对合约执行状态更改操作。

Contract 合约

一个 Contract 是一个已部署到区块链的程序,其中包含一些代码并分配了可以读取和写入的存储空间。

当它连接到一个 Provider 或者当连接到一个时可以调用状态改变操作 Signer

Receipt 收据

一旦交易被提交到区块链,它就会被放置在内存池(mempool)中,直到验证者决定将其包含在内。

交易只有在被包含在区块链中后才会发生更改,此时会收到收据,其中包含有关交易的详细信息,例如包含在哪个区块中、实际支付的费用、使用的 Gas 以及所有事件它发出了什么以及它是否成功或恢复。


http://www.ppmy.cn/server/100836.html

相关文章

人工智能在网络安全威胁测试中的应用:LLMs如何改变网络威胁格局

一、引言 随着人工智能技术的快速发展,特别是大型语言模型(LLMs)的崛起,网络安全领域也迎来了新的变革。LLMs不仅在自然语言处理方面展现出惊人的能力,还在网络安全威胁测试中显示出巨大的潜力。本文旨在探讨LLMs在网…

MySQL:查询(万字超详细版)

💎所属专栏: MySQL 💎1. 单表查询 💎1.1 全列查询和指定列查询 全列查询: select * from exam; 在实际开发中不要使用 * 来进行查询,因为数据库会很大,影响效率 指定列查询: se…

BigDecimal高精度运算

1. BigDecimal是什么类型,为什么可以转为double BigDecimal 是 Java 中用于表示任意精度的十进制数的类。它主要用于金融和商业计算,能够提供比 double 类型更高精度的运算,特别是在处理货币等需要精确计算的场景中。 1.1 BigDecimal 的基…

内存泄漏之如何使用Visual Studio的调试工具跟踪内存泄漏?

使用Visual Studio的调试工具跟踪内存泄漏是一个系统性的过程,主要包括启用内存泄漏检测、运行程序、分析内存使用情况以及定位泄漏源等步骤。 Visual Studio提供了多种方式来检测内存泄漏,你可以根据自己的需求选择合适的方法。 注意:下面…

44-设计规则:其他规则

1. Mask规则 2.丝印到阻焊的间距规则 3. 丝印到丝印的间距规则 4. placement[器件放置] 规则

vulnhub系列:Hackademic.RTB1

vulnhub系列:Hackademic.RTB1 靶机下载 一、信息收集 nmap 扫描存活,根据 mac 地址寻找 IP nmap 192.168.23.0/24nmap 扫描端口,开放端口:22、80 nmap 192.168.23.143 -p- -Pn -sV -O访问80端口,页面发现 target …

python管理mysql(实现读写分离)及如何用Mycat读写分离

Day24 编写python代码实现读写分离 1、安装pymysql,它是python管理mysql的驱动,或者称为连接器 [rootpyhton ~]#pip3 config set global.index-url Simple Index [rootpython ~]# pip3 install pymysql #安装pymysql [rootpyhton ~]# python3 …

Integer是线程安全的吗?AtomicInteger呢?

《effective java》在"最小化可变性"这一节中指出: 不可变类简单来说是其实例不能被修改的类。 包含在每个实例中的所有信息在对象的生命周期中是固定的,因此不会观察到任何变化。 Java 平台类库包含许多不可变的类,包括 String 类…