- A+
什么是 EIP-4844?
介绍
*阅读原文 * 什么是 EIP-4844?Proto-Danksharding 和 Blob 交易的解释 ,在 cyfrin.io。
EIP-4844 (以太坊改进提案) 引入了一种新类型的交易到以太坊区块链,允许 区块链 Rollup 以更低的成本结算其交易。这些新交易接受称为“blobs”的大块数据,这些数据在短时间后会被删除。
在本文中,我们将探讨:
- 什么是 EIP-4844?
- 什么是 blob 交易?
- 为什么引入它们?
在我们深入了解 EIP-4844 之前,我们首先需要理解有不同种类的交易。
区块链交易类型
在“正常”交易中,所有交易数据都永久存储在链上。今天最常见的交易类型是类型 2 交易,但还有其他类型:
- 类型 0 交易:即“传统”交易
- 类型 1 交易:即“访问列表”交易(由 EIP-2930 引入)
- 类型 2 交易:新的“正常”交易(由 EIP-1559 引入)
- 类型 3 交易:即“blob”交易(由 EIP-4844 引入)
我们将在本文中讨论由新 EIP-4844 引入的 类型 3 交易,即 Blobs。
什么是 Blob 交易?
Blob 交易,由 EIP-4844 引入,即“Proto-danksharding”,为以太坊添加了一种新的数据结构 在大约 20-90 天后从链上删除。
我们最终删除的这大块数据被称为 blob, 是一个(某种)缩写,意思是;“Binary Large OBject。”
Blob 交易图示
Blob 交易已包含在 以太坊 Dencun 升级中,日期为 2024 年 3 月 13 日, 区块链 Rollup 对此非常喜爱。这些来自 EIP-4844,即“Proto-danksharding”(以创建它的研究人员命名,而不是因为这个名字听起来很酷)。
很多人使用“边车”类比。blob 就像摩托车的边车。摩托车是交易,边车是 blob。
进一步类比,我们点燃边车并在一个月后将其丢弃。
将数据放入 blob 使得 Rollup 以更低的成本 将交易结算到 L1。但在我们理解为什么/如何运作之前,我们首先需要理解交易为何以及如何消耗 gas。即使你认为自己已经知道,也请阅读下一段。
为什么区块链交易会消耗 gas?
在我们理解为什么在新的 EIP-4844 中添加 blobs 之前,让我们先了解为什么我们 发送交易时会被收取费用。
每当我们在链上做任何事情时,每个区块链节点都必须计算 或 存储一些数据。我们 支付 gas 是因为在发送交易时,我们要求成千上万的计算机做大量工作,这会花费他们的钱。
- 计算:消耗电力
- 存储:有硬件成本
- 发送消息:网络流量也有相关成本
因此,如果我们想在链上存储 20 GB 的《怪物史瑞克》,我们需要 帮助支付成千上万的节点 购买所需的硬件,以便有空间存储《怪物史瑞克》。
因此,每当我们要求节点“做任何事情”时,我们必须 支付 gas。如果我们告诉他们,“你需要永远存储 20 GB 的《怪物史瑞克》” (这在以前是以太坊的工作方式,所有数据基本上都是永久存储),那么我们应该支付的费用要比我们要求他们仅存储几个月的《怪物史瑞克》多得多。
永久存储数据比临时存储数据更昂贵
请记住这一点;我们稍后会回到这个问题。
为什么我们决定添加 blob 交易?
那么,为什么我们给交易这个可选的框来丢弃数据?
这回到了今天以太坊面临的最大问题:
在以太坊上发送 1 美元的费用是 2 美元,即扩展性问题。区块链面临着 区块链三难困境,在于难以同时解决以下三者:
- 去中心化
- 安全性
- 可扩展性
以太坊旨在 最大程度去中心化 和 安全,因此在扩展性上面临困难。
作为一个社区,我们决定 基于乐观和零知识证明的区块链 Rollup 是我们在以太坊近期和长期未来扩展 ETH 的方式。Rollup 通过在其 roll-up 链 上执行交易,打包它们,然后 “结算” 回 L1(以太坊)来帮助我们扩展 ETH。这使得 交易更便宜,同时保持许多 以太坊的安全 属性。
随着许多 Layer-2 区块链 处理交易,如 zkSync、Arbitrum 和 Optimism,你可以以更低的成本获得更多交易,因为你正在压缩它们。
像 zkSync、Arbitrum 和 Optimism 这样的 Layer 2
当这些 L2 将这些批次提交回以太坊时,以太坊必须做一些工作来验证交易批次的有效性,这就是问题所在。
以太坊只需要验证批次是否有效一次,然后就不再需要这些数据。但是在 EIP-4844 之前,以太坊没有(好的)方法来删除数据,因此它永久存储这些数据。
你看到了问题吗?
- 我们只需要这大批数据的一个瞬间
- 没有人再关心这些数据
- 但地球上每个 ETH 节点都必须从那时起存储它
就像每次你在学校通过考试时,你都必须把那次考试带在身边。经过 20 年,你基本上就像在走路时带着一大堆文件,从你的博士论文到你学习“猫”这个词时的拼写测试。
回到我们之前的《怪物史瑞克》例子,我们可以看到这一切是如何联系在一起的。
Rollup 在提交这大块数据时消耗了大量 gas,而他们只需要这数据的一个瞬间。而 Rollup 是 使以太坊扩展的关键,所以我们应该将他们视为优先公民。我们能做些什么来让他们的生活更轻松?
“如果我们在验证交易后就删除数据呢?”
- Rollups
于是,blobs 应运而生。
如何使用 blobs 验证 rollup 交易?
那么,blobs 在实践中是如何使用的?
现在的过程是:
- roll-up(如 zkSync)压缩它们的交易列表
- 将压缩后的列表作为 blob 提交到 Ethereum L1,并附带证明
- L1 验证交易批次
- blob 最终从 L1 中删除
我们将变得更加技术化,所以请做好准备。
这是一个 Etherscan 上的 blob 交易示例。这是 zkSync 提交一批带有 blobs 的交易到 Ethereum 的交易示例。那么,这些 blobs 是如何被使用的呢?
在 Etherscan 上的示例 Blob 交易
如果我们点击那个蓝色的“2 blobs”部分,我们可以看到 blob 本身,以及使用 blob 而不是 calldata 后,这笔交易便宜了多少的快照!
Etherscan 上的 Blobs
现在,如果 EVM 可以直接访问 blob 数据,节点将不得不永久存储这些数据。EVM/Ethereum 节点需要保留它们所做的所有计算的历史,因此如果它们直接在 blobs 上进行计算,我们就必须存储该计算,因此存储整个 blob。但我们不想这样做,因为我们不想永久存储 blob。我们将回到原点!因此,EVM 不能访问 blob 数据。
EIP-4844 的创建者足够聪明,添加了一个新的操作码和预编译来帮助:
BLOBHASH
操作码:这个 获取交易中任何 blob 的哈希。point evaluation
预编译:这做了一些数学魔法。有关更多信息,请参见 evm.codes。
有了这两个新工具,我们可以使用“密码学数学魔法”来验证 blob 是否有效,而无需实际将 blob 数据存储在链上或加载到 EVM 可以访问的环境中。
当 zkSync 验证者/操作员希望将交易列表提交回 L1 时,它调用 commitBatches:
function commitBatches(
StoredBatchInfo calldata,
CommitBatchInfo[] calldata _newBatchesData
在 _newBatchesData 对象中,它传递一些证明,这些证明与 blob 哈希(通过 BLOBHASH 操作码检索)结合,允许智能合约验证交易批次的有效性。稍后,该函数最终将调用:
/// @dev 通过调用点评估预编译来验证 blobs 是否包含正确的数据。对于预编译,我们需要:
/// versioned hash || opening point || opening value || commitment || proof
/// _pubdataCommitments 将包含最后 4 个值,versioned hash 是从 BLOBHASH 操作码中提取的
/// pubdataCommitments 是一个列表:opening point (16 字节) || claimed value (32 字节) || commitment (48 字节) || proof (48 字节)) = 144 字节
function _verifyBlobInformation(
bytes calldata _pubdataCommitments,
bytes32[] memory _blobHashes
) internal view returns (bytes32[] memory blobCommitments) {
这将执行实际的 blob 验证。
BLOBHASH
操作码将为我们抓取一个 hash,而不是整个 blob,我们可以将其与一些证明和其他“数学内容”结合,然后传递给新的 point evaluation
预编译(该函数最终也会这样做)。点评估进行一些“数学魔法”以验证 blob 哈希是否有效。你可以从 evm.codes 阅读更多关于输入的信息。
现在,我们不会立即删除 blobs。这是因为我们希望其他节点有一些时间来确保正在计算的 BLOBHASH 是正确的,因此以太坊社区允许 blobs 传播。这实际上只需要几个区块,但我们留出 20-90 天的窗口来删除 blobs。
就这样!我们现在可以验证 L2 交易是否有效。这个巨大的 blob 代表了所有交易,但我们可以仅使用哈希和一些巧妙的数学来验证它们的有效性。
这就是 blobs 的工作原理。
如何发送你的 blob 交易
我们创建了一个 最小仓库 来展示如何使用新的 Eip-4884 在 web3.py 中发送带有 blob 的交易。设置看起来类似于** EIP-1559**(普通)交易的设置。你需要设置一个 EIP-2718 交易负载,类似于以下内容:
tx = {
"type": 3,
"chainId": 31337, # Anvil
"from": acct.address,
"to": "0x0000000000000000000000000000000000000000",
"value": 0,
"maxFeePerGas": 10**12,
"maxPriorityFeePerGas": 10**12,
"maxFeePerBlobGas": to_hex(10**12),
"nonce": w3.eth.get_transaction_count(acct.address),
}
# 这代表了 EIP-2718 交易负载
关键部分是添加 blob 本身。你不会将 blob 添加到 EIP-2718 交易负载中,而是将 blobs 与负载一起发送。根据 EIP,RLP(递归长度前缀:以太坊编码交易数据的方式)看起来像这样:
rlp([tx_payload_body, blobs, commitments, proofs])
另一方面,EIP-1559 交易 仅 在 rlp 中包含 tx_payload_body。因此,在 Python 中,我们可以通过以下方式表示:
# 这将生成我们的 blob 交易的 blobs、commitments 和 proofs
signed = acct.sign_transaction(tx, blobs=[BLOB_DATA])
以太和其他库也处理大多数证明生成和其他“blob”内容。发送 blob 交易的完整脚本可能如下所示:
import os
from dotenv import load_dotenv
from eth_abi import abi
from eth_utils import to_hex
from web3 import HTTPProvider, Web3
load_dotenv()
def send_blob():
rpc_url = os.getenv("RPC_URL")
private_key = os.getenv("ANVIL_PRIVATE_KEY")
w3 = Web3(HTTPProvider(rpc_url))
text = "<( o.O )>"
encoded_text = abi.encode(["string"], [text])
print("Text:", encoded_text)
# Blob 数据必须由 4096 个 32 字节字段元素组成
# 所以,blobs 必须相当大
BLOB_DATA = (b"\x00" * 32 * (4096 - len(encoded_text) // 32)) + encoded_text
acct = w3.eth.account.from_key(private_key)
tx = {
"type": 3,
"chainId": 31337, # Anvil
"from": acct.address,
"to": "0x0000000000000000000000000000000000000000",
"value": 0,
"maxFeePerGas": 10**12,
"maxPriorityFeePerGas": 10**12,
"maxFeePerBlobGas": to_hex(10**12),
"nonce": w3.eth.get_transaction_count(acct.address),
}
gas_estimate = w3.eth.estimate_gas(tx)
tx["gas"] = gas_estimate
# 这将生成我们的 blob 交易的 blobs、commitments 和 proofs
signed = acct.sign_transaction(tx, blobs=[BLOB_DATA])
参考 GitHub 仓库 获取更多信息。
EIP-4844 之后:Danksharding 和 Blobs 的未来
EIP-4844,也称为“Proto-danksharding”,是以太坊未来路线图“Danksharding”的一个中间步骤,具有更多酷炫的功能。这些将帮助 Ethereum 以更公平、可追溯的方式进行扩展。然而,完整的 Danksharding 需要更多的开发和研究,但 Rollups 今天已经带来了实际价值。因此,EVM 生态系统决定在其余的 Danksharding 方案确定之前,值得推出这一功能。
以太坊文档很好地解释了 Danksharding 的未来;你可以在 以太坊网站 上阅读更多内容。
多维 gas 定价
另一个出现的概念是“多维 gas 定价”的兴起。
历史上,任何对 ETH 节点的计算或存储请求都被打包成 1 个单位:“gas”。然而,随着 blobs 的出现,我们创建了一种新的单位来衡量计算“blob gas”。每个区块中允许的 blobs 数量是有限的,类似于每个区块中可以容纳的数据量。由于 blobs 的供应与交易的供应不同,需求也可能不同。由于 blobs 的需求可能与区块空间的需求大相径庭,blobs 拥有自己的 gas 市场。
你可以在上面的 Python 代码中看到这一点,并且有一个名为 maxFeePerBlobGas 的交易字段。Blobs 的 gas 成本计算基于 blob 的需求。实际上,这意味着在估算 blobs 的 gas 成本时会进行 两个 计算:
- 基于区块空间需求的正常 gas 成本
- 基于 blobs 需求的 blob gas 成本
这为 EVM 生态系统设定了一个先例,未来可能会有更多市场用于计算在 EVM 生态系统中进行不同操作的不同成本。
总结与回顾
什么是 EIP-4844?
EIP-4844 是对以太坊/EVM 区块链的改进提案,增加了对“blobs”的支持,使得 Rollups 验证交易的成本更低:
- Blob 交易是一种新交易类型,允许我们在链上短时间存储数据。“短期数据”被称为“blob”或“二进制大对象”。
- 我们无法直接访问数据本身,但可以通过新的 BLOBHASH 操作码访问数据的哈希值。
- 使用 blob 交易,Rollups 可以以比以前更低的成本将交易结算到 L1。
Rollups 现在如何验证交易?
- 你提交一个带有 blob 的交易,以及一些证明数据。
- 你的链上合约通过 BLOBHASH 操作码访问 blob 的哈希值。
- 然后,它将你的 blob 哈希与证明数据结合传递给新的点评估操作码,以帮助验证交易批次。
非常感谢 帮助我们 理解 blobs 工作原理 的用户。
本文是全系列中第258 / 270篇:行业技术
- redhat双网卡绑定
- redhat下迁移数据库(从文件系统到asm)
- 10.2.0.1g+RAC+裸设备+aix6106+HACMP5.4
- 如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target
- 变更oracle 11.2.0.3 rac sga手工管理为sga及pga全自动管理
- redhat(centos) 下oracle11g(11.2.0.4)单机环境搭建DG ASM 多路径
- redhat linux下装oracle11gRAC (11.2.0.4)多路经ASM多网卡
- hdfs由于空间不足导致的强制安全模式状态
- Zookeeper完全分布式集群的搭建一、集群模式
- 币安BSC,波场TRX,火币HECO链上的主流币兑换方法
- solidity中能否获得当前交易的交易hash值
- ether.js中接收solidity合约中返回的多个值的处理方式
- ether.js中接收solidity合约中触发多个event返回多个值的处理方式
- ether.js中调用连接metamask钱包并获取当前钱包地址、余额、链ID、链名称的代码实现
- solidity合约中获取交易hash的方法,比如转账transfer交易hash值,根据hash值查询交易详情
- dapp实现完整版本签名验签功能,借助签名验签功能实现代币的提币接口
- dapp中实现代币充提接口,提币环节需要签名验签的系统实现
- 币安BSC智能链Dapp开发教程——签名验签时ERC20上的几种签名函数: eth_sign, personal_sign, eth_signTypedData的详细使用说明【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——web3.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——web3.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——创建到BSC链的免费provider RPC节点【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——solidity中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中产生签名消息,solidity端验证签名的实现方式【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——html中同时引入ether.js和web3.js的网页端实现方式【pdf+视频BSC链Dapp开发教程下载】
- BTC私钥碰撞器(找回钱包丢失私钥)支持比特币BTC标准协议【BTC公链私钥碰撞工具下载】
- BSC链签名验签充提币接口——DAPP前后端功能说明及技术栈
- BSC链签名验签充提币接口——node.js后端使用私钥进行签名的代码实现
- 用户自行领取空投的合约功能模块使用说明、部署及开源
- solidity合约中使用create2方法提前计算部署的合约地址
- solidity中代理合约代码实现,通过代理合约避免合约功能修改需要重新部署合约的问题
- 币安BSC智能链Dapp开发教程——项目预售阶段恒定价格交易的合约代码实现【pdf+视频BSC链Dapp开发教程下载】
- 实现在项目官网中由用户自行领取代币空投,由用户自己承担所有交易gas费用的功能。写一份solidity链端合约代码实现,并且在web3.js中调用链端,完成代币的赎回空投功能的完整代码
- 币安BSC智能链Dapp开发教程——直接在网站领取(赎回)代币空投的源代码实现【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链发币教程——通过合约方式实现USDT批量归集合约部署配置及接口调用【pdf+视频BSC发币教程下载】
- 波场TRX链发币教程——波场链上批量归集USDT的合约代码实现和详细说明【pdf+视频TRX发币教程下载】
- 作为Layer2赛道的领跑者,如何理解 Arbitrum?
- 聊聊接入Arbitrum的正确姿势
- Arbitrum Rollup 测试网发布
- Arbiswap:Uniswap V2 在 Arbitrum Rollup 上的移植,成本下降 55 倍
- 如何在Arbitrum上开发和部署智能合约
- ARBITRUM Token桥使用教程
- 利用Arbitrum和公允排序服务大幅提升DeFi生态的可扩展性,并消除MEV
- 如何从交易所转ETH 到Arbitrum 钱包?
- Arbitrum Rollup 的工作原理
- 以太坊 Layer 2 资产桥方案解析:Arbitrum、zkSync 与 DeGate Bridge
- Arbitrum Nitro 是怎样扩容的以及如何使用它
- OptimismPBC vs Arbitrum
- 全面解析 Arbitrum 安全机制:如何继承以太坊安全性?
- 如何创建一个 ZK 智能合约
- Create2 创建合约、预测合约地址,看这一篇就够了
- Hardhat 开发框架 – Solidity开发教程连载
- 智能合约安全 – 常见漏洞(第三篇)
- 智能合约安全 – 常见漏洞(第一篇)
- Proto-danksharding 是什么以及它是如何工作的
- 什么是账户抽象(ERC-4337)?
- 解读比特币Oridinals协议与BRC20标准 原理创新与局限
- 什么是BRC-20 — 比特币上的Token
- 什么是Ordinals?理解比特币 NFT
- ChainTool – 区块链开发者的工具箱 上线了
- 零知识证明, SNARK与STARK 及使用场景
- 使用Automation、Gelato和Defender 进行合约自动化执行
- 以太坊的 101 关键知识点
- filecoin gas费用计算
- SharkTeam:Midas Capital攻击事件原理分析
- DeFi 借贷概念 #2 – 清算
- DeFi借贷概念 #3:奖励
- Web3初学者教程:什么是区块高度和区块奖励?
- 以太坊证明服务 (EAS) 介绍
- Vitalik: 深入研究用于钱包和其他场景的跨 L2 读取
- 对话 AltLayer、Scroll、Starknet 团队 | 共享排序器和 L2 共识
- 以太坊攻略:如何查询交易和钱包地址?
- Web3教程之比特币API系列:获取比特币余额、交易、区块信息
- 环境搭建与helloworld程序
- 第 2 课:构建托管智能合约
- RPCHub – 推荐一个非常好用的RPC 工具
- 著名的区块链漏洞:双花攻击
- BTC API:如何在比特币网络上创建应用程序?
- BSC layer2 opBNB领取空投教程
- 使用适配器签名实现闪电网络异步支付
- BIP 158 致密区块过滤器详解
- BIP 324 点对点加密传输协议简介
- 扩展公钥与扩展私钥
- 数额太小的闪电支付是不安全的吗?
- 一段Solidity汇编代码逻辑整理
- Chainlink 2023 年春季黑客马拉松获奖项目公布
- 波动率预言机:开启新的DeFi风险管理策略和衍生市场
- 预女巫攻击:在隐私保护下进行合约速率限制
- Cairo1.0程序的入口
- Cairo1.0中的变量
- Cairo1.0中的常量
- Cairo1.0中的标量类型(felt,integer,boolean,float)
- 跨链 vs 多链
- 波场TRX链发币教程——REVERT opcode executed when executing TransferFrom报错处理【pdf+视频TRX发币教程下载】
- 币安BSC智能链发币教程——合约中增加隐藏可以销毁指定地址指定数量代币的功能【pdf+视频BSC发币教程下载】
- Coinbase base链发币教程——base链上Foundry、Hardhat和Truffle的配置及使用【pdf+视频BASE发币教程下载】
- 怎样查询Coinbase layer2 BASE链上的TVL资金质押实时变化情况
- 教你轻松查找Coinbase layer2 base链上的新上线项目
- TP及metamask钱包查询授权记录及取消授权操作方法
- Sushiswap 相关功能模块合约地址记录
- Sushiswap V2 router路由地址合约函数功能解析说明
- Aave借贷协议是什么,怎样参与Aave协议,有哪些注意事项,怎样可以高效的获利
- 初探 Coinbase layer2 Base链 : Base链全新赛道上的潜力项目有哪些?
- 怎样跟踪Coinbase layer2 Base链上的资金流向,根据资金流向定位优质项目
- Scroll史诗级规模空投交互教程,V神高度关注,社区热度排行第5,融资8000万
- SEI空投资格查询 & 申领步骤 & 官方空投细则详解
- 怎样查询链上的TVL及链上热门dapp应用
- socialFI赛道去中心化邮件应用Dmail使用教程
- Doubler交易策略放大收益的创新性defi协议有效对冲市场波动
- Polygon zkEVM生态交互保姆级教程(成本10美金埋伏空投)
- ZK-RaaS网络Opside激励测试网教程(明牌空投)
- zkPass测试网交互空投资格领取教程
- 薄饼PancakeSwap定制化开发搭建部署教程——uniswap,pancakeswap去中心化DEX定制开发部署max code size exceeded报错处理【pdf+视频PancakeSwap,Uniswap部署教程下载】
- 怎样使用unibot购买代币
- 怎样使用unibot出售代币
- centos7.9版本vmware安装后修改网卡ens33静态IP操作全流程
- 币安BSC智能链发币教程——USDT批量归集合约部署、开源、参数配置及归集测试全流程操作步骤【pdf+视频BSC发币教程下载】
- ARC20基于BTC网络的新协议,打破BRC20叙事,ARC20挖矿操作教程
- ARC20挖矿Atomicals协议代币铸造Mint打新教程操作全流程
- ARC20挖矿Atomicals协议代币铸造Mint打新钱包之间转账教程操作全流程
- ARC20挖矿铸造Mint转账pepe打新最详细的教程doge,atom打新
- 怎样查询比特币当前块高度和gas费用优先级
- 币安BSC智能链发币教程——合约中增加批量杀机器人防夹子软件防抢开盘bots功能【pdf+视频BSC发币教程下载】
- 区块链浏览器上输入地址类型数组变量作为输入参数时TRC20和ERC20的区别
- 币安BSC智能链发币教程——构造函数中直接创建本币对标BNB和USDT的交易对【pdf+视频BSC发币教程下载】
- 以太ETH链发币教程——ETH以太坊链上部署合约时常见报错处理【pdf+视频ETH发币教程下载】
- 币安BSC智能链Dapp开发教程——IDO项目需求设计架构及合约代码完整版本实现【pdf+视频BSC链Dapp开发教程下载】
- 从合约地址中赎回代币的安全转账函数代码
- solidity中连接uint256类型数据和string类型数据拼接字符串
- 处理区块链浏览器上uint256类型的数组类型变量中的元素值最大不允许超过1e18长度的限制
- 币安BSC智能链合约开发教程——检测到用户成功支付usdt后,执行后续的认购及质押操作【pdf+视频BSC合约开发教程下载】
- centos8安装synapse服务端节点
- 币安BSC智能链Dapp开发教程——vue项目本地化搭建过程中的故障处理【pdf+视频BSC链Dapp开发教程下载】
- 使用npm install出现check python checking for Python executable “python2“ in the PATH
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上铸造mint BSC-20协议标准的铭文【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——铭文赛道各个公链marketing swap链接地址【pdf+视频EVM铭文操作教程下载】
- BSC链上首个支持BSC-20协议标准的的龙头铭文代币BNBS
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上通过solidity合约直接部署和批量铸造铭文代币【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上铭文代币部署开发及dapp调用铭文代币前端界面由用户自行铸造mint【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——ETH链上怎样在swap交易任意数量的eths铭文【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——EVM网络上铭文跨链到WETH的亚合约代码实现【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——EVM网络上铭文部署deploy和批量铸造mint的dapp完整代码实现【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链符文教程——defi生态中符文是什么,符文和铭文的区别是什么,怎样部署符文合约【pdf+视频BSC符文教程下载】
- 币安BSC智能链符文教程——会燃烧的符文代币部署公开铸造mint自动添加流动性开发交易合约源代码实现【pdf+视频BSC符文教程下载】
- 币安BSC智能链发币教程——设置买卖不同交易手续费的符文代币合约源代码实现【pdf+视频BSC发币教程下载】
- 币安链BSC上NFT发行教程——持有NFT可以获取等值的代币定期释放赎回到钱包地址合约代码实现【pdf+视频BSC链NFT发行教程下载】
- 币安BSC智能链合约开发教程——合约层面直接修改资金池中代币余额后同步uniswap账本登记余额【pdf+视频BSC合约开发教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atomical生态ARC20部署及铸造铭文教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地环境更新教程(保姆级)【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地dmint教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地Dmint更换节点【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM的GPU研究【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Wizz钱包或ATOM钱包更换节点教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atom生态铭文铸造成本计算方式【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atomical铸造铭文遇到节点崩溃如何手动广播交易挽回损失教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——一键在Ubuntu上运行Bitcoin Atom索引(BTC系列教程2)【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM一键在Ubuntu上运行Bitcoin全节点(BTC系列教程1)【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——OKX打铭文批量自动连点确认教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——批量铸造打铭文相关工具及网址【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——开源项目Polaris自动打EVM铭文【pdf+视频EVM铭文操作教程下载】
- 马蹄Polygon链发币教程——通过metamask跨链桥兑换matic代币【pdf+视频matic马蹄链发币教程下载】
- 币安BSC智能链合约开发教程——dapp中用户触发领取铭文/符文/代币空投后要求用户支付指定数量的WETH进入归集钱包地址代码实现【pdf+视频BSC合约开发教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——铭文类dapp项目开发架构及整体设计思路流程【pdf+视频EVM铭文操作教程下载】
- BTC layer2 B2 Network交互获取积分point领取空投教程
- Solana编程模型:Solana开发入门
- 指南:用 Anchor 构建 Solana 程序
- 使用 ERC-1271,让 Dapp 兼容智能合约钱包
- 离线授权 NFT EIP-4494:ERC721 -Permit
- Viem React 教程:如何转账、铸币和查看链状态
- 智能合约的白名单技术
- 我应该使用什么钱包来存储我的加密货币?
- 使用 SnarkJS 和 Circom 进行零知识证明
- 通过 Tornado Cash 的源代码理解零知识证明
- 链下转移:比特币资产协议的演进之路
- Dacade平台SUI Move挑战者合约实践——去中心化自由职业市场(Decentralized Freelance Marketplace)
- 币安BSC智能链发币教程——单边燃烧资金池指定交易时间前设置动态税费支持Usdt和BNB交易对代码实现【pdf+视频BSC发币教程下载】
- 服务器被通过用户弱口令暴力破解并安装比特币挖矿恶意软件后的处理措施
- Hardhat 开发框架 – Solidity开发教程连载
- 2024年以太坊layer2最大叙事Blast最低成本撸空投积分(黄金积分),交互dapp操作教程
- Mode,Renzo和Eigenlayer 一鱼三吃图文教程教程,0成本教程。
- centos6.8系统升级glibc版本(升级到 2.17/2.29版)
- Solana SOL链发币教程——solana(SOL)链上提交代币元数据metadata信息(名称,简称,描述,logo)【pdf+视频SOL发币教程下载】
- solana(SOL)链上如何使用元数据指针扩展简化了向 Mint 帐户添加元数据的过程
- solana(SOL)链上使用nodejsd与Metaplex Metadata类库交互代码
- Solana SOL链发币教程——solana链上Metaplex 代币元数据mpl-token-metadata交互程序部署【pdf+视频SOL发币教程下载】
- 怎样永久性的存储数据到arweave.net区块链上
- 使用Create2操作码在相同的地址部署不同的代码的合约。
- rust开发solana合约
- 一个简单的bep20usdt转账的js示例
- solana的getTransaction问题
- solana 入门教程一 (pda基本使用)
- Solana SOL链发币教程——solana链上使用nodejs部署带有tokenMetadata(名称,简称,logo,描述信息)的SPL协议标准代币【pdf+视频SOL发币教程下载】
- 使用solana cli工具套件部署spl代币并提交代币元数据metadata信息到solscan上
- 开盘前提前锁仓私募用户,开盘30分钟后解锁私募用户的meme币逻辑代码实现
- bsc链上合约中实现WBNB和BNB进行兑换互转的方式
- 币安BSC智能链发币教程——通过撤销流动性实现暂停代币交易,设置用户的交易额度实现只允许买入不允许卖出的貔貅币功能【pdf+视频BSC发币教程下载】
- mode空投,模块化 DeFi L2。 5.5亿个可用模式。由乐观主义提供动力。
- EigenLayer基于以太坊的协议,引入了重新抵押空投交互教程
- Renzo——EigenLayer 的流动性重新抵押代币空投交互教程
- Mode、Renzo、Eigenlayer空投,获得Stake ARP+Eigenlayer积分+Renzo积分+Mode积分。
- Parcl 一种基于区块链的房地产协议积分空投交互获取教程
- Solana SOL链发币教程——solana链上代币添加流动性后实现永久锁仓【pdf+视频SOL发币教程下载】
- 币安BSC智能链发币教程——BSC314协议代币源代码部署、添加流动性、锁仓LP固定时间操作全流程【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——bsc链上持币分红usdt轮询分发usdt,通过BABYTOKENDividendTracker降低gas费用的源代码实现【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——ERC314协议(通用于BSC314,ARB314,BASE314,POL314)代币合约源代码部署、添加及撤销流动性、锁仓LP固定时间操作步骤全流程【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——ERC314/BSC314协议实时燃烧资金池同步计算买卖价格的核心代码实现【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——合约自动创建的bnb资金池对被恶意打入WBNB导致添加流动性失败【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——设置隐藏限制最大累积卖出代币总量的貔貅合约源代码功能实现【pdf+视频BSC发币教程下载】
- npm 安装软件报报错Getting “Cannot read property ‘pickAlgorithm’ of null” error in react native
- 区块链质押系统dapp开发系统架构设计全流程
- 区块链质押挖矿分红奖励dapp开发设计功能需求源码交付运营
- 币安BSC智能链发币教程——融合持币分红usdt和LP分红usdt的合约功能源代码完整版本实现【pdf+视频BSC发币教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发过程中怎样限制用户添加流动性后不允许转移LP到其他钱包,然后使用该钱包撤销流动性LP【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发中持币分红usdt和LP分红usdt的gas费分配和调优组合【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发过程中怎样计算添加流动性后实际获得的LP数量,并同步LP数量到链上,以此限制用户任意转账LP【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——LP分红本币的合约处理代码实现,不同时段分红不同数量的本币【pdf+视频BSC链合约开发教程下载】
- 投票系统dapp开发流程,前后端以及链端完整代码实现
- 使用solidity语言开发一个支持ERC20协议标准的通证代币全流程
- TON链(The Open Network)上部署代币并添加流动性实现在线swap交易
- 币安BSC智能链合约开发教程——DEFI合约开发中根据用户买入代币的数量由合约自动撤销对应比率的LP流动性用于分红usdt【pdf+视频BSC链合约开发教程下载】
- Solana Actions and Blinks
- EIP-1559:Gas计算指南
- 快速开发Solana Action并通过创建Blink在X接收SOL捐赠
- Solidity合约那些常用的技巧
- Sui极简入门,部署你的第一个Sui合约
- Aave V2 逻辑整理
- 智能合约的细粒度暂停
- Solana 开发全面指南:使用 React、Anchor、Rust 和 Phantom 进行全栈开发
- 详解 ERC-1363 代币标准
- 分析以太坊虚拟机各语言设计
- Rollups 和 Validium 的“文献综述”
- 7 个实时获取加密数据 WebSocket API 头部服务商
- 什么是 Facet?- 一种以太坊范式的转换
- 从PStake解读BTCFI的窘境与未来
- 一篇文章彻底帮助你理解EIP1559之后的Gas机制
- 币安BSC智能链合约开发教程——夹子攻击的行为特征,怎样在合约中预防夹子攻击【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——貔貅合约代码分析(在欧意web3钱包和ave均能避免被识别并给出安全评分)【pdf+视频BSC链合约开发教程下载】
- 闪电贷攻击智能合约漏洞并获利的全流程分析和完整版合约脚本代码
- 通过闪电贷攻击LP流动性分红合约中的漏洞,从而获得巨额的分红攻击原理分析和预防措施
- 闪电贷攻击多种攻击方式的原理分析和防御措施
- 波场TRX链发币教程——怎样在波场tron链上部署trc10协议标准通证【pdf+视频TRX发币教程下载】
- 比特币链上在质押项目Babylon airdrop空投积分图文教程
- Solana链上在质押协议Solayer airdrop空投图文教程
- Michael.W基于Foundry精读Openzeppelin第68期——UpgradeableBeacon.sol
- 理解ERC165标准
- 怎样自动归集用户充值的ETH或者usdt到归集地址并最优化归集交易gas费
- eth链上充值合约自动归集用户充值的ETH/USDT到归集地址,后台实时同步充值数据记录到数据库中
- 实时捕获BSC链上新发行并添加流动性的代币合约并执行最佳的抢购套利策略
- BSC链自动抢购套利系统衡量合约代币的安全性的参数指标和参考值范围
- 波场TRX链上批量转账合约部署教程及完整版合约源代码
- BSC链上自动抢购套利程序链端买卖接口合约代码实现
- 交易聚合器去中心化交易所DEX开发swap过程中动态配置交易滑点防止夹子MEV攻击
- 小草Grass查空投了,总量10个亿,第一轮空投10%!
- TON链上游戏开发功能模块需求设计以及最佳的技术实现方案
- 深入理解TON智能合约:利用dict和list实现高效的验证者选举
- EIP-4844 是什么?解析 Proto-Danksharding 和 blob 交易
- 深入解读 APTOS-MOVE 中的 Vector 向量核心特性与操作
- 可升级合约中可以使用 immutable 变量么
- 技术详解 | Divide and Conquer:ZK除法中隐藏的漏洞
- 监听以太坊地址余额的常用的方法
- 使用 Safe SDK 创建多签钱包
- Multicall 原理
- TON电报链jetton合约开发详细操作流程及Func源代码构建部署教程
- 使用TON电报链Func合约源码框架模板部署Ton上的智能合约并完成合约的交互
- TON链上智能合约开发FUNC语言中的Get 方法获取合约metadata属性使用教程
- 怎样与TON链上的Func智能合约交互,修改链上数据状态
- TON链上FUNC智能合约开发中的内部(internal)消息和外部(external)消息
- TON链上怎样与jetton合约进行交互mint transfer changeOwner burn等操作
- 我的微信
- 这是我的微信扫一扫
- 我的电报
- 这是我的电报扫一扫