智能合约最初三分钟用5个CMT可以做什么?
很悲伤的消息是,在币圈大凉的环境下,按照现在的币价来算,只能买一瓶矿泉水。
但是这5个CMT在开发人员手里,大有用处!究竟发挥了什么作用,来CyberMiles开发者社区11月25日举办的2小时学会编写智能合约Workshop101看看。
HelloWorld
Helloworld是最简单的程序之一,也是大部分程序员编写的第一个程序。这次的workshop101也是从最基础的Helloworld智能合约开始。
这里要特别指出,HelloWorld部分的主讲人杨乐。她是CyberMiles的产品经理,与这次来参会的大多数人一样,在此之前,没有任何编程经验。只要你愿意,欢迎来到开发者社区小课堂的讲台。
说回正题,在正式部署执行Helloworld智能合约之前,我们需要在电脑上安装MetaMaskforCMT。这是一个安装在Chrome浏览器的钱包工具,它的主要功能是管理CyberMiles帐号私钥,实现从网页上直接支付CMTs(包括gas费)等功能。
安装过程比较简单,去官网https://www.cybermiles.io/metamask下载插件,之后在Chrome的扩展程序中打开开发者模式,将下载好的metamask4cmt.crx拖拽至Chrome的扩展程序页面。
DeFi项目Sheesha Finance:现已支持迁移到新的SHEESHA智能合约:4月18日,DeFi项目Sheesha Finance发推称,现已支持迁移到新的SHEESHA智能合约,迁移可以获得额外的SHEESHA奖励,已参与LP代币质押的用户将继续获得奖励。[2021/4/18 20:32:19]
拖拽后,如果MetamaskforCMT不能正常工作,可以试下重启浏览器。如果依然不能正常工作,来参加workshop的程序员提供了一个新的方法,非常厉害,当天“拯救”了不少人的电脑。
把下载好的metamask4cmt.crx的后缀改成.rar,进行解压。在Chrome扩展程序页面,点击“加载已解压的扩展程序”,添加解压好的metamask4cmt.crx就可以了。
此外,如果Chrome中已经安装了其他版本的MetaMask,为了不影响使用,最好暂时停止使用其他版本的MetaMask,只留MetamaskforCMT激活。
安装好MetaMaskforCMT,就可以生成一个新的CyberMiles帐号来存储CMTs,在最上方选择MainCyberMilesNetwork。因为主办方会给每个人发5个真实的CMT,用于支付执行智能合约的gas费以及参与后面的神秘环节。
CMT的转账速度非常快,差不多10秒就到账了,并且不用支付gas费,转账体验非常好!
前NBA运动员:Chainlink是将数据带入智能合约的唯一解决方案:前NBA运动员、金·卡戴珊前夫Kris Humphries发推称:“世界越来越依赖数据,智能合约也不例外。Chainlink是通过去中心化、安全的方式将数据带入智能合约的唯一解决方案。未来已至。”[2020/4/9]
有了5个CMT和MetaMaskforCMT,就可以开始我们的HelloWorld!
在Chrome里打开RemixforCMT的网页,将写好的HelloWorld智能合约代码放进中间的代码编辑区,当然,你也可以选择自己写代码。
之后点击右侧的Starttocompile,编译器会自动检查这段代码是否存在常规性错误。没有问题的话,编译器会自动识别出该段合约的名称,也就是Contract后面的Greet。如果有问题,编译器会给出提示,根据提示修改代码,再次编译即可。
代码检查没有问题后,就可以把Greet智能合约部署到CyberMiles区块链了。点击右侧最上方的Run,然后点击Deploy。
这时需要调用MetaMaskforCMT支付部署智能合约所需要的gas费。一般情况下,MetaMask的支付页面会自动跳出,点击Submit进行支付就可以了。如果没有自动跳出,手动点击插件就好了。
可以看到,部署这个合约上链只需要花费0.000489个CMT。
计算机科学家开发新的编程语言,让智能合约开发更方便:计算机科学家Mark Miller、Dean Tribble、Brian Warner和Bill Tulloh已经成立了一家新创业公司,以开发一种基于javascript的安全、区块链无关的编程语言。该公司已经获得了种子轮融资,投资方包括Naval Ravikant、Polychain Capital和Zcash公司。这种编程语言将允许程序员以一种更直观、更安全的方式进行编码,同时允许进行目前智能合约测试中所难以进行的正式验证过程。通过基于流行的编程语言javascript来创建,该公司的创始人认为,该语言将向更广泛的开发者开放智能合约开发。[2018/5/22]
支付完gas费后,右下方DeployedContracts处就可以看到,我们的合约已经在CyberMiles链上部署好了。
红色的terminate可以终止这个合约,但只有合约owner才可以执行这项操作,终止合约同样需要支持少量gas费。
greet显示智能合约的内容是什么,在这里是HelloWorld。当然,HelloWorld这个词只是程序员的选择。作为智能合约的开发者,你可以让greet()返回任何字符,可以是一首歌,一篇文章,一本书,或者是一段加密的文字。
owner显示这个合约的所有权归哪个地址所有。你为这个合约支付部署gas费的账号地址就是合约的所有者。
OKEx:已对ERC-20智能合同进行安全审核,相关令牌安全:据OKEx官方消息,受BatchOverFlow漏洞影响,OKEx之前暂停相关令牌交易并对ERC-20智能合约进行安全审核,现已确认相关令牌安全,令牌存取将会逐渐恢复。[2018/5/2]
同时用区块浏览器www.cmttracking.io查询交易地址信息,可以看到刚刚创建的合约地址。如果你的朋友有这个合约地址,在AtAddress栏内输入合约地址,点击AtAddress就可以收到别致的智能合约问候啦!
上面知道怎么用HelloWorld智能合约在区块链存一段话,并让世界上任何人看见这段话。那么,这是怎么在代码里实现的呢?
pragmality^1.2.4;
这是智能合约所用的代码语言及版本。
contractGreet{
functiongreet(){
}
functionterminate(){
}
}
以上代码介绍了智能合约的名字Greet,以及两个功能,greet和terminate。
addresspublicowner;
modifieronlyOwner(){
韩国金融当局正积极采取措施监管虚拟资产的证券属性:8月3日消息,继美国证券交易委员会(SEC)之后,韩国金融当局也在积极采取措施监管虚拟资产的证券属性。韩国金融监管服务局(FSS)宣布,除了FSS将在年底公布“证券代币监管计划”外,如果明确目前正在交易的代币是现行法律下的证券,金融监管局可能会进行调查和制裁。FSC负责人表示,韩国法律体系与美国不同,因此需要审查代币是否属于韩国资本市场法下的证券。
据悉,韩国5大加密交易所(Upbit、Bithumb、Coinone、Korbit和Gopax)成立的联合协商机构DAXA也在通过内部检查并收集外部建议来讨论哪些虚拟资产属于证券。但证券代币的的范围不明确,很难保证这样的内部审查与当局的法律判断一致。因此市场预计韩国交易所将通过较为保守的证券属性判断来决定是否上线代币。
此前消息,美国SEC将“Coinbase内幕交易”事件中的9种加密货币列为证券,并在对Coinbase是否上线未经注册的证券进行调查。(先驱经济报)[2022/8/3 2:55:56]
assert(msg.sender==owner);
_;
}
constructor()public{
owner=msg.sender;
}
以上代码设置了合约的owner,owner的地址信息是公开的。信息发送者,也就是谁支付了gas费,让合约能够部署到链上,谁就是owner,并且定义了只有owner能够修改这个合约。
functiongreet()publicpurereturns(string){
return"Helloworld";
}
以上代码表明当你调用greet()时,就会出现HelloWorld。这个功能只是从区块链上读取数据,所以不需要gas费用。这里你可以把HelloWorld改成任何文字。
functionterminate()externalonlyOwner{
selfdestruct(owner);
}
这就是智能合约最开始定义的terminate终止合约的功能,并且定义了只有Owner可以执行这项功能。selfdestruct是析构函数,用于销毁数据,终止合约。
到这里,HelloWorld的代码就结束了,这是一段非常完整的代码。
这个最基础的合约既设置了合约的Owner,同时也设置了Owner能够销毁合约,当执行selfdesruct时,合约里的钱也会返还给Owner。
因为合约地址与钱包地址长地非常像,并且长度也一致,如果不小心把币打到了合约地址,一般情况下,是无法找回的。但如果你知道合约的owner是谁,可以联系合约的owner,在销毁合约时拿回你的资产。
这只是个人的小损失,如果项目方没有认真地对待代码,带来的资产损失是非常严重的。非常典型的案例是,今年7月份,Polkadot有超过513,774.16ETH被冻结在Parity钱包中,就是因为合约中的owner被人设成null了,因此没有人可以终止合约,拿回存在合约里的钱。现在,钱仍然被锁在合约里,没有人可以拿回来。
谨慎对待,认真审查每一段代码,尤其是涉及到钱的代码,这是每个程序员该有的素质。
CyberMiles开发社区连最基础的HelloWorld智能合约代码也保证了完整性,值得学习。
Betgame竞猜小游戏
这次workshop还有进阶版,通过智能合约发起一个竞猜游戏,由智能合约当裁判,可以说具备了完全的公正性。
代码比较复杂,不再一一解释,有兴趣的朋友可以自行去github研究一下。https://github.com/CyberMiles/education/blob/master/meetups/beijing/2-smart-contract-101/bet_game.lity
Owner把智能合约部署在CyberMiles区块链上后,玩家可以在RemixforCMT中输入合约地址,调用该合约,参与竞猜游戏。
游戏规则是每个参加workshop的人先从2到12中随机选择一个整数,并为自己选择的数字支付一定数量的CMT作为注。如果猜对了,将获得等比例的CMT。
规则公布后,Owner选择startGame,游戏正式开始!大家在现场跃跃欲试,有人大声说着”allin”,有人应和着,现场一时异常欢乐。这也是5个CMT的神秘用处!
调用合约成功后,在右下方placeBet处填写自己选择的整数,在右上方Value处,将单位选择为CMT,并且填写自己准备花费多少钱。填好后,通过MetamaskforCMT支付gas费,将下来坐等开奖!
杨乐在微信中随机掷了两个骰子,确认了最终的正确答案。在骰子”尘埃落定”的过程中,一片安静,静悄悄地等最终答案,看来大家都沉浸在游戏中了。
正确答案出来后,合约Owner在endGame处填写数字8,并支付gas费。
接下来就是领奖环节,根据智能合约的规则,前面在placeBet填写了数字8的参与者就是赢家,将按比例平分收集到的所有下注的CMT。
赢家点击payme,支付gas费,合约将自动把分配好的CMT转账到赢家的CMT账户里,这一切由代码计算,执行。
现场有两位赢家,一位以0.5CMT拿走了5.3个CMT,一位以2CMT拿走21.2CMT。当然也有没猜中的同学不死心地点了payme,但是因为不是赢家,什么也没拿到,白白地支付了gas费。不相信智能合约是不行的。
结果公示,两位赢家拿走奖励后,Owner选择terminate这个合约,游戏到此圆满结束!
用5个CMT编写智能合约,和周围的小伙伴一起讨论这段代码该怎么理解,又有CMT开发社区的人热心指导,最后参与到有趣的游戏中,见证了什么叫做”Codeislaw”。
CyberMiles开发者社区组织的这次活动有着非常棒的体验,这也是区块链技术应有的魅力之处!
小广播:下期Workshop102将在12月9日举行,有兴趣的朋友可以进群了解更多。
点击阅读原文,查看本次workshop101的全部代码
标签:WORWORLDHELORLXYO NetworkENTERMETAWORLDHelios ChartsWorldcore
亲爱的用户:?? IDAX将上线M2O。开通M2O/BTC、M2O/ETH、M2O/USDT交易,立即前往.
FirstBlood用户,欢迎来到第68周开发团队公告。请关注微信公众号以及时获得官方发布的更新。本周末我们为黑色星期五准备了特别的赛事,三场免费赛事的胜者将获得总奖金1,500美元现金奖励.
尊敬的用户: BikiCoin即将上线CRYPTOWORLD.VIP代币CWV,并开放CWV/BTC、CWV/USDT的交易市场,具体时间如下:1.
龙网学院专题讲座——ODE:释放人类潜能 2018-12-05 ODE上线DragonEx不久,价格暴涨翻倍,并上线一个月以来价格稳定,交易量稳定.
尊敬的LBank用户: ??为支持BitcoinCash的硬分叉,LBank将于11月15日21:00暂停BCH的充值与提现功能,请您在充值功能关闭之前及时充值.
11月16日,NULS受邀参加Bit-Z全球生态联盟暨韩国战略发布会。NULS顾问Andy在发布会圆桌论坛上围绕“区块链资产在韩国的未来”主题参与发言讨论,包括对区块链资产市场在韩国流行的原因分.