当前开发一旦修改会定时提交到github上的dev分支中,欢迎大家去围观并+start
已合并至master
《安全补丁方案》
https://bbs.ifc123.net/thread-19401.htm
此版本为安全补丁,故按照命名规则,版本号为1.9.3版本开发进度。大约会正式测试6次,最终版本号约为1.9.3.1。
还有新版本的启动页面图片也可以开始设计(设计完成,并已使用,主要是还原188钱包的简约风格)。尺寸请参考当前无限币钱包启动图
2019.5.20-21
安装ubuntu1404server版【完成】
安装lxde桌面【完成】
安装qt creator【完成】
静态编译qt4【完成】
配置其他无限币开发库【完成】
2019.5.22
尝试编译Infinitecoin1.9.1.4版本【完成】
切换到testnet第三版进行挖矿测试【完成】
局域网组网成功【完成】
挖矿测试成功【完成】
添加隐藏钱包首页的社区链接选项【完成】
测试该选项的功能【完成】
更改首页右下角版本号从手工输入到自动获取【完成】
从添加此功能开始重新熟悉Infinitecoin的源码【完成】
2019.5.23-28
研究源码,Infinitecoin源码开发较早,注释不全面,代码较为凌乱,估计还需要研究5天左右,未后续开发做铺垫
研究Infinitecoin源码【完成】
研究Infinitecoin区块同步的逻辑【完成】
2019.5.28
为进一步研究无限币的代码,也方便以后其他开发人员一起进行开发,开始为无限币源码的主要部分进行注释。
大概会产生2000-5000行注释。【中断】
为期大约2个月,在此期间会完成对安全补丁的开发。【中断】
目前已经理清楚区块接受和重组的思路,由于时间和精力有限,注释工作等以后再进行。【2019.6.26】
2019.6.10-16
找完整的无限币运行日志【完成】
终于在社区服务器上找到3GB的日志【完成】
找能够打开超大日志的工具,无果【完成】
自行开发,流式日志查看工具【完成】
分析日志。。。。【完成】
寻找测试矿机【完成】
2019.6.16-17
历经10小时,查找到2019年5月28日11点21分(GTM),攻击者留下的痕迹【完成】
验证了之前攻击的猜想,使用快速产块,产生最长链,实现攻击【完成】
2019.6.18-20
专家论证和指导【完成】
通过分析3GB,1600多行日志,常规软件无法打开,在2位研究生的帮助下,开发了日志分析工具。【完成】
在博士的指导下,利用日志分析对2个数据进行了分析和统计,情况下方附件【完成】
此次日志分析直接证明“安全补丁方案”的可行性。【完成】
2019.6.21
测试网络testnet4启动【完成】
2019.6.22-25
宣传募捐和整理用于开发无限币的“无限币开发基金”,为后续开发做准备。【进行中】
2019.6.26-2019.6.29
搭建测试网络矿池【完成】
进行测试网络testnet4挖矿【完成】
2019.6.30-2019.7.13
编写代码,调试,测试编译【完成】
制订补丁编号和补丁记录【完成】
修复#2、#3 issue【完成】
完成第一次开发基金决策小组投票,决定将钱包首页的社区链接隐藏,在选项页增加开启功能【完成】
2019.7.14-2019.7.21
【完成】
使用p2pool进行测试网络testnet4挖矿【遇到问题】 p2pool无法启动,一直停留在 【已解决,69004网络标识错误】
Testing bitcoind P2P connection to '172.16.226.137:19321'...
有兴趣的可以一起研究
请下载文件: p2pool-ifc.zip 和 ifc1920-ubuntu1404.zip
ifc1920ubuntu1404执行文件
ifc启动参数
-rpcuser=root -rpcpassword=123456 -rpcport=9322 -server -port=19321
p2pool-ifc带testnet矿池,矿池搭建教程:https://bbs.ifc123.net/thread-19464.htm
p2pool启动参数
pypy run_p2pool.py --net infinitecoin --testnet root 123456 --give-author --bitcoind-rpc-port 9322
2019.7.21
进行攻击测试【完成】,第一次1.9.2.0版本攻击测试完成,符合预期,能够抵抗51%攻击。但由于测试环境单一,不能作为权威结果。接下去还会进行多次测试。
分叉测试第一阶段完成【完成】
2019.7.22
由于分叉测试第一阶段发现大算力进入误判为攻击,导致隔离大算力,形成分叉。
在修复此问题后,进行第二阶段分叉测试
分叉测试第二阶段完成【完成】
请大家一起测试,原版,静音的,随便加入一下矿池(2019.8.3矿池有bug,经常性崩溃,正在研究中)
47.99.127.69:9391
47.99.33.46:9391
47.99.45.121:9391
此矿池为测试矿池,不会影响主链,挖矿也不会得到奖励。
为方便观察,矿池奖励地址可以设置成以下任意一个:
n4AzcadtYiVLQPXt9UvQQ3itTkA4rM1hdp |
mvfVza1FhFPTPCmj1Hg49gYghuincecpJp |
n4N3zBiYUiDwvnNEeptHkr9baV2hgvCsgS |
mn4YS6uVJVSXHQP2cG4TtK7bf9FWdohoZ8 |
mw4kAFX9tU2ucQBJi1Wm1XUnQ4kCqGnZcw |
2019.7.22-2019.7.25
经过多天的测试,基本趋于稳定。已经修订了5个版本,目前版本1.9.2.5。当然该版本依然只能用于测试网络,请勿替换1.9.1.4或1.9.1.5。
请大家帮助一起测试:
https://bbs.ifc123.net/thread-19498.htm
2019.7.26-2019.7.27
观察钱包运行情况,分析钱包日志,分析矿池日志。
思考主网部署的顺序和逻辑。
代码已全部提交github
已联系白盒测试人员,对代码进行再次审查。
已联系之前的指导方向的博士和2位硕士,预计在接下去的几天会给我答复。
矿池日志和钱包日志分析结果表明,目前算力和难度的变化符合之前的钱包标准,只是算力低的情况下,挖矿难度更高,准时出块的情况会有所下降。但算力提升后会有改善。并且也由于这样的设计,增加了攻击的难度。
难度值计算采用简单PID控制算法,进行预测性和回归性计算,使大算力加入和攻击时不被过多干扰。
今天是个伤心的一天,由于自己之前的一个不成熟的想法,被人挖出来,断章取义,大肆宣传。说真的,从没见过用这样的宣传力度来宣传无限币,反而用在我身上,我也很荣幸。
但是心寒依旧,有几点:
1、在社区2年,居然连很多老朋友都会来怀疑我,难道不知道我的为人吗?
2、默默贡献,默默付出,不断被黑,无人出来当面支持我,没人出来挺我
3、新钱包努力了2个月,花了不少钱,面临流产的可能,心寒。
4、群里人偏听偏信,只要是谣言都听得比真话清楚,有真相从来不去关注,绯闻最好玩。
5、大家都不懂技术,写的代码没人去查阅,感觉一厢情愿。
6、恶意做空的人又要再次得逞,如果接下去发布钱包,就是利好,岂不是被利用?哎~
7、体会到了人性的恶。
2019.7.29
修改一些表面的东西:
1、完善选项页翻译
2、交易详情页面不能缩放,导致同时转出很多交易时显示不完整。
3、交易列表中,表前的图标显示不正确的问题等
4、关于页面链接更改
5、开发测试数据分析工具
6、发布1.9.2.7测试钱包,仅用于测试网络。
邀请大家一起测试:
https://bbs.ifc123.net/thread-19498.htm
专业测试(白盒测试)【2018.8.2 完成】
集中内测+压力测试【2018.8.1完成】
第二轮攻击测试【2018.7.28-8.1,共2次完成】
2019.8.1
压力测试【完成】
分叉测试【完成】
第二轮攻击测试【未实现攻击,完成】
讲述社区内10多位成员(真实参与人数),进行了一次压力测试的故事。
2019年8月1日,晚9点,我锻炼跑步后回家,毅然决然关闭了运行1整天的矿池,而且是全关。让无限币测试网络没有一点算力。之后,约定好的转账开始了,10多位社区成员,使用由(白衫如初)和(i)开发的自动化转账工具,对1.9.2.7版本的无限币钱包进行疯狂转账。由于没有一点算力,所以所有转账虽然秒到,但是不被打包。总共积累了2000多笔交易,每笔交易包含24个收款地址。
我看差不多了,就开启了矿池,意外开始一个接一个的发生。
首先,矿池开启后,为了验证在无限币交易内存池中的这2000多笔转账,双核4G的服务器(CZ提供),CPU占用了50%。启动矿池发现4台原版L3+(迷人的秋风提供)的算力汇集后,p2pool矿池与钱包使用jsonrpc连接,受到钱包端的就算压力,始终无法正常接收算力,一直得到死块和孤块。
3个节点(1核1G50M带宽,一路有你使用开发基金购买),也由于大量交易,CPU100%,且无法远程管理。就没去理他们了。
无奈,只能使用牧笛提供的双核4G50M服务器重新搭建矿池,接入了Edward提供的原版矿机,之后就开始产块了。这期间大约经过有半个小时。
之后产生了一个包含1000笔交易,2万4千个转账地址的区块,区块大小为1.4M。这是无限币有史以来最大的区块。
由于原矿池中的钱包被我关闭后,再开起来,导致内存中的交易全部取消,所以一开始的转账尚未同步过来。所以才产生了1000笔交易的区块,如果不关掉,可能会一次性打包所有的交易,也就是2000多笔。但是也可能由于计算机和矿机的计算性能有限,而无法达到如此多的交易打包进一个区块。目前无限币的区块硬限制为10M,软限制是5M,每笔交易的大小为100KB。
之后又有一个问题产生,有部分未全程参与的成员,开启钱包后发现无法同步。起初大家以为是分叉了,但经过我排查矿池和多个节点的日志,对比同一个高度的区块hash,也分析了不能同步的钱包的日志和区块数据,发现都没有分叉。但是就是不进行同步。此问题必然是一个bug。
2019.8.2
经过昨天晚上的压力测试【完成】,对发现的一些问题进行了记录和解决。
1、首先解决的问题是不能同步的问题,在经过对区块数据的分析后,并没有发现问题。但是检查日志时,发现一个很小的记录,blkindex中记录的区块索引比blkxx.dat中的区块多,这可能就是无法同步的原因。关于这个问题的细节,目前不方便公布,由于此问题可能牵扯的版本较多,并非本次更新导致,为保证主网安全,不过多描述。
2、同时进行压力测试发现矿池所在的服务器配置要求比较高,推荐使用4核心8G50M带宽的。
3、节点也需要至少双核4G50M带宽。目前的1核心1G的服务器只能当玩具使用,也就现在主网没啥转账,否则瞬间挂掉
4、目前192钱包的算力提升经过优化后,大算力加入,也是需要缓慢的提升过程,这是经过设计的,防止大算力突然切入,再突然离去。
5、大算力突然离开后,大约10分钟就能够产块,按2G:20M的关系计算。
白盒测试报告【完成】,新增代码不存在内存泄漏及其他的明显bug,所有逻辑分支都能正常访问及与预设结果一致。
2019.8.8
1、在应用开发时软件开发工程师 i,开发infinitecoin-tx和infinitecoin-cli工具时发现一个问题。createrawtransaction 参数以object方式传入,go以及其他一些语言的map类型 无法按照传入的顺序进行输出,会导致第一笔找零跑到后面去,
所以,为createrawtransaction增加了rpc函数的第二个参数增加了兼容格式,可以以数组的形式传入参数,同时保留原来的调用方式。
调用格式1(btc、ltc依然使用这种方案,go在map转json时很难处理)。
createrawtransaction '[{"txid" : "fff075daeb751aca13633530d7d5296604d652cd69cd88cb32d7460e2d814055","vout" : 0},{"txid":"fffbf9aff92a9f2e6daec5619ac5697f3a3d18c19808a625fdfa9911fd735fa5","vout" : 0}]' '{"mi6wona13A1orjiKUweHyPpsXwJxyKx9qu":100,"mqDcmBTArnMnFVzDeWtitqVGop8hek4Fh5":200}'
01000000025540812d0e46d732cb88cd69cd52d6046629d5d730356313ca1a75ebda75f0ff0000000000ffffffffa55f73fd1199fafd25a60898c1183d3a7f69c59a61c5ae6d2e9f2af9aff9fbff0000000000ffffffff0200e40b54020000001976a9141c5dfcc84d3af147f9b346d78d5d3ec5adee268688ac00c817a8040000001976a9146a69e1ba5e7a71b148354f4ae6a987debdbd1de588ac00000000

调用格式2,以数组的方式传入参数,正常编程语言的数组一般都是按照顺序输出的。
createrawtransaction '[{"txid" : "fff075daeb751aca13633530d7d5296604d652cd69cd88cb32d7460e2d814055","vout" : 0},{"txid":"fffbf9aff92a9f2e6daec5619ac5697f3a3d18c19808a625fdfa9911fd735fa5","vout" : 0}]' '[{"address":"mi6wona13A1orjiKUweHyPpsXwJxyKx9qu","amount":100},{"address":"mqDcmBTArnMnFVzDeWtitqVGop8hek4Fh5","amount":200}]'
01000000025540812d0e46d732cb88cd69cd52d6046629d5d730356313ca1a75ebda75f0ff0000000000ffffffffa55f73fd1199fafd25a60898c1183d3a7f69c59a61c5ae6d2e9f2af9aff9fbff0000000000ffffffff0200e40b54020000001976a9141c5dfcc84d3af147f9b346d78d5d3ec5adee268688ac00c817a8040000001976a9146a69e1ba5e7a71b148354f4ae6a987debdbd1de588ac00000000
2、为交易明细窗口增加滚动条,在转账记录较多时,可以滚动显示
3、转账确认提示窗口在同一笔转账多个地址时,会造成撑满屏蔽挡住确定按钮,所以也进行了精简提示内容。
4、手续费确认窗口的提示进行了修改,原超限的提示去除。
更新版本为1.9.2.9,目前依然为测试网络版本,请勿用于主网。
2019.8.3-2019.8.10
社区内测(邀请50-200人参与转账测试,观察节点和矿池的日志,收集用户建议)【完成】
对矿池经常崩溃的bug进行查找,努力尝试进行修复【完成】
2019.8.11
对上报问题进行筛选和尝试修复。【完成】
2019.8.15- 9.19
1929测试完成
2019.9.26-29
高度5529599之后增发问题的分析
修复此问题
由于增发已产生,所以不得已只能进行分叉升级
bug修复测试【完成,从5529600开始不再接受】
详细请看 《无限币总量溢出,社区采取紧急措施》https://bbs.ifc123.net/thread-19576.htm
社区钱包测试小组共同完成
编译完成1.9.3.1版本钱包,linux64 + win32【完成】
群内投票正式确定1.9.3.1版本钱包客户端命名为Tortoise【龟】,寓意长寿吉祥、防御力高。借此希望无限币也能够长存于区块链世界,与时俱进,不断完善和发展【完成】
2019.9.29-10.20
主网挖矿测试【完成】
主网同步测试【完成】
主网切换【完成,已在高度5529599时切换】
详细请看 《无限币总量溢出,社区采取紧急措施》https://bbs.ifc123.net/thread-19576.htm
转账测试【完成】
开放下载【完成】
2019.10.20
部署全球测试网络内测【完成】
持续观察主网运行情况【完成】
联系矿工及矿池主,进行部署新版钱包【完成】
联系交易所预告主网激活时间【完成】
目前1.9.3.1钱包允许正常
-----
请大家踊跃参与,处女座群:553075680
最后于 2019-10-26
被一路有你编辑
,原因: 修改进度 完成至 2019.10.20
无限币1.9.3开发历程
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!