技术极客

今日:0  |  文章:13
为方便开发者们讨论交流,故设立此板块。
原力社区
189
为了便于国内开发者进行讨论交流,也为了方便官方进行回答,原力社区开设了星云链开发问题集锦专题贴。星云链上开发的程序员,可以将开发中碰到的问题进行跟帖回复,社区会将问题一一进行整理,每周联系星云官方的开发组进行集中回复。希望程序员们踊跃提问,感谢大家的付出。社区Dapp开发者提问:eos的出块时间是0.5s,星云的出块时间是15s。请问是不是星云在性能上和eos相差很多?星云官方回答:首先说明,tps是由硬件环境、语言环境和系统环境等多方面因素影响的,并不 是缩短出块时间,就能提高tps,所以tps和出块时间并不是强关联的数值。一、星云设置15s出块原因星云链主网在2018年3月29日上线,星云团队希望在早期阶段别太激进。区 块链的特点就是,他需要在“去中心化”、“安全性”和“高性能”这三者之间做权衡,三者只能取其二。星云链选择了参照稳定运行多年的以太坊(以太坊的平均出块时间在15-20s之间),以 公链的“去中心化”和“强安全性”为第一要务,所以牺牲了一定的性能,但 是tps依然能保持在2000+,速度仍然很快,而且星云链对硬件的要求是非常平民化的,8核16g的通用机器便可以加入星云成为全节点,人人可参与。eos则是21个超级节点间达成的DPOS共识机制,放弃了“去中心化”,所以他在 高性能上会有一定的提升,但是据了解,eos的tps并不是百万级别,单链仅仅只有 2000多。二、星云出块时间的升级计划其实减少出块时间并不是一件难事,对于团队来说,工作量很小。星云链团队认为,在主链逐渐成型阶段,保证稳定是首要前提。如果系统运行稳定,星云团队会在去中心化的基础上,加快出块速度,优化体验。社区反映:最近主网频繁出现卡顿的情况,导致交易不成功或者延迟。星云官方回答:官方提供的rpc服务有做限流处理,有些程序调用过于频繁会导致部分请求被拒绝服务。官方推荐所有受这个问题困扰的开发者,自己搭建节点同步区块,使用自己的节点给自己的dapp提供rpc服务。社区的回答:开发者确实也准备这样做,以应对网络拥堵,但是也增加了开发成本,开发者也需要考虑开发支出是否值得。建议:1、是官方可以通过出台激励机制,鼓励开发者搭建自己的节点;2、是官方多开放几个节点接口。社区Dapp开发者提问:1. 跨域问题,不是一直出现,偶尔有出现类似问题,没有特别的规律;2. 超时问题,请求数据或是发送交易都会遇到;3. 语法错误问题,报语法错误,但是再次请求有时成功的;4. json解析问题,请求返回后直接在SDK库里面就报错了5. 交易长时间不返回,其实已经成功或者失败了,但是用api查询就是不返回成功或失败6. 交易丢失问题,既不是交易失败,也不是交易成功,直接说交易找不到了星云官方回答:1.可能之前有这个问题,但是确认了现在机器的配置都是好的。2.超时的问题:现阶段有发现刷单情况存在,在RPC接口访问量大的时候可能出现类似问题;3.语法问题:请社区开发者提供详细的错误码截图?4.json解析问题:也麻烦给下详细错误信息截图?5.长时间不返回的问题:应该是交易上链失败了,现有的机制是上链失败不会通知,如果确认是参数都正常的需要统计下这样的情况,也麻烦给下详细错误信息截图?6.也是交易没有上链的问题,最近刷单的情况一直在,所以需要关注下。
1   2018-06-25 18:37:35
xbhuang
311
 1
NAS水龙头,帮助社区开发者快速获得NAS并部署智能合约.如果你想帮助社区建设,请考虑捐赠NAS到此合约中!作者不会从合约中获利。捐款请调用donate函数,请勿直接转入,否则会导致NAS永久丢失!传送地址:http://dapp.gpu360.com/watertap
3   2018-05-11 02:49:07
wooing
300
 4
这是星云的一些官方开发资料,方便社区小伙伴查阅:活动报名地址:https://incentive.nebulas.io/cn/signup.html?invite=lCopl官网:https://nebulas.io 非技术白皮书:https://nebulas.io/docs/NebulasWhitepaperZh.pdf 技术白皮书:https://nebulas.io/docs/NebulasTechnicalWhitepaperZh.pdf Wiki: https://github.com/nebulasio/wiki Tutorials: https://github.com/nebulasio/wiki/tree/master/tutorials 主链代码: https://github.com/nebulasio/go-nebulas 浏览器代码: https://github.com/nebulasio/explorer 网页钱包代码: https://github.com/nebulasio/web-wallet Web SDK: https://github.com/nebulasio/neb.jsNebPay 源码:  https://github.com/nebulasio/nebPayNebPay 官方文档: https://github.com/nebulasio/nebPay/blob/master/doc/NebPay 使用教程: 英文版:  https://medium.com/nebulasio/how-to-use-nebpay-in-your-dapp-8e785e560fbb中文版: https://blog.nebulas.io/how-to-use-nebpay-in-your-dapp/ 测试网:https://github.com/nebulasio/wiki/blob/master/testnet.md主网:https://github.com/nebulasio/wiki/blob/master/mainnet.md区块浏览器: https://explorer.nebulas.io领取测试NAS:https://testnet.nebulas.io/claim/星云NRC20官方说明:https://github.com/nebulasio/wiki/blob/master/NRC20.md激励计划页面:https://incentive.nebulas.io/ p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'; color: #00a2ff} span.s1 {color: #000000} 星云官方技术社区讨论群: 1.星云激励计划第一季实施细则:https://nebulas.io/cn/incentive_spec.html 2.手把手教你开发DApp:https://mp.weixin.qq.com/s/Bhez3UOjZA3JfmJoZV2iJA 社区资料:DApp Review:https://dapp.review/explore/nasNAS Smart Contract Explorer:https://explorer.nebulas.cool
6   2018-04-27 14:50:16
rm2068748684
5
B36-11-28有人用QQ聊天,有人却在QQ中赚--钱我是加入一个网上团队的,而且,这些都是免费的!足不出户,轻松赚--钱,当天操--作,当天收--款,免-学-费,无-押jin,不-收-任-何-费-用,互联网史无前例的惊人做法——10分钟学会操--作流程,半小时开始获得收益!这是我加入美丽人生的赚--钱团队开始的。真实案例分享: 导师QQ好友:3002744802  2018年3月份的时候,小敏的朋友分享了一位导师QQ好友:3002744802给她,她的命远就此发生了改变;在老师这里了解一个新的赚--钱方法,操--作简单,用手-机就可以随时操--作,起步投--资也就50块钱(一两瓶水一包烟的钱),就能赚个300元-500元不是什么问题,起初小敏也是抱着将信将疑的态度尝试看看,还自己试着操--作了一下,在群里也观察发现里面赚--钱的有不少人,她就跟老师详细的了解一下,老师就跟她说,你现在不要着急,你现在要做的是学会我们的投--资方法,这样你才能赚--钱。在确确实实看到很多人赚了钱之后,也让小敏下定"决心"跟着老师的方法来操--作,没想到当天真的赚到了450块钱,后来在群里也看到别人一天都能赚上1000元-3000元,而她1个月赚到1万多,虽然还是赚的比较少,但就这样每天都坚持下去,也她比以前赚多了好几倍了!她说知足了!也非常感谢朋友分享这位导师QQ好友:3002744802现在她也买了属于自已的车,每天过的也是轻松自由没有生活压力。天天上班,努力工作,但是钱依然不够花。每月就那么一点点工资还要买化妆品、买衣服买鞋,还要还房贷、还车贷以及还不完的其-他-各-种-贷.生活总是给我们太多的不如意,每天忙忙碌碌如果你想改变自己现在贫穷的状况,不花一分钱就能学习到别人的成功秘诀,让自己也踏入富豪的行列.如果你想知道这样一个和你一样,也许起点比你还低的她,都能月入十万,改变自己的命运!!!当你看到这篇文章的时候,你现在正拿着手--机打开网站,看着文章。现在我们很多人玩QQ时候有事没事刷-刷-朋-友-圈发个心情、发张照片、评论下好友、调侃下小伙伴,随着越来越多的人对微---信 犹如“吸--食--了--大--麻”,中du不浅。而你可知,其实在QQ之下还隐藏了一个教你赚--钱的法宝。不过这当然不是QQ代--购,感兴趣的添加导师QQ好友:3002744802
0   2018-11-28 21:15:51
rm2068748684
7
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体; mso-font-kerning:0pt;mso-bidi-language:AR">B36-11-26</span></p> <p class="MsoNormal" align="left"><span style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning: 0pt;mso-bidi-language:AR">有人用<span lang="EN-US">QQ</span>聊天,有人却在<span lang="EN-US">QQ</span>中赚<span lang="EN-US">--</span>钱<span lang="EN-US"><br> </span>我是加入一个网上团队的,而且,这些都是免费的!足不出户,轻松赚<span lang="EN-US">--</span>钱,当天操<span lang="EN-US">--</span>作,当天收<span lang="EN-US">--</span>款,免<span lang="EN-US">-</span>学<span lang="EN-US">-</span>费,无<span lang="EN-US">-</span>押<span lang="EN-US">jin</span>,不<span lang="EN-US">-</span>收<span lang="EN-US">-</span>任<span lang="EN-US">-</span>何<span lang="EN-US">-</span>费<span lang="EN-US">-</span>用,互联网史无前例的惊人做法<span lang="EN-US">——10</span>分钟学会操<span lang="EN-US">--</span>作流程,半小时开始获得收益!这是我加入美丽人生的赚<span lang="EN-US">--</span>钱团队开始的。<span lang="EN-US"><br> </span>真实案例分享<span lang="EN-US">: </span>导师</span><b><span lang="EN-US" style="font-size:16.0pt;font-family:&quot;微软雅黑&quot;,sans-serif; mso-bidi-font-family:微软雅黑;color:#FF3300;background:white">QQ</span></b><b><span style="font-size:16.0pt;font-family: &quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family:微软雅黑;color:#FF3300;background:white">好友:<span lang="EN-US">3002744802</span></span></b><span lang="EN-US" style="font-size:12.0pt; font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning:0pt;mso-bidi-language: AR">2018</span><span style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family: 宋体;mso-font-kerning:0pt;mso-bidi-language:AR">年<span lang="EN-US">3</span>月份的时候,小敏的朋友分享了一位导师</span><b><span lang="EN-US" style="font-size:16.0pt; font-family:&quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family:微软雅黑;color:#FF3300; background:white">QQ</span></b><b><span style="font-size:16.0pt;font-family:&quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family: 微软雅黑;color:#FF3300;background:white">好友:<span lang="EN-US">3002744802</span></span></b><span style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning: 0pt;mso-bidi-language:AR">给她,她的命远就此发生了改变;在老师这里了解一个新的赚<span lang="EN-US">--</span>钱方法,操<span lang="EN-US">--</span>作简单,用手<span lang="EN-US">-</span>机就可以随时操<span lang="EN-US">--</span>作,起步投<span lang="EN-US">--</span>资也就<span lang="EN-US">50</span>块钱<span lang="EN-US">(</span>一两瓶水一包烟的钱<span lang="EN-US">)</span>,就能赚个<span lang="EN-US">300</span>元<span lang="EN-US">-500</span>元不是什么问题,起初小敏也是抱着将信将疑的态度尝试看看,还自己试着操<span lang="EN-US">--</span>作了一下,在群里也观察发现里面赚<span lang="EN-US">--</span>钱的有不少人,她就跟老师详细的了解一下,老师就跟她说,你现在不要着急,你现在要做的是学会我们的投<span lang="EN-US">--</span>资方法,这样你才能赚<span lang="EN-US">--</span>钱。在确确实实看到很多人赚了钱之后,也让小敏下定<span lang="EN-US">"</span>决心<span lang="EN-US">"</span>跟着老师的方法来操<span lang="EN-US">--</span>作,没想到当天真的赚到了<span lang="EN-US">450</span>块钱,后来在群里也看到别人一天都能赚上<span lang="EN-US">1000</span>元<span lang="EN-US">-3000</span>元,而她<span lang="EN-US">1</span>个月赚到<span lang="EN-US">1</span>万多,虽然还是赚的比较少,但就这样每天都坚持下去,也她比以前赚多了好几倍了!她说知足了!也非常感谢朋友分享这位导师</span><b><span lang="EN-US" style="font-size:16.0pt; font-family:&quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family:微软雅黑;color:#FF3300; background:white">QQ</span></b><b><span style="font-size:16.0pt;font-family:&quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family: 微软雅黑;color:#FF3300;background:white">好友:<span lang="EN-US">3002744802</span></span></b><span style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning: 0pt;mso-bidi-language:AR">现在她也买了属于自已的车,每天过的也是轻松自由没有生活压力。<span lang="EN-US"><br> </span>天天上班,努力工作,但是钱依然不够花。<span lang="EN-US"><br> </span>每月就那么一点点工资还要买化妆品、买衣服买鞋,还要还房贷、还车贷以及还不完的其<span lang="EN-US">-</span>他<span lang="EN-US">-</span>各<span lang="EN-US">-</span>种<span lang="EN-US">-</span>贷<span lang="EN-US">.<br> </span>生活总是给我们太多的不如意,每天忙忙碌碌<span lang="EN-US"><br> </span>如果你想改变自己现在贫穷的状况,不花一分钱就能学习到别人的成功秘诀,让自己也踏入富豪的行列<span lang="EN-US">.<br> </span>如果你想知道这样一个和你一样,也许起点比你还低的她,都能月入十万,改变自己的命运!!!<span lang="EN-US"><br> </span>当你看到这篇文章的时候,你现在正拿着手<span lang="EN-US">--</span>机打开网站,看着文章。现在我们很多人玩<span lang="EN-US">QQ</span>时候有事没事刷<span lang="EN-US">-</span>刷<span lang="EN-US">-</span>朋<span lang="EN-US">-</span>友<span lang="EN-US">-</span>圈发个心情、发张照片、评论下好友、调侃下小伙伴,随着越来越多的人对微<span lang="EN-US">---</span>信<span lang="EN-US">&nbsp;</span>犹如<span lang="EN-US">“</span>吸<span lang="EN-US">--</span>食<span lang="EN-US">--</span>了<span lang="EN-US">--</span>大<span lang="EN-US">--</span>麻<span lang="EN-US">”</span>,中<span lang="EN-US">du</span>不浅。<span lang="EN-US"><br> </span>而你可知,其实在<span lang="EN-US">QQ</span>之下还隐藏了一个教你赚<span lang="EN-US">--</span>钱的法宝。不过这当然不是<span lang="EN-US">QQ</span>代<span lang="EN-US">--</span>购,感兴趣的添加导师</span><b><span lang="EN-US" style="font-size:16.0pt; font-family:&quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family:微软雅黑;color:#FF3300; background:white">QQ</span></b><b><span style="font-size:16.0pt;font-family:&quot;微软雅黑&quot;,sans-serif;mso-bidi-font-family: 微软雅黑;color:#FF3300;background:white">好友:<span lang="EN-US">3002744802</span></span></b><span lang="EN-US" style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体; mso-font-kerning:0pt;mso-bidi-language:AR"><br> <br> </span><span lang="EN-US"></span></p>
0   2018-11-26 21:23:47
rm2068748684
3
B36-11-25有人用QQ聊天,有人却在QQ中赚--钱我是加入一个网上团队的,而且,这些都是免费的!足不出户,轻松赚--钱,当天操--作,当天收--款,免-学-费,无-押jin,不-收-任-何-费-用,互联网史无前例的惊人做法——10分钟学会操--作流程,半小时开始获得收益!这是我加入美丽人生的赚--钱团队开始的。真实案例分享: 导师QQ好友:3002744802  2018年3月份的时候,小敏的朋友分享了一位导师QQ好友:3002744802给她,她的命远就此发生了改变;在老师这里了解一个新的赚--钱方法,操--作简单,用手-机就可以随时操--作,起步投--资也就50块钱(一两瓶水一包烟的钱),就能赚个300元-500元不是什么问题,起初小敏也是抱着将信将疑的态度尝试看看,还自己试着操--作了一下,在群里也观察发现里面赚--钱的有不少人,她就跟老师详细的了解一下,老师就跟她说,你现在不要着急,你现在要做的是学会我们的投--资方法,这样你才能赚--钱。在确确实实看到很多人赚了钱之后,也让小敏下定"决心"跟着老师的方法来操--作,没想到当天真的赚到了450块钱,后来在群里也看到别人一天都能赚上1000元-3000元,而她1个月赚到1万多,虽然还是赚的比较少,但就这样每天都坚持下去,也她比以前赚多了好几倍了!她说知足了!也非常感谢朋友分享这位导师QQ好友:3002744802现在她也买了属于自已的车,每天过的也是轻松自由没有生活压力。天天上班,努力工作,但是钱依然不够花。每月就那么一点点工资还要买化妆品、买衣服买鞋,还要还房贷、还车贷以及还不完的其-他-各-种-贷.生活总是给我们太多的不如意,每天忙忙碌碌如果你想改变自己现在贫穷的状况,不花一分钱就能学习到别人的成功秘诀,让自己也踏入富豪的行列.如果你想知道这样一个和你一样,也许起点比你还低的她,都能月入十万,改变自己的命运!!!当你看到这篇文章的时候,你现在正拿着手--机打开网站,看着文章。现在我们很多人玩QQ时候有事没事刷-刷-朋-友-圈发个心情、发张照片、评论下好友、调侃下小伙伴,随着越来越多的人对微---信 犹如“吸--食--了--大--麻”,中du不浅。而你可知,其实在QQ之下还隐藏了一个教你赚--钱的法宝。不过这当然不是QQ代--购,感兴趣的添加导师QQ好友:3002744802
0   2018-11-25 17:59:45
wooing
200
 0
星云链智能合约调试工具汇总我想大家之前在星云链上开发DApp遇到最大的问题就是调试智能合约了,由于官方没有提供调试工具,很多代码问题只能通过“人眼排除”解决,很多时候需要查看变量值,就需要把变量通过异常抛出来,再把合约部署到测试网,然后通过函数运行的返回值来查看,非常的麻烦。现在大家有福了,有几位社区的小伙伴为我们免费提供了一些智能合约代码的静态检查工具和调试工具,极大的方便了我们调试智能合约。下面我们就来看看这些棒棒的工具吧:1、https://nebide.block2100.com/editor名字:Nebide作者:seauniv推荐:⭐️⭐️⭐️⭐️⭐️支持的功能有:在线语法检查,测试合约函数,界面友好2、https://tool.forfunapp.com/#/tutorial名字:Nebulas Cat作者:希望之石推荐:⭐️⭐️⭐️⭐️⭐️支持的功能:在Visual Studio Code中模拟调试合约代码3、http://zoowii.com/nebstaticcheck/名字:星云合约静态检查工具作者:zw推荐:⭐️⭐️⭐️⭐️支持的功能:在线语法检查,模拟测试合约函数再次感谢几位开发者为大家带来这么有用的代码检查和调试工具,如果谁还有可以帮助开发者提高开发DApp效率的工具,也欢迎在本帖留言一起交流。
4   2018-07-20 17:06:42
admin
151
为什么游戏能最先在区块链上发展起来?回答:区块链技术的核心是分布式记账,他的应用范围并不广阔,也不是万能的。大家看到不少应用,其实都是伪需求。如何判断一个项目或者应用是否为伪需求?我给大家提供一个思路——平行世界的理论。首先先区分三个世界:区块链世界、现实世界和互联网世界。区块链世界和互联网世界是同属于虚拟世界,他们之间是可以相互交叉共存的。游戏自带虚拟世界的天然属性,它已经在互联网世界迅猛的增长,当然也非常适合在区块链世界发展,比如用区块链做个偷菜游戏、做个我的世界、做个虚拟人生等等,都是可行的。但是现实世界不同。现实世界是人们生活的世界,是实物存在的世界。现实世界和他们两个虚拟世界是相互平行的世界,没有任何交集。如果想连接现实世界和区块链世界,则存在两种方式:A、自然连接。比如某图曾经想做的人脸识别链,用机器扫描人脸,将具有自然属性的人脸信息存储到链上,期间没有进行任何人工干预。B、行政连接。比如把学历、房产证等存储到链上,类似存证系统,此时需要引入第三方的公证机构,作为连接两个世界的桥梁。自然连接是真实需求,他完整地将自然属性存储到区块链上,极大的发扬了区块链不可串改的自然特性;而第二种连接则容易出现伪需求,因为有第三方公证机构的人工干预。现行社会的公证机构,最有权威的当属国字号机构,但是在区块链发展的初期,技术还不成熟,存在很多不稳定因素,国家不会贸然改变现行体制,强行使用区块链技术。所以,行政连接的区块链还很难看到真正的应用,一切都只是处于理论阶段。理解了上面这种原则,我们就不难理解游戏会最先在区块链世界火起来的原因。随着时间的推移,生态的建立,区块链上的dapp元素会呈现多样化,到时候,就是百花齐放百家争鸣的场面了,而并非游戏一枝独秀。 
2   2018-06-22 18:05:02
maqi_168
211
 0
今天上午按照官方文档对星云链配置了下,发现几个问题,但都很快解决了,希望我的解决方案对大家有所帮助。我的环境:windows下用虚拟机模拟的ubuntu-18.04版本,所有操作在管理员权限下完成。问题处理:1.环境变量配置(可以不改,但每次重启shell需要重新手动配置)  改写.bashrc文件,在文件最后加上export PATH=$PATH:/usr/local/go/bin export GOPATH=/path/to/workspace2.有几个git资源非常慢,我在码云上面重新整理了下,链接地址换成我码云上面的地址git clone https://github.com/nebulasio/go-nebulas.git替换成git clone https://gitee.com/nebulasfans/go-nebulas---------------------------------------------------------------------------------------------------------------git clone https://github.com/facebook/rocksdb.git替换成git clone https://gitee.com/nebulasfans/rocksdb---------------------------------------------------------------------------------------------------------------wget https://github.com/golang/dep/releases/download/v0.3.2/dep-linux-amd64替换成wget https://gitee.com/nebulasfans/dep/raw/master/dep-linux-amd643.无需make depcd $GOPATH/src/github.com/nebulasio/go-nebulas直接在go-nebulas下wget http://ory7cn4fx.bkt.clouddn.com/vendor.tar.gz cd $GOPATH/src/github.com/nebulasio/go-nebulas tar zxf vendor.tar.gz所有流程都是按照官方文档配置,如果遇到我的问题可以照此解决,祝大家玩的开心,多多拿大奖,^_^
9   2018-05-03 13:50:00
wooing
1516
 2
星云是全球首个主网上线的区块链3.0公链,所有代码全部重新构建,比起以太坊更清晰,更简练,对开发者极度友好,智能合约语言基于当下最流行的javascript,现在我们就尝试基于星云链智能合约来设计一个电子存证系统。第一步,系统设想:    通过hash算法计算出电子文档的特征码,把该特征码、时间戳以及拥有者的钱包地址储存到智能合约中,由于只有钱包拥有者掌握钱包的私钥,一旦交易被确认,就可以通过这些信息来确认电子文档的权证归属。第二步,准备工作:    1、下载星云钱包:用于部署我们的智能合约,访问地址: https://github.com/nebulasio/web-wallet;    2、生成测试地址:用于测试我们的存证功能,在钱包里生成两个钱包地址,每个钱包会有一个keystore文件,保存好这两个钱包keystore文件;    3、领取测试NAS:部署合约以及发送存证交易需要消耗手续费,所以我们需要有测试的NAS,现在测试网络还不可以自己挖矿,但可以去官网领取,每个帐号领取10个NAS就足够使用来,访问地址:https://testnet.nebulas.io/claim/    4、选一个比较顺手的JS编辑器:目前星云链没有提供智能合约的编辑和调试工具,所以这些只能自己解决了,JS作为当下最流行的语言,所以编辑工具还是很多的,我的电脑上装过vscode,虽然专业性并不高,但贵在轻量,试了一下还不错,至于调试,目前是有些麻烦,可以找一个在线调试js的网站,比如我找的这个:http://www.dooccn.com/nodejs/,将部分代码拷贝到网站上进行局部调试。如果谁有更好的方法,欢迎拿出来和大家一起讨论分享;    第三步,编写智能合约:    官网的编写智能合约的教程:https://github.com/nebulasio/wiki/blob/master/tutorials/%5B%E4%B8%AD%E6%96%87%5D%20Nebulas%20101%20-%2003%20%E7%BC%96%E5%86%99%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6.md    官方智能合约说明文档:https://github.com/nebulasio/wiki/blob/master/smart_contract.md    下面是我写的智能合约合约:'use strict'; // 定义账户数据 var Account = function(obj) { this.codes=[] if (typeof obj != "undefined") { obj = JSON.parse(obj) if(Object.prototype.toString.call(obj)=='[object Array]') this.codes=obj; } } Account.prototype = { toString: function () { return JSON.stringify(this.codes); }, addCode:function(code){ for(var i=0;i<this.codes.length;++i) if(code == this.codes[i]) return; this.codes.push(code); }, removeCode:function(code){ for(var i=0;i<this.codes.length;++i) { if(code == this.codes[i]) { this.codes.splice(i,1); return; } } } } //定义的证书数据 var Certficate = function (obj) { if (typeof obj === "string") { obj = JSON.parse(obj) } if (typeof obj === "object") { this.time = obj.time; this.owner = obj.owner; this.text = obj.text; } else { this.time = ""; this.owner = ""; this.text = ""; } } Certficate.prototype = { toString: function () { return JSON.stringify(this); } } //星云存证合约 var CertificateLib = function () { LocalContractStorage.defineProperties(this, { _name: null, //合约名字 _creator: null //合约创建者 }); LocalContractStorage.defineMapProperties(this, { //定义证书的Map容器,用来存放每一个证书的信息 "certficates": { parse: function (value) { return new Certficate(value); }, stringify: function (o) { return o.toString(); } }, //定义账户的Map容器,用来存放每一个账户的证书信息 "accounts": { parse: function (value) { return new Account(value); }, stringify: function (o) { return o.toString(); } } }); }; CertificateLib.prototype = { //智能合约初始化函数,只会在部署的时候执行一次 init: function () { this._name = "Nebulas Certificate Library"; this._creator = Blockchain.transaction.from; }, // 智能合约的名字 name: function () { return this._name; }, // 查询某个账户里的所有证书 listByOwner: function (owner) { return this.accounts.get(owner)||[]; }, // 登记证书,如果相同的认证代码已经被登记过了,将返回失败 register: function (code, text) { if(!!this.certficates.get(code)) throw new Error("The code has been registered!"); var from = Blockchain.transaction.from; var certficate = new Certficate({ "time":Blockchain.transaction.timestamp.toString(10), "owner":from, "text":text }); this.certficates.set(code,certficate); var account = this.accounts.get(from) || new Account(); account.addCode(code); this.accounts.set(from,account); }, // 注销证书,如果证书不属于自己,将返回失败 unregister: function (code) { var certficate = this.certficates.get(code); if(!certficate) throw new Error("Can't find the code!"); var from = Blockchain.transaction.from; if(certficate.owner != from) throw new Error("The certficate isn't belone you!"); this.certficates.del(code); var account = this.accounts.get(from); if (account) { account.removeCode(code); this.accounts.set(from,account); } }, // 查看证书信息 getInfo: function (code) { var certficate = this.certficates.get(code); if(!certficate) throw new Error("Can't find the code!"); return certficate; }, // 转让证书,如果证书不属于自己,将返回失败 transfer: function (to, code) { var from = Blockchain.transaction.from; var certficate = this.certficates.get(code); if(!certficate) throw new Error("Can't find the code!"); if(certficate.owner != from) throw new Error("The certficate isn't belone you!"); certficate.owner = to; this.certficates.set(code,certficate); var account = this.accounts.get(from); if (account) { account.removeCode(code); this.accounts.set(from,account); } account = this.accounts.get(to) || new Account(); account.addCode(code); this.accounts.set(to,account); } }; module.exports = CertificateLib;第四步,部署智能合约:    打开星云的钱包,在页面右上角选择testnet,然后选择合约页面,选择部署标签,将代码复制到 “合约代码 :” 的编辑框中,然后点选择钱包,选择我们之前生成的钱包keystore文件,输入密码解锁钱包,点击测试,如果返回没有错误:{"result":"\"\"","execute_err":"","estimate_gas":"25266"},那恭喜,你的智能合约已经部署好了。    这里提一下,测试的时候是在本地执行的,不会消耗你的NAS,但部署是需要交易打包的,是要消耗NAS的。第五步,测试智能合约:    还是在星云钱包合约页面,选择“执行”标签,填入函数名和参数,选择好钱包并解锁,还是先点击测试,没问题就可以点提交测试功能了。第六步,实现DApp前端:    DApp前端可以有很多种的形式,可以是一个手机前端应用,也可以用web页面来展示,星云对这些方案都有支持,星云对接的SDK是neb.js,访问地址:https://github.com/nebulasio/neb.js    我选择的静态页面+脚本来实现,其实星云的官方钱包就是一个DApp,推荐大家去看看它的实现方式,这对构建前端会有很大的收益。 第七步,部署到主网:    当所有功能测试没有问题了,就可以把合约部署到主网上了,部署到主网也非常简单,只需要在星云钱包的右上角testnet改成主网,然后重新部署一遍就可以了,当然你在星云主网上的钱包里一定要有NAS才行,否则没有燃料费,智能合约交易是发不出去的。   本DApp客户端地址:https://certlib.github.io/index.html,欢迎大家上来测试。
11   2018-05-02 14:14:22
wooing
307
 0
概述nebulas的NRC20代币,相当于以太坊中的ERC20代币,遵守了REC20协议的货币更容易互换,并且能够在Dapps上运行相同的工作。标准化是非常有利的,比如:1、可以方便的对接交易所,使代币几乎不用做额外的工作就可以完成交易所的对接;2、可以在区块浏览器中方便的查询代币的交易记录;3、方便投资者阅读智能合约,减少理解成本。nebulas的NRC20智能合约必须实现以下接口和事件:标准接口:function name()function symbol()function decimals()function totalSupply()function balanceOf(address)function transfer(address, value)function transferFrom(from, to, value)function approve(spender, currentValue, value)function allowance(owner, spender)标准事件:function transferEvent: function(status, from, to, value)function approveEvent: function(status, from, spender, value)下面是星云官方的NRC20模版:'use strict'; //定义授权的Map容器 var Allowed = function (obj) { this.allowed = {}; this.parse(obj); } Allowed.prototype = { toString: function () { return JSON.stringify(this.allowed); }, parse: function (obj) { if (typeof obj != "undefined") { var data = JSON.parse(obj); for (var key in data) { this.allowed[key] = new BigNumber(data[key]); } } }, //查询授权的代币数量 get: function (key) { return this.allowed[key]; }, //设置授权的代币数量 set: function (key, value) { this.allowed[key] = new BigNumber(value); } } //标准的NRC20合约类 var StandardToken = function () { LocalContractStorage.defineProperties(this, { _name: null, //合约名字 _symbol: null, //代币符号 _decimals: null, //代币的精度,(小数点位数) _totalSupply: { parse: function (value) { return new BigNumber(value); }, stringify: function (o) { return o.toString(10); } } }); LocalContractStorage.defineMapProperties(this, { //定义代币的Map容器,用来存放每一个账户的代币数量 "balances": { parse: function (value) { return new BigNumber(value); }, stringify: function (o) { return o.toString(10); } }, //定义代币授权数量的Map容器,用来存放每一个账户的代币授权数量 "allowed": { parse: function (value) { return new Allowed(value); }, stringify: function (o) { return o.toString(); } } }); }; StandardToken.prototype = { //智能合约初始化函数,只会在部署的时候执行一次 init: function (name, symbol, decimals, totalSupply) { this._name = name; this._symbol = symbol; this._decimals = decimals || 0; this._totalSupply = new BigNumber(totalSupply).mul(new BigNumber(10).pow(decimals)); var from = Blockchain.transaction.from; this.balances.set(from, this._totalSupply); this.transferEvent(true, from, from, this._totalSupply); }, // 智能合约的名字 name: function () { return this._name; }, // 智能合约的代币的符号 symbol: function () { return this._symbol; }, // 智能合约代币的精度 decimals: function () { return this._decimals; }, // 代币的总发行量 totalSupply: function () { return this._totalSupply.toString(10); }, // 查询账户里的代币余额 balanceOf: function (owner) { var balance = this.balances.get(owner); if (balance instanceof BigNumber) { return balance.toString(10); } else { return "0"; } }, // 向目标地址发送代币 transfer: function (to, value) { value = new BigNumber(value); if (value.lt(0)) { throw new Error("invalid value."); } var from = Blockchain.transaction.from; var balance = this.balances.get(from) || new BigNumber(0); if (balance.lt(value)) { throw new Error("transfer failed."); } this.balances.set(from, balance.sub(value)); var toBalance = this.balances.get(to) || new BigNumber(0); this.balances.set(to, toBalance.add(value)); this.transferEvent(true, from, to, value); }, // 从授权地址向目标地址发送代币 transferFrom: function (from, to, value) { var spender = Blockchain.transaction.from; var balance = this.balances.get(from) || new BigNumber(0); var allowed = this.allowed.get(from) || new Allowed(); var allowedValue = allowed.get(spender) || new BigNumber(0); value = new BigNumber(value); if (value.gte(0) && balance.gte(value) && allowedValue.gte(value)) { this.balances.set(from, balance.sub(value)); // update allowed value allowed.set(spender, allowedValue.sub(value)); this.allowed.set(from, allowed); var toBalance = this.balances.get(to) || new BigNumber(0); this.balances.set(to, toBalance.add(value)); this.transferEvent(true, from, to, value); } else { throw new Error("transfer failed."); } }, //定义交易事件,用于通知浏览器 transferEvent: function (status, from, to, value) { Event.Trigger(this.name(), { Status: status, Transfer: { from: from, to: to, value: value } }); }, // 给某一地址授权代币 approve: function (spender, currentValue, value) { var from = Blockchain.transaction.from; var oldValue = this.allowance(from, spender); if (oldValue != currentValue.toString()) { throw new Error("current approve value mistake."); } var balance = new BigNumber(this.balanceOf(from)); var value = new BigNumber(value); if (value.lt(0) || balance.lt(value)) { throw new Error("invalid value."); } var owned = this.allowed.get(from) || new Allowed(); owned.set(spender, value); this.allowed.set(from, owned); this.approveEvent(true, from, spender, value); }, // 定义代币授权事件 approveEvent: function (status, from, spender, value) { Event.Trigger(this.name(), { Status: status, Approve: { owner: from, spender: spender, value: value } }); }, // 查询某个地址的代币授权 allowance: function (owner, spender) { var owned = this.allowed.get(owner); if (owned instanceof Allowed) { var spender = owned.get(spender); if (typeof spender != "undefined") { return spender.toString(10); } } return "0"; } }; module.exports = StandardToken;星云NRC20官方说明:https://github.com/nebulasio/wiki/blob/master/NRC20.md
6   2018-04-28 13:48:25
wooing
475
 5
关于如何调试星云链代码,官方的wiki里面有一个文档说明:https://github.com/nebulasio/wiki/blob/master/develop/debuging-with-gdb.md,介绍的是使用GDB来调试星云链代码。但是有了vscode,调试工作其实还可以优雅一些,下面我就来说说如何使用vscode调试星云链代码。第一步:根据星云官方的教程下载星云源代码,并配置好编译环境:https://github.com/nebulasio/wiki/blob/master/tutorials/%5B%E4%B8%AD%E6%96%87%5D%20Nebulas%20101%20-%2001%20%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85.md第二步:用vscode打开星云链项目的主目录,比如我的是~/Documents/go/src/github.com/nebulasio/go-nebulas第三步:安装delve调试命令, 在命令终端中输入并运行:go get github.com/derekparker/delve/cmd/dlv第四步:配置launch.json调试参数:随便在目录里面找到一个.go文件,点击菜单“调试”>“添加配置..”.,在打开的配置文件中填入下面内容: { "name": "Launch", "type": "go", "request": "launch", "mode": "debug", "program": "${workspaceRoot}/cmd/neb/main.go", "args": ["--config=testnet/conf/config.conf" ], "cwd": "${workspaceRoot}", "showLog": true }至此,准备工作都已经做好了,你现在可以按F5尽情轻松的调试代码了。这是我的调试截图:
7   2018-04-26 17:31:14
原力社区
175
各位热爱星云技术的朋友,大家有什么技术问题可以在本板块留言,有很多技术人员都会来解答讨论。或者可以直接提交到github上,https://github.com/bkbabydp/nebulas-club/issues,方便沉淀和传播。星云官方正在快马加鞭做主网相关工作,也有热心的技术朋友做好了docker的工作。炜伯伯做的:文字版的:先安装docker-compose然后:git clone https://github.com/nebulasio/go-nebulas/ && cd go-nebulas && docker-compose up seedLiuXuFei-阿飞  做的在线的浏览器和钱包:https://xingyun.io/ 相关链接如下:Nebulas-Clubhttps://github.com/bkbabydp/nebulas-club
5   2018-04-21 16:21:10

Powered by 星云原力社区 5.5.1

©2015 - 2018 原力社区

原力社区论坛 联系站长

您的IP:54.84.236.168,2018-12-14 00:01:47,Processed in 0.08271 second(s).

原力社区,是全球最大的有庞大用户沉淀、开发者沉淀和项目资源沉淀的,能够独立自主的去中心化的第三方社区。