NFT 交易所系统开发跨链技术
跨链互操作性有利于 Web3 不同生态的集成,同时对于连接现有 Web2 基础设施和 Web3 服务有至关重要的作用。通过启用跨链智能合约,跨链互操作性解决方案减少了生态系统的碎片化,并释放了更高的资本效率和更好的流动性条件。NFT 交易所系统开发询 13z 李 4277 森 z558,NFT 交易平台 Opensea 开发技术。
DeFi 的无需许可的可组合性催生了越来越复杂的应用程序,这些应用程序允许开发人员将不同的 dApp 组合成一个结构,该结构可以实现的效果超过其各部分的总和。然而,数百个不同网络的可组合性受到显着阻碍,因为智能合约只能与同一网络上的其他合约本地组合。
如果一个应用程序想要跟随用户并在快速变化的多链环境中保持竞争力,它必须部署在多个平台上,导致流动性碎片化和用户体验下降。此外,单个 dApp 部署会占用宝贵的开发资源,否则这些资源可能会用于提升应用程序的业务逻辑。
在多链环境中,每个 dApp 实例都是一组孤立的智能合约,与其他区块链没有连接。
跨链互操作性使开发人员能够构建一个原生的跨链应用程序,其中一个统一的 dApp 可以部署在多个不同区块链上,而不必在不同的网络上部署多个单独的版本。
跨链智能合约由部署在多个网络中的多个智能合约组成,创建一个统一的 dApp。
NFT 跨链桥是如何做到的?
NFT 桥适用在所有的鼓励的链之间来回传送 NFT,与此同时保存其数据库。当一个 NFT 被迁移出它发源链时,会出现这样的情况:
1)NFT 被锁定在 NFT 桥区块链智能合约中;
2)一个等效电路产品的包装 NFT 被锻造到总体目标链里的相对应 collection 中;
3)那个被包装 NFT 同名的,看上去和原先的一样,个人行为也与链里的别的 NFT 完全一样,在 EVM 链上,包装 NFT 是 ERC721 货币,在 Solana 上,他们带有 Metaplex 数据库的 SPL 货币,在 Aptos 上,它们都是 Aptos 货币标准化的案例。
除开名称及外型以外,被包装 NFT 的独特之处取决于可以把它们推送回初始链并开启初始 NFT。这就意味着,比如,源于 Aptos 的 NFT 能够桥收到以太币,之后在 Opensea 上售卖,然后再由新使用者转到 Aptos。
在 NFT 数据存储中,我们可以看到 solmate 等常规实现都使用了 mapping(uint256=>address)internal _ownerOf 将单个 tokenId 与持有者对应。但 ERC721A 是对批量铸造进行特殊优化的,开发者认为在批量铸造过程中,用户持有的 NFT 的 tokenId 往往是连续的。
_ownerOf 记录 tokenId 与持有者的关系
_balanceOf 记录持有人所持有的 NFT 数量
其铸造方法定义如下:
function _mint(address to,uint256 id)internal virtual{
require(to!=address(0),"INVALID_RECIPIENT");
require(_ownerOf[id]==address(0),"ALREADY_MINTED");
//Counter overflow is incredibly unrealistic.
unchecked{
_balanceOf[to]++;
}
_ownerOf[id]=to;
emit Transfer(address(0),to,id);
}
通过此函数,我们更新了_ownerOf 和_balanceOf 实现用户铸造 NFT 的功能。我们可以发现用户每次铸造 NFT 都需要更新_ownerOf 和_balanceOf 映射。众所周知,在操作码 gas 消耗中,更新存储需要消耗大量 gas。如果用户批量铸造,会在此过程中消耗大量 gas。
评论