作者: XinFin
编译: ChainCatcher
升级涵盖安全问题和内存泄漏问题的 XinFin(XDC) 网络的可行性。
XDC 网络是一个全球性的、开源的、授权的权益证明共识网络 (XDPoS),它支持混合中继桥、即时块终结性以及与 ISO 20022 金融消息传递标准的互操作性。该网络的混合(私有/公共)架构旨在支持贸易融资和资产标记化中的机构使用。 XDC 网络具有可互操作的智能合约、每秒 2,000 笔交易和以太坊虚拟机兼容性,为企业和独立社区贡献者提供可扩展的基础设施。
Apothem Network (Testnet) 是智能合约开发人员在部署到主网之前用于测试智能合约和协议升级的网络。对 XinFin XDC Network 区块链的任何升级首先在 Apothem 测试网络上实施,Apothem 测试网络是 XinFin XDC 网络的模拟,让开发人员和其他社区成员有机会在涉及实际资产之前测试系统。
现在让我们讨论一下团队修复了哪些问题,这些问题将出现在 Apothem 网络上。
internal/ethapi: EstimateGas and Call handle revert 错误
提到的第一个问题是,XDC 区块链在发送没有任何钱包/接口(metamask、XDCpay、Remix…)的 tx 之前没有显示恢复错误。在发送交易之前无法看到错误。
在当前版本的 XDPoSChain 中,它总是返回消息:\"gas required exceeds allowance or always failing transaction\"。如果当 metamask 或其他客户端调用方法 eth.estimateGas 时,solidity 合约功能恢复。因此,用户和钱包程序都无法预测何时会发生还原或在发生还原时收到还原消息。这是 xcantera 投诉中的主要问题。最新的 Pull Request 解析并返回 eth.call 和 eth.estimateGas 的回复消息/原因。此 PR 在专用网络上进行了测试,现在将在 Apothem 测试网上进行测试。
代码:https://explorer.apothem.network/address/xdc41cfa4c7c764c39237a765788eb0596c4b7a05ba#readContract
要求:
curl -X POST -H \"Content-Type: application/json\" https://rpc.apothem.network -d '
{
\"jsonrpc\":\"2.0\",
\"方法\":\"eth_estimateGas\",
\"参数\":[
{
\"来自\":\"0xD4CE02705041F04135f1949Bc835c1Fe0885513c\",
\"到\":\"0x41cfa4c7c764c39237a765788eb0596c4b7a05ba\",
\"数据\":\"0x5524107700000000000000000000000000000000000000000000000000000000000000a\",
\"值\":\"0x0\"
}
],
\"编号\":1
}'
回复
{
\"jsonrpc\":\"2.0\",
\"编号\":1,
\"错误\": {
\"代码\":-32000,
\"消息\":\"所需的气体超过限额或总是交易失败\"
}
}
现在,用户可以看到此修复程序将首先在 XDC Apothem 网络上运行。
合并链接:https://github.com/XinFinOrg/XDPoSChain/pull/200
内存泄漏通过减少可用内存量来降低对等方的性能。最终,在最坏的情况下,可能会分配过多的可用内存,并且系统或设备的全部或部分停止正常工作,应用程序失败,或者系统由于抖动而大幅减慢。
内存泄漏问题是基于已合并的原始 v1/eth 代码,它将与最新合并一起在 XDC Apothem 网络上运行。