面向开发者 / 从这里开始
面向开发者的 Pickle Chain
一条以太坊 Layer 2:它立即执行你的交易,交回一份带签名的预确认,并围绕它封存一个形状普通的以太坊区块。gas 以 ETH 支付,标准的 eth_* 表面足以支撑 MetaMask、Foundry 和 Hardhat。
它是什么
Pickle 运行一个定制的 Rust 排序器,其 revm 固定在 Cancun。当你发送一笔交易时, 它立刻执行:eth_sendRawTransaction 会一直阻塞到结果存在,而不是返回一个将会 有结果的承诺;在迷你区块约 10 毫秒的调度目标之内就能拿到回执。包裹这些迷你区块的、形状与 以太坊一致的区块以约 250 毫秒的调度目标封存,而钱包和浏览器当作确认的正是这个区块。
从工具链的角度看,这条链在最要紧的地方都很普通:本参考所记录的公开测试网上 chain ID 为 78270,用 ETH 付 gas,区块 gas 上限 30,000,000,标准 JSON-RPC,以及 Cancun 形状的区块头。forge、ethers、viem 和 MetaMask 都能 对着它工作。它在要紧的地方也确实不寻常,而那些差异有自己的一页,而不是这里的一段话。
它不是什么
完整陈述的信任模型
- Ordering: one sequencer orders every transaction. It can reorder and it can censor, and there is no forced-inclusion path from Ethereum.
- Liveness: if the sequencer stops, mini-blocks stop and the chain halts for new execution. Replicas continue to serve derived history. The sequencer key is held in an on-chain registry and can be rotated, effective the next block.
- Correctness: there are no fraud or validity proofs. Any replica can detect a divergence between the published data and the committed block hash, and halts when it does; nothing on-chain arbitrates it.
- Data: everything needed to rebuild the chain is on Ethereum or committed to from Ethereum. A user relies on the operator's honesty, plus the fact that the data needed to check it is public.
- Bridge: the messenger is a trusted key. It cannot forge or replay a message, but it can delay. Batcher and messenger keys are distinct, enforced at startup.
Pickle 只把自己呈现为一条单一运营者的链,而且本文档不发布任何吞吐量数字。上面两个节律数字 都是调度目标,也就是区块生产者力求达到的间隔,既不是延迟保证,也不是关于吞吐量的说法。封存 者会跳过一个迟到的节拍,而不是追赶。
它也不是完整的 EVM 等价,而且这些缺口被发布在它们自己的一页上,而不是留给你在运行时发现。简短版 是:状态读取忽略区块参数,没有归档,并且 error.data 从不被填充,所以你的库 没法解码自定义错误。
它的形状
一笔交易要经过三层,而知道自己正在观察哪一层,是让这条链变得可读的大部分原因:
- 执行:立即发生,与你的 RPC 调用同步。revert 在这里就已知晓。
- 预确认:一个由排序器签名的迷你区块,约 10 毫秒的调度目标。你的回执已经 存在,而它的
blockNumber仍然是null。 - 确认:一个 EVM 区块,约 250 毫秒的调度目标。此时
blockNumber和blockHash都被填上了。
最终性是第四个、独立的事件:它发生在所在批次于以太坊上结算之后。本站不把这个词用于其他任何 东西。
你的第一次调用
公开测试网在 https://rpc.picklechain.xyz 上应答。全文的示例都把它 写成 $RPC_URL,这样同一条命令原封不动地也能对着你自己的节点运行:
export RPC_URL=https://rpc.picklechain.xyz
curl -s "$RPC_URL" \
-X POST -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# {"jsonrpc":"2.0","id":1,"result":"0x131be"}0x131be 就是 78270。这次调用本身不需要密钥、不需要账户,除了一个内容类型之外 也不需要任何请求头:节点不做任何认证,谁能连上就回答谁。测试用 ETH 来自水龙头,每个地址每 24 小时领取一次,而且状态 可能在不预先通知的情况下被重置。
接下来去哪里
- 网络参数:那些常量,汇成一张表。
- JSON-RPC 参考:全部 61 个已注册的方法。
- 与以太坊的差异:在你调试客户端之前先读这一页。
- 历史与保留:在你写索引器之前先读这一页。
- 现实世界资产:价格层,怎么拿到资产列表,怎么读取一个价格。
- 应用 API:第一方的 HTTP 表面,它们是便利设施,不是这条链。
- 代币列表与地址标签:一个代币如何获得它的 logo 和已验证标记,一个合约如何获得它的标签:提一个 pull request。
- 浏览器:节点所不是的那个归档。
- 水龙头:凭一个粘贴进去的地址发放测试 ETH 和 测试 PKL。
这里没有一页会打印合约地址,这是刻意的
一次指向无代码账户的 EVM CALL 会成功。一笔被路由到什么都没 部署的地址上的兑换不会 revert:它会拿走你的 ETH 并报告成功。所以在你向别人给你的任何地址 发送任何东西之前,先用 eth_getCode 核对它。
第一方应用不会把地址编译进去,而是在运行时从链上解析它们用到的每一个地址,价格层记录了怎么做。浏览器展示一个地址上部署了 什么;它不验证任何源码,也不发布 ABI。