双周报|IOST进化论,熊市中砥砺前行

10 个月前 · 原创文章



IOST 双周报每半月一次,与社区成员分享IOST的最新社区进展、全球市场拓展以及项目生态建设情况。感谢大家的关注,也欢迎大家给我们提出宝贵的意见,您的支持对我们很重要。


一、技术进展


Tokenlnsight 实时同步各区块链项目GitHub 有效代码提交次数。根据TokenInsight统计,IOST团队过去7天提交代码165次,排名第一;过去30天提交代码889次,排名第一;过去90天提交代码1610次,排名第二。



【共识协议】


 [设计]

确定GAS定价

确定RAM定价

节点认证方案

邀请激励方案


 [开发]

修改witness数量与创世块中witness数量一致

iwallet的account命令,增加用户查询、删除和导入功能

iwallet增加生成秘钥对命令

iwallet输出信息改为json格式

在intel,amd,arm多款cpu上测试浮点数计算的一致性。认为浮点数计算是精确一致的

改进 iwallet:能够显示冻结的余额,和“谁为我质押了GAS“的信息

RAM和GAS价格,设置成最新确定的价格

在token和gas合约中,检查了参数都是合法账户 修改合约执行时的错误处理逻辑。使得报错更准确

改进 iwallet,能够显示 blockchain 整体状态,如 height,head hash 等,所有信息显示时分行,并且会显示默认值

修改RAM合约,支持基金会预留RAM

修改GAS合约,适配了新的RAM payer设计

通过重写GAS合约测试代码,修复了在docker中测试时因为总线程数超过限制而fail的问题

合约重命名

验块增加对重复交易的检查

完成新 rpc 接口

完成 rpc mock 服务器

整理 GasLimit, GasUsage 等语义,修复相关 BUG

整理Chrome钱包开发文档,经济模型部分

修改快速造块版本,方便测试

为社区开发者搭建测试网络(如:钱包开发)

修复了上一版本中的,通过 python 调用 iwallet 运行 luckybet 的demo代码

Tx验证合约时间,增加了1s的时钟容错

增加了RPC预执行来验证交易功能,可以通过配置打开

重构 GAS 相关代码,无需host即可获得GAS数量

RPC中增加了获取特定token余额的接口

完成了iwallets使用文档


 [优化]

减少info模式下,共识模块日志输出量


 [Debug]

分析启动时内存使用过大问题,主要内存消耗是V8实例

修复失败合约重复执行问题

锁使用不当造成的一个问题

fix gas计算问题

bonus合约没有issue贡献值给正确的账户

stateDB不一致导致的交易不能正常执行

解决生成块时base合约执行失败仍然会把块广播给其他节点的问题

遇到了跑iserver卡住的问题,发现是卡在blockbaseexec超时检验有问题

修改了超时检验,然后出现了段错误

超时问题是因为basetx执行会超过20ms,设置为30ms

压力测试合约转账交易,目前本地能正常跑起来了

修正自己造的块和收到的块同时处理的问题 修复单witness也需要等待3s才能造块

优化base合约,减少虚机创建的次数

优化验证block函数,fix panic

优化退出流程,防止退出时panic

测试vote合约和bonus合约正确性;测试了2万和账户的10万次投票结果正常

修复网络、同步模块的 data race

单节点和多节点压测交易,修复一些边界条件下引发的 panic

metrics 增加 push 重试,加强稳定性

测试并找到 iserver 越跑越慢的原因

去掉了手动gc,然后每一次都删除并新建isolate,这样之后集群能够正常跑起来的

遇到了verify witness slot error的问题 ,遇到了grafana push不上 ,压力测试之后会confirm数变平 的问题

解决了verify witness slot error的问题  

查到了为什么无法confirm的原因,是因为当收到太多tx进入接收的channel,来不及处理,然后就会打印error日志,这个打印操作占用了太多的cpu导致正常接收到的块来不及处理。去掉了log就解决了问题。现在能够在600ms一个slot的情况下正常压测

修复mvccdb相关data race的问题

修复单机端到端测试时iserver不能confirm的bug

修复TX时间check的bug


 [测试平台&运维]

test:添加了单机e2e自动测试至CI;添加了集群e2e自动测试至CI每日定时任务;进行了单机与集群e2e测试的调试

itest 增加了智能合约转账的正确性测试样例

db 移除rocksdb和相关依赖

devops 优化:fluentd 配置,提高 queue size 和 flush interval,减少 es 压力;elasticsearch 从双分片增加到 5 分片,提高处理能力 idevops-config;跟进最新 develop 分支,更新 testnet 配置;调通 ansible python API;实现带宽测试子功能

ilog:减少日志输出量

ci:如果develop分支的CI失败,则发送至alert;每日定时跑develop分支的CI,并进行k8s_test(集群端到端测试)

vm:讨论出了我们的沙盒方案,结论:a.已经有js的沙盒了(v8的isolate)b.已经有nodejs函数禁用了c.已经有runtime的资源限制了(经济模型)d.已经把iserver整体进行了进程隔离(容器运行,挂了不影响物理机)

虚机指令:测试v8各个指令的运行时间,当前gas收费;实现网络延时测试;网络延时测试有几率出现错误,重写;实现存储 IO 测试,重建 testnet;完成全 region 测试


【虚拟机】


 [研发]

JavaScript合约gas定价与native合约gas定价联调

撰写详细的IOST主网映射文档

vm database 适配rpc

可以在链上配置费用比例

创建account时由account付自己的ram

WAL上层代码合入develop

增加WAL测试

db函数增加 ram_payer, 对 ram_payer 收ram费

限制合约调用深度

isolate添加recycle后tps极速下降,修改recycle逻辑,减少recycle次数

v8vm 使用lru替代目前的pool实现,提升tps

JavaScript sdk生成npm包,现在可以直接npm install iost

五子棋dapp开发,完成前端适配@peijan

v8vm 修复库函数收取gas异常问题

完善vm中自定义float64类型的测试,修复float64的除法。

测试js语法,观察js调用函数时的gas使用情况

删除测试创建的文件

解决VM Hang住问题

解决VM内存问题

造块耗时越来越多

account, token, domain 命名规范及代码检查

db key,field 禁止特殊字符


 [Debug]

v8vm 执行hang住问题,修改system_clock,并修复其他模块测试execution killed问题,后续继续处理

虚拟机执行js transfer合约,先慢后快,慢的交易数量和vmpool的大小相同

修复Iserver SegmentFault问题

修复Mac下Vote合约找不到的Bug

Develop上将计时代码更改正常后会导致内存错误

修复了测试中gas浮动的问题

在isolate中检查智能合约签名

v8vm isolate添加recycle修复内存问题、段错误等问题

压交易panic问题跑sanitizer

js gas计费安全性问题


二、开发者社区


开发者激励计划


IOST开发者激励计划于2018年11月28日正式上线。


随着开发工作进入主网上线前的最后阶段,IOST诚邀广大开发者加入IOST开发者社区,参与IOST的一系列开发任务并获得任务奖励,单项任务奖励最高可达1,000,000 IOST!同时,向我们引荐开发者或开发团队也可获得引荐奖金!



开发者赏金任务信息将于每周一在IOST的开发者社区Slack、中英文Telegram电报群、微信公众号: IOST中文社区、新浪微博: IOST社区、Medium和Github等官方平台同步,并在每周五进行任务进度和奖励信息公示。


欢迎广大开发者加入IOST开发者社区Slack:

invite.iost.io


三、社区进展


社区“百字作文”大赛


11月21日-26日,IOST在官方微博举办了首届“百字作文”大赛,在置顶微博《钟家鸣:你黑你的,我红我的,实力让你路转粉》评论区留下“百字作文”,便可瓜分50,000个IOST。



100余位社区成员参与了活动,在评论区分享了自己与IOST的故事或自己对数字货币的见解,有“始于比特币,终于小苹果”的信仰,也有看完视频后被 Jimmy 实力圈粉的观后感。


这些来自社区的声音引起了大家的共鸣和热烈讨论,也让IOST团队的成员备受鼓舞。评委会最终选出了50名社区成员并送出了IOST奖励与周边礼物,感谢社区成员的支持与鼓励。


解谜游戏第二弹


烧脑的看图解私钥赢IOST小游戏又来啦!上次的游戏在社区取得了很好的反响,大家热情参与,来自国外社区的小伙伴只用了7个小时就解出答案,赢取了8,000 IOST奖励。这次我们带来了第二道题,比第一次的难度更高,奖励更丰厚(15,000 IOST)!



截至双周报发出之时,题目尚未破解。欢迎社区成员继续破解密码,赢得奖励!通过链接获取公钥,在任一钱包中输入公钥解出的正确私钥即可获得奖励。


链接:

http://t.cn/ELxFSFH


微信后台回复“我是小聪明”获得本题提示。


社区增长进展




四、交易所进展

 IOST上线国际交易所Bittrex International


2018年11月22日,IOST上线Bittrex推出的面向国际客户的数字货币交易平台Bittrex International,并开放IOST/BTC交易对。



交易所网址:

https://international.bittrex.com/


此次上线Bittrex International是主流数字货币市场对IOST的又一次认可,IOST将继续开拓全球市场,并与大家分享更多新进展。


五、国际增长进展


中国

 IOST X Binance Info


Binance Info推出“金标计划”,IOST首批入驻获官方金V认证。


11月26日,币安旗下区块链信息数据平台Binance Info推出“金标计划”,对项目进行金V认证,首批邀请100个热门项目入驻。



IOST已受邀入驻Binance Info,并获得Binance Info官方金V认证。今后大家可以在Binance Info了解IOST项目进展、实时交易、新闻更新等信息。


IOST金标主页链接:

https://info.binance.com/cn/currencies/iostoken


欧洲

 Terry受邀出席俄罗斯Tech Week区块链周


IOST CTO Terry受邀出席2018俄罗斯Tech Week区块链周,并发表主题演讲。本次活动中,Terry与来自世界各地的区块链从业者与关注者们分享了IOST团队的核心理念、技术架构与项目进展。



会后,Terry接受了多家俄罗斯媒体采访,采访中Terry介绍了IOST测试网的重大进展,以及主网将会有多项性能突破。Terry表示,很高兴能参加本次区块链周,与众多区块链技术大咖进行交流。本次区块链周,IOST的技术理念获得了参会者极高的认同和支持。


采访视频链接:

https://dwz.cn/BTitEJTv


东南亚

 东南亚负责人Lawrence出席新加坡Bibox峰会


IOST东南亚负责人Lawrence出席了新加坡Bibox峰会,并与去中心化应用 Virtual Arena的创始人Xitij进行了合作洽谈。



Virtual Arena是一个颠覆传统媒体行业,并赋予内容创作者更多权力的DApp,之后Virtual Arena将会在IOST主网上搭建运行。这将为IOST吸引更多开发者,并为IOST的生态发展奠定良好的基础。


 IOST与BTCN TV达成合作


IOST与BTCN TV达成合作,将共同创建一系列视频,解释加密货币和区块链的基本原理。社区成员可发邮件针对此主题进行提问,问题将有机会在视频中得到解答。邮箱:[team@iost.io]


日本

 IOST日本团队受邀出席东京法律科技峰会


IOST日本团队受邀出席2018年东京法律科技峰会并搭建展台。来自爱知教育大学法律系的学生代表Iichi Aai在峰会上就IOST项目发表了演讲,介绍了IOST的核心理念和技术优势。



超过500名律师和法律技术工作人员参加了此次活动,并对智能合约在实际应用中的无限可能性表现出了极大的兴趣。


-END-



官方网站

iost.io


社交平台

Weibo https://weibo.com/u/6502023048

Twitter twitter.com/iostoken

Telegram t.me/officialios

GitHub https://github.com/iost-official

Medium medium.com/@IOStoken

Zendesk iost.zendesk.com


商务合作

contact@iost.io


IOSToken

新一代安全可扩展的线上服务生态系统