首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是最好的方式随机选择的薄荷NFT在坚实的?

什么是最好的方式随机选择的薄荷NFT在坚实的?
EN

Stack Overflow用户
提问于 2022-05-23 16:14:13
回答 1查看 83关注 0票数 0

我想随机化不同级别的NFT是如何铸造的。如果总共有3333层,20层1层(最好),313层2层,1200层3层和1800层4层,下面的代码会起作用吗?这会导致1级NFTS每隔4张薄荷糖就被铸造一次吗?

代码语言:javascript
复制
function _genTier(uint256 seed) internal view returns (uint256) {
        uint256 index = seed % probabilities.length;
        uint256 rarity = seed.mul(100).div(MAX_SUPPLY);
        if(rarity < probabilities[index]) {
        rarity = index;
    } else {
        rarity = aliases[index];
    }

    return rarity;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 16:45:35

博士,如果你已经在使用甲骨文,这种方法会奏效的。

文章中的代码片段中的方法将导致罕见,但是not不会被随机分配,而是根据所提供的种子顺序分配。我不知道种子是从哪里来的。

通常,我喜欢使用“随机盒”技术,在这里你可以创建特征盒,洗牌和循环它们。所以你可以生成特征,最后得到3333个条目的数组。如果你想保持精确的稀有性,比如

共3333层和20层1,313层2,1200层和1800层4层

这是一个很好的方式来表演的一代。相反,方法_genTier可能不会导致您所提供的确切数字,而可能会按照稀缺性中所述的方法来创建每个not。

然而,“随机盒”方法对于可靠性来说并不是最优的,因为存储这么多数据所需的内存量将产生冗余成本,可以通过使用随机性来避免。

另一方面,随机性也很难在链上获得.要获得加密安全的随机数,可以使用块哈希或oracle。

使用块哈希可能适用于此应用程序,但其核心是可预测的。这意味着,有人可以获得随机数,知道即将出现的块哈希,并计算出他们将要接收的NFT层。

因此,我建议研究像ChainLink这样的预言,得到无法预测的真正密码随机数。来自先知的RNG来自链外,符合安全标准.您可以使用这些数字并包含一个if-语句,该语句将检查当前从每个层生成的NFT的数量。然后,如果说从第一层20已经被分配,以确保最终3333完全按照计划。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72351730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档