撰文:李厚尧 (BD Lead)、许博远 (Tech Lead)、马育麒 (Community Lead)
这不会是一段轻松的旅程,但我们相信这是一段重要的旅程。我们必须抓住这一刻,共同努力,将平衡从垄断转向去中心化的未来。 - Yaniv Tal,The Graph Project Lead
我们正式宣布 EthSign 已与 The Graph 合作并集成以进行实时数据查询。 本文将概述 The Graph 以及 EthSign 为何使用 The Graph。 在 此处 了解如何以开发人员身份使用 The Graph

什么是 The Graph?
The Graph 是去中心化网络的索引和查询层。开发人员构建和发布开放 API,称为 Subgraphs,应用程序可以使用 GraphQL 查询这些 API。 Graph 目前支持对来自以太坊、IPFS 和 PoA 的数据进行索引,更多网络即将推出。迄今为止,大约 17,000 名开发人员已为应用程序部署了超过 11,000 个 Subgraphs,例如 Uniswap、Synthetix、Aragon、Gnosis、Balancer、Livepeer、DAOstack、AAVE、Decentraland 等。
如果您是构建应用程序或 Web3 应用程序的开发人员,您可以使用 Subgraphs 从区块链索引和查询数据。 Graph 允许应用程序在 UI 中高效地呈现数据,并允许其他开发人员也使用您的 Subgraph!您可以部署 Subgraphs 或查询 Graph Explorer 中的现有子图。 The Graph 欢迎您成为 The Graph 主网上的索引器、策展人和 / 或委托人。
EthSign 集成 The Graph
在 EthSign 2.0 中,我们严重依赖 event 来跟踪智能合约的状态。想知道您发起了哪些文件签名?我们需要查询;想知道哪些文件与您共享?我们需要查询;这种对 event 的过度依赖在本地测试期间不是问题,但一旦部署到公共网络上就证明是致命的。我们的智能合约加载速度非常慢,而且部署时间越长,情况就越糟。
因此,解决方案是要么重构智能合约,以便检索当前状态不再依赖于扫描过去的 event,要么使用第三方索引服务。最后,我们采用了两种方法。虽然我们重组了我们的智能合约以明确跟踪其当前状态作为备份,但事实证明 The Graph 是一项出色的服务,非常适合我们的用例。我们没有联系区块链网络并等待长达 10 秒的响应,而是联系 The Graph 并获得即时响应。
除了令人难以置信的索引性能外,The Graph 强大的映射系统使我们能够在检测到某些 event 后放置自定义触发器。它的 GraphQL 实体和查询机制也使检索数据变得容易和高效。整个体验是如此流畅,以至于我们决定使用 The Graph 来跟踪 EthSign 的当前状态,包括特定用户的所有合约(本质上是文档,不要与 EthSign 智能合约混淆),每个合约的状态,以及每个合约的历史。
例如,这是一个在 The Graph 中被表示为 GraphQL 实体的合约:
type Contract @entity {id: ID!initiator: User!name: Bytes!birth: BigInt!expiration: BigInt!doc_storage_id0: Bytesdoc_storage_id1: Bytesmeta_storage_id0: Bytesmeta_storage_id1: BytestotalSigners: Int!currentSigners: Int!currentSignedSigners: Int!currentSignedSignersList: [User!]!status: Int!events: [Event!]!}当发出 LogSignedDocument 的 Solidity event 时,The Graph 会自动执行以下更新特定合约当前状态的代码:
export function handleLogSignedDocument(event: LogSignedDocument): void {let ethsignEvent = new Event(event.transaction.hash.toHex() + "-" + event.logIndex.toString());ethsignEvent.type = "LogSignedDocument";ethsignEvent.blockNumber = event.block.number;ethsignEvent.timestamp = event.block.timestamp;ethsignEvent.contract = Contract.load(event.params.documentKey.toHexString()).id;ethsignEvent.involvedParty = event.params.signer;ethsignEvent.save();let ethsignContract = Contract.load(event.params.documentKey.toHexString());let events = ethsignContract.events;events.push(ethsignEvent.id);ethsignContract.events = events;++ethsignContract.currentSignedSigners;if (ethsignContract.currentSignedSigners == ethsignContract.totalSigners) {ethsignContract.status = 3;}let currentSignedSignersList = ethsignContract.currentSignedSignersList;currentSignedSignersList.push(event.params.signer.toHexString());ethsignContract.currentSignedSignersList = currentSignedSignersList;ethsignContract.save();}正如我们所见,The Graph 为使用无服务器云功能的开发人员提供了令人难以置信的熟悉体验,并充当区块链元数据的 L2 解决方案。
一致的愿景
EthSign 电子签名平台的一些最强大的功能是跨链集成和无缝的多链用户体验。 EthSign 的智能合约部署在以太坊和许多与 EVM 兼容的区块链上( Avalanche、BSC、Polygon、Fantom、Moonbeam 等)。 The Graph 也是如此。 The Graph 已经扩展到许多区块链,并将索引开放数据带到 Ethereum、Polygon、NEAR、Polkadot、Celo、Avalanche、BSC、Fantom 和许多其他区块链。 就像 The Graph 一样,EthSign 将继续这种跨链愿景,这就是 Web 3 的未来。

在 此处 访问 EthSign 您的意见对我们很重要,提供反馈 加入 EthSign Discord 社区
21Shares携手法国兴业银行,强化德国及东欧市场加密ETP流动性
CME集团6月30日推出现货报价期货:比特币、以太坊及标普500等长达5年持有
eToro推出加密资产转账与兑现功能:比特币、以太坊可无缝投资多资产
nxtAssets GmbH携手SIX推出比特币与以太坊ETP:加密资产交易总数达398
Clearstream携手Crypto Finance推出加密资产托管服务,德意志交易所集团引领机构投资者新风潮
西班牙BBVA获批推出比特币和以太坊交易服务,零售客户可通过手机银行直接管理加密资产
Bybit遭遇重大黑客攻击,15亿美元数字货币被盗
Bybit遭遇安全漏洞,1.4亿美元以太坊代币被盗,市场反应激烈
Bybit交易所遭黑客攻击,14亿美元ETH被盗,资金安全隐患引发行业关注
以太坊 ETF 在美国上市首日交易量达 10 亿美元,占比特币交易量的 23%
现货以太 ETF 将于今日在 SEC 最终批准后开始交易
芝商所推出以微欧元计价的比特币和以太坊期货
Visa (NYSE:V) 設想在以太坊網絡上進行自動支付
MetaMask“Portfolio Dapp”新增跨链桥服务
0xScope:Alameda以太坊上627个地址总资产约1亿美元
Paradigm:BTC和ETH看跌期权的需求重新出现
Chainlink与MVGX合作探索加密碳交易
币安明日将进行约两个小时的以太坊钱包维护,届时将暂停ERC-20存取款
The Block研究副总裁:Alameda链上余额较10月1日减少47%,大部分资金存入FTX和Genesis
Circle将于2023年上半年将Euro Coin引入Solana



