【发布时间】:2023-02-05 00:50:44
【问题描述】:
我很困惑在什么情况下我应该将功能逻辑放在智能合约的链上?或作为 ethers.js/web3js 等在前端脱链。
在 web2 中,我认为无论将功能放在前端还是后端,它们的性能都是一样的。
这是一个链上的例子:
// give an address bonus token if its current balance is more than 0.
// Maximum is 100.
function bonus(address anyAddress) public {
if (balanceOf(anyAddress) >= 0 && balanceOf(anyAddress) < 100) {
_mint(anyAddress, 100 - balanceOf(anyAddress));
}
}
显然,我可以使用前端逻辑通过在链上调用 _mint() 和 balanceOf() 函数来编写 a 函数,这可以执行相同的结果,并且可能会节省 gas。
那么,为什么要把打包好的函数上链呢?
【问题讨论】:
标签: ethereum blockchain solidity smartcontracts web3js