通常,NEO dApp的后端在分布式网络上运行,使用一个或多个智能合约为其提供所需的后端逻辑。用户在客户端做出某个动作就会触发对智能合约的调用并收到回复。
但是,如果你想监控智能合约要怎么做?如果你想知道是否正在调用智能合约,或者用户是否已对智能合约执行了操作(例如注册新资产),该怎么做?如果你希望开发一个应用程序,以响应通过智能合约执行的任何操作,该怎么做?
通过ChainSentinel,我们提供的服务允许你通过创建webhook来监控NEO区块链上任何智能合约发出的每个事件,该webhook将使用该事件中包含的数据连接所选端点。这样,你几乎可以实时更新应用程序(或dApp)来自NEO区块链上的事件数据,而无需在最终运行网络节点。通过使用webhooks,您的应用程序只需要一个端点来处理简单的HTTP POST请求,而无需进一步集成。
如何使用ChainSentinel
使用ChainSentinel很容易。登录后,你将可以访问仪表板。在这里,您可以添加新的webhook来监听NEO测试网或主网上的智能合约。为此,您只需要插入要监听的合约的哈希值,即当合约和运行合约的网络发出事件信息时,你希望服务调用的端点。
为了帮助那些只想测试服务的开发人员,可以使用Flask Python框架的示例端点。(https://github.com/blocksmithtech/chainsentinel-endpoint-example)
ChainSentinel 还提供了一个文档页面,该页面定期更新,其中包含以下步骤。
验证端点
在alpha阶段,当你添加新hook时,该服务将尝试通过发送带有身份验证请求的POST请求来验证您的端点。请求包含JSON数据,该数据将请求标识为身份验证请求和随机数:
要进行身份验证,您的端点必须使用以下数据回复此请求,从而授权服务通过进一步的请求联系端点:
接收事件数据
你的新hook现在应该已成功创建,显示在仪表板中,并且你要接收的合同发出的新事件将被发送到所选端点。事件数据将在POST请求的正文中发送,你的端点应使用200有效代码进行回复。如果服务无法传递请求或端点回复错误代码,则将重新安排该请求,稍后将尝试新的传递。
事件数据的结构如下:
下一步计划
在不久的将来,我们将实现Web Sockets接口和API,使你的前端应用程序可以访问实时信息,而无需后端端点。
ChainSentinel处于alpha阶段,因此我们正在寻找想要尝试测试此服务并给我们一些反馈的开发人员,所以请随时向我们发送电子邮件hello@blocksmith.tech!
原文翻译自:https://medium.com/blocksmithtech/chainsentinel-your-eyes-on-the-neo-network-5b01008c8b89
网友评论