我们知道,在DAPP 网络悬赏计划中,如果您能够基于LiquidStorage构建一个可访问的去中心化存储解决方案,您最高可以获得【25万枚DAPP代币】奖励。
了解DAPP网络悬赏计划:
看了今天这篇文章,250,000 枚 DAPP 代币奖励就有可能是你的!
上篇文章中,我们介绍了目前行业中第一个且是唯一一个用于执行计划任务和重复任务的全功能解决方案——LiquidStorage的一些基本信息及部署方法。
回顾上篇教程:
EOS 有个大问题,好在我们第一时间解决了 !
今天,跟着LiquidApps一起更加深入了解LiquidStorage、赢取25万枚DAPP代币奖励吧!
如果你之前看过我们的实战教程,知道如何开始,LiquidStorage和其他功能一样,也是同样的开启方式:
举例的storageconsumer合约使用的是LiquidAccounts功能。
下面显示的是默认的storageconsumer.cpp,黑体表示我们将删除的内容,以禁用LiquidAccounts。
我们将专门关注于LiquidStorage相关的部分。
PS:别担心,删除LiquidAccounts的删减版本即将揭晓。
除了LiquidAccounts,这个智能合约还包括了一些示例代码。
这段示例代码演示了使用payload structs作为交易数据,而不是参数列表,因为LiquidAccounts需要payload structs。
即使我们不使用 LiquidAccounts功能,也没有理由不使用 payload 结构,但是这个例子中 dummy_action_hello 和 void hello()是可以删掉的。
删除简化之后的代码长这个样子:
看吧,代码更简洁了!
由于实际的文件存储是在LiquidStorage中的,所以我们甚至在智能合约中都不必使用vRAM。
️PS:我们可以删除测试文件中的hello,然后再次运行$ zeus test -c命令进行测试。
尽管我们在实际运行的智能合约中进行了剥离,但存储测试仍然不会有问题。
OK,让我们来看看上面的storageconsumer.cpp代码中,我们究竟在做什么。
我们并没有使用智能合约存储内容,而是用它来配置dApp的存储限额,这样用户上传的大量内容就不会导致系统瘫痪。
目前,我们支持以下限制。
1、单个文件大小限制。
默认是10M。在这段代码中,我们将其设置为 UINT64_MAX,这是一个非常大的数字。以至于在实践中,这个通常被认为是无限的。
2、每天上传的总量限制。
同样以字节为单位,这是单个EOS账户每天可以上传到LiquidStorage的容量。它的默认值是1 G。
如果我们想与上面的UINT64_MAX保持一致,这个数字等于0.0000000000000000001 YB
PS:YB也是存储单位,1YB=1.0 × 1015GB。
3、每天每个vAccount的上传限制。
如果使用的是 LiquidAccounts,这将设置每个虚拟 LiquidAccount 每天可以上传的限制。这里的默认值是10M。
这个低默认值的原因是,如果一个dApp允许在没有滥用保护的情况下轻松创建LiquidAccount,羊毛党可能滥用存储空间。
这也是我们在剥离LiquidAccount时删除了这个选项的原因。
示例中的这些限制并不是写死的,都可以通过执行setstoragecfg操作,来更新新值。
如果我们的智能合约部署到麒麟测试网,我们可以推送以下命令,将最单个文件大小设置为1G,将每日总限制为10G。
这个例子使用了 dfuse 的麒麟节点;当然,你还需要修改下图代码中的 YOUR_ACCOUNT_HERE。
一、部署合约,激活服务
合约账户必须由一个或多个DSP来提供LiquidStorage功能。
本教程中已经介绍了如何部署合约并将其托管到DSP中。
有关如何使用LiquidStorage包中的largestorage,点击此处参阅使用方法。
二、自定义LiquidStorage参数
随着条件的变化,更新限制参数是很容易的。
为了将最单文件大小设为1M,全局大小设为10M,只需要执行以下命令:
如果我们启用了LiquidAccounts,并希望虚拟账户也有10M的全局限制,也可以轻松实现,如下图黄色代码所示:
三、向LiquidStorage上传文件
现在在智能合约中设置了LiquidStorage服务,我们的应用可以利用它来上传和检索文件。
下面是一些Node.js代码的示例。和上面的例子一样,我们使用的是麒麟测试网。
这将为我们返回一个IPFS URI(在上图第16行代码中可以看到,在response.uri中)。
现在,我们可以通过将URI传递给service.get_uri,就可以轻松地访问我们用LiquidStorage存储的文件。
你可以点击此处查看使用上述方法的全部案例。
最后,各位开发者不要忘了:
使用LiquidStorage构建一个去中心化存储的dApp,让终端用户可以告别繁琐,你就可以赢取高达25万DAPP代币的悬赏!
话不多说,赶快根据教程开始行动吧!
如果你有任何疑问,或者将要了解更多,欢迎您扫描下方二维码添加 LiquidApps中国社区经理 您将获得最细致的回答、最耐心服务以及最全面的答案。
欢迎加入LiquidApps社区
LiquidApps的使命是通过引入一系列技术解决方案,降低区块链开发的难度和成本, 以此推动去中心化应用 (dApps) 的大规模发展和落地。
去中心化应用要实现其最大的潜力有赖于社区的共识和参与,LiquidApps是一个开放的社区,期待大家能够参与到社区关系的建立和沟通上来,从而推动dApp的成熟和大规模落地,共同塑造未来并享受创造价值的过程。
官网:https://www.liquidapps.io/
Twitter:https://twitter.com/liquid_dapps