楼主: V电13242772558
551 3

[区块链] 链上合约泰山众筹系统DApp开发 [推广有奖]

  • 0关注
  • 1粉丝

博士生

36%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
102.7701
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3280 点
帖子
90
精华
0
在线时间
219 小时
注册时间
2021-3-2
最后登录
2024-3-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  全链游戏,可以视为GameFi的概念升级,但又有所不同。简而言之,就是再尽可能提供更高游戏质量的前提下,将游戏的所有核心逻辑,包括状态存储、计算与执行等,全部部署于区块链上。尽管全链游戏有着更高的游戏质量只求,但完全的链上游戏,要去实现复杂的游戏内容、精致的美术等,就几乎不可能。GameFi也在追求着游戏质量的提升,而当前全链游戏表现形式和GameFi几乎没有区别。这也使得当前全链游戏和GameFi概念存在语义模糊的尴尬处境。

  事实上,我们可以换个思路,对于全链游戏而言,最重要的问题是其经济周期的可持续性,而不是加强其Fun或Earn的属性之一。GameFi的不同属性可以通过不同的游戏类型来体现,通过发行不同的游戏来逐步提高可玩性,但同一通证的底层经济模型仍然是通用的。只要一个GameFi通证经济模型能够有效运行,那么它的Fun属性和Earn属性就可以通过4到5款游戏一起实现。

  如何保证经济模式的可持续性?一方面,想办法吸收更多的新玩家入场,这意味着GameFi需要进一步降低进入门槛,以及追求品质。目前,新玩家基于白皮书和资料对GameFi的了解较多,想要玩游戏往往需要付费。Free to paly模式正在成为一种趋势。

  另一方面,拥抱元宇宙。游戏作为元宇宙生态的一个子集,也是元宇宙资产产生和转移所有权的重要方式,也将对底层元宇宙生态的运行承担重要责任。

  链上所有的应用程序(dApp)也都是由智能合约驱动的,不论是借贷协议、去中心化交易所(DEX)、预言机或NFT市场。这些协议都是由一个或多个智能合约组成的,而合约里面都会写好各式功能,让协议能正常被用户使用。

  智能合约与链的互动

  写智能合约的语言有很多中,每一条链支援的语言也不太一样,常见的语言有Solidity,Vyper和Rust。在链上执行合约的环境称为虚拟机器(VM),不同的链也有各自不同的环境(例如以太坊的就称为EVM),而这些环境能适用的程序语言也不同。像是以太坊的EVM就只能执行由Solidity写的智能合约,这也让Solidity成为现在最普遍的智能合约语言。

  EVM-compatible链指的就是这些链的执行环境与以太坊的EVM是兼容的,这也代表这些链所适用的语言大都是Solidity。加上智能合约大都是开源的,所以只要是EVM-compatible的链都有很多从以太坊复制(fork)上去的协议,这些协议的智能合约大多都没有更动,主要是更改协议名称以及网页介面而已。下图可以看到Uniswap就被复制了252次,Compound、Olympus DAO等以太坊上的知名项目也有很多复制品。这也让EVM-compatible的链能快速的复制成功的协议,并形成丰富的生态,但也因而较缺乏创新的协议。比较知名的EVM-compatible链有Polygon、币安链、Avalanche,non-EVM-compatible的链则有Solana、Terra等。

  Solidity中很多方法都很底层,比如开发中很常见的迭代和判断字符串相等的方法都没有,必须要自己写个方法来实现。可能已有些库已实现类似的方法,不过总归是要麻烦不少。相比起来,JavaScript自己就带了很多原生的方法,用起来也很顺手。

  判读字符串相等不能直接使用==这样的方法,我也搞不清为什么,很多语言都是直接支持的,只有Solidity不支持。没办法,只能自己设计个方法来实现。

  function compareStr(string _str1,string _str2)public returns(bool){

  if(keccak256(abi.encodePacked(_str1))==keccak256(abi.encodePacked(_str2))){

  //如果二者相等,使checkResult为true

  checkResult=true;

  }else{

  checkResult=false;

  }

  //返回checkResult

  return checkResult;

  }

  对两个字符串进行哈希运算,结果一致就证明两个字符串相等。这个哈希运算有点费时,可以在这之前做个长度判断以节约点时间,达到一个平衡。改进后的方法:

  function compareStr(string _str1,string _str2)public returns(bool){

  if(bytes(_str1).length==bytes(_str2).length){

  if(keccak256(abi.encodePacked(_str1))==keccak256(abi.encodePacked(_str2))){

  retrun true;

  }

  }

  return false;

  }

  如果是频繁地运用这个方法,或者是对很多的字符串组进行比较,则改进后的方法会优良不少。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:app开发 DAP App compatible Javascript

已有 1 人评分经验 收起 理由
kychan + 100 精彩帖子

总评分: 经验 + 100   查看全部评分

沙发
lamlam111 发表于 2023-6-9 11:35:28 |只看作者 |坛友微信交流群
APP/DAO/IDO智能合约流动性质押挖矿分红系统开发

使用道具

藤椅
晏几道 发表于 2023-10-24 21:00:37 |只看作者 |坛友微信交流群
学习一下

使用道具

板凳
eeabcde 发表于 2024-4-16 08:11:49 |只看作者 |坛友微信交流群
支持分享

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 07:07