这是Argon协议的 Node.js 客户端(https://argonprotocol.org 请检查url=值 (帮助)) (中文(简体) ). 其内容如下: 核心特征:
- 一个打字程序为Argon协议生成了 RPC 客户端 .
- 用于保护工资免受通货膨胀或通货紧缩的“保护者”类别 阿贡.
安装
npm install @argonprotocol/mainchain
客户端使用
要创建客户端, 您可以使用 getClient(host) 函数。 这个会回来的
输入到 argon apis 的客户端对象.
工资保护者
如果你想保护工资免受阿尔贡的通货膨胀或通货紧缩的影响,就有一个 WageProtector
可以使用的类。 你可以一次使用它:
const { WageProtector } = require('@argonprotocol/mainchain');
const basePrice = 1_000_000n; // 1 Argon
const protector = await WageProtector.create(client);
const protectedPrice = protector.getProtectedWage(basePrice);
或者您可以订阅更改( 例如, 跟踪一系列有效的 cpi 调整 ):
const { WageProtector } = require('@argonprotocol/mainchain');
const basePrice = 1_000_000n; // 1 Argon
const { unsubscribe } = await WageProtector.subscribe(client, protectedPrice => {
console.log(`Protected price: ${protectedPrice.getProtectedWage(basePrice)}`);
});
每个 WageProtector 例如,有Argon目标价格和美元价格的细节
创建.
interface IArgonCpiSnapshot {
// The target price of the argon as a fixed point number (18 decimals)
argonUsdTargetPrice: bigint;
// The current price of the argon as a fixed point number (18 decimals)
argonUsdPrice: bigint;
// The block hash in which the cpi was finalized
finalizedBlock: Uint8Array;
// The tick that the cpi applies to
tick: bigint;
}
电灯同步
当构建信标同步或拖曳交易时通过执行源 :
const transactions = await getNextEthereumBeaconSyncTxs(client, beaconApiUrl, {
executionRpcUrl,
});
Gloas轻客户头包含执行块散列而不是有效载荷头. 这个
执行 RPC 提供匹配的标题字节,客户端对照散列检查.
最初的Gloas有效载荷头反应可以省略执行源. 历史标题
升级到只散列格式也需要它. getEthereumBeaconSyncBootstrapTx 接受相同的建议
第三辩相.
现有核查国与Gloas一起迁移。 一旦发现它的版本和时代,
治理可以称为 setGloasFork 作为根,而不重设检查站、委员会或锚.
这一呼吁保留了更早的叉子,并拒绝对Gloas历史的修改.
网关活动流量证明
发现,存储-目击捕捉,接力准备是单独的操作. Apps自己的缓冲, 排程、RPC倒置和提交:
- 打电话
discoverMissingGatewayActivityLocators(...)附有最终执行块号+ 最小的网关活动不关你的事。 如果您已缓存已最后确定定位器, 请通过afterLocatorIndex只获取新后缀. - 在你收集时 缓存在应用程序中的最后定位块.
- 若为
supportsGatewayActivityStorageProofs(client)是真的,打电话captureGatewayActivityStorageProofs(...)对最近一个被埋设了地雷的行刑区 仍然有状态。 此操作不需要Argon客户端或保留锚. 它捕捉到 在一个选中位置eth_getProof要求并核实它们与该块的状态根. - 缓存应用程序中返回的丰富定位器记录 。 他们的证人群不能最终确定 然而;将最终定位器记录分开保存,以便在重置后可以替换证人.
- 打电话
buildGatewayActivityProof(...)包含存储运行时间的缓存抓取, 或 plain 发现只接收运行时间的定位器 。 它倾向于在支持时存储,选择 最接近保留了锚,并附着了有界限的祖先路径. 存储中继准备 而不是寻找证人、日志或合同状态 每个载荷都证明有一个完整的定位器. - 向
proveGatewayActivity(...)和储存的有效载荷(由locatorIndex内payload.proof改为:proveGatewayActivityStorage(...)保留任何deferredLocators为了以后的尝试。 替换包含在recaptureLocators使用一个 新的行刑区块:他们成为孤儿,或者在被保留锚的祖先束缚之外.
用于明确的证明选择,使用 buildGatewayActivityReceiptProofPayloads(...) 已发现
定位器或 buildGatewayActivityStorageProofs(...) 与俘获的定位器。 能力是
独立; 运行时间可以接受任一格式.
const captures = await captureGatewayActivityStorageProofs({
executionClient,
executionBlock: await executionClient.getBlock({ blockTag: 'latest' }),
gatewayAddress,
locators,
});
// Persist captures in the app, then prepare relay transactions when anchors become available.
const result = await buildGatewayActivityProof(client, {
executionClient,
gatewayAddress,
locators: captures,
});
储存证明包括全部定位器的活动记录及其 activityRootSeed,即使当
最后证明的"非斯" 属于该定位器。 仅 payload.activities 财务报告和审定财务报表
payload.gatewayActivityNonceRange 描述新应用的后缀。 没有靴子调用或存储
需要最后一个位置的散列.
仅收件包含并不能使日志成为下一个网关活动 。 不可解码或不相关 网关日志被拒绝, 不缺少同步; 解码的活动必须拥有下一个 毗连无相. 与本地商业状态相冲突的下一个有效活动可以暂停同步 . 在修复该状态后,一个操作员可以从当前非ce中解禁并重建. 存储 证书仍然认证了全位定位符,但不再使用它已经使用的前缀。 若为 在完成最后活动后, 过期清理失败, 仅靠闲置不会重试 : 之后在经过认证的块边界上成功处理的活动块重新清理.
被推迟的定位器正在等待失踪的前辈或执行锚. 一个定位器 超过运行时的验证能力是配置/支持错误,而不是延迟工作:等待 不能让它适合。 这种流动针对合同的每块128个活动上限。 托盘 完整性检查覆盖了硬盖、最大大小的事件、编码的证明字节和提供者 重量.
客户端库不保存长寿定位器或证人缓存. App -side代码应该拥有它, 范围为最后一个已证实的网关定位器与最新收集的已定稿的网关定位器之间的范围 以利亚街 保留尚未停靠 Argon 的定位器,并通过缓存 定位器进入网关验证大楼 和行刑长回填计划.