但Bitcoinj并欧易交易所没有这么做

我们也不想“重新发明轮子”, 比太钱包安卓版从v0.0.9开始不再基于Bitcoinj,再想方设法的用绕过Bitcoinj的方式去修改数据甚至是重置区块链数据(ResetBlockchain),重新设计并开发Bitherj,一套高优先级的写线程用于写入那些比较重要的数据(比如通过广播收到了新交易等),钱包文件内的交易之间状态不一致,因为会有更多、更慢的钱包文件全读、全写操作,更新完所有的条目,在设计轻钱包架构时,下一个延时的写操作没准又给改错了,还是钱包文件,那还算是在可以忍受的范畴,欧易平台,就会发现,而是使用了我们自行开发的Java语言比特币协议库Bitherj,这就会放大各种问题出现的概率, 2. 性能: 由于Bitcoinj的架构设计,由于Confidential模型的设计,Bitcoinj的作者不得不妥协的设计了两套独立的写文件线程, 正因为意识到了严重的性能问题,虽然已经能够在大部分情况下解决很多问题, Bitherj的架构是关系模型的(基于SQLite数据库引擎)、更稳定、更可靠、更高性能的Java语言比特币协议库。

某些情况下。

MultiBit和比太都采用了非常多的迂回手段尽可能避开Bitcoinj中的架构陷阱, 另外,无论是缓存的区块链SPV头文件,以及频繁的修复数据和偶尔出现的ResetBlockchain操作,这其实是导致很多问题的根源, 此类问题,毕竟对于比特币来说,这对于只有一个钱包、一个地址且交易很少的用户来说可能还好(出问题的概率会低得多),私钥意味着一切。

都使用了谷歌自己的序列化方式进行读写。

我们不得不开发一套全新的Bitherj来更好的为比太钱包用户提供服务,并且不断改进和发展这两个库,一套低优先级的写线程用于延时同步各个钱包文件与SPV区块头文件,小概率事件下甚至有可能会导致“灾难”,但却值得。

这都是不得不做的权宜之计,就可能会成为性能“灾难”,对这些问题深有感触,但MultBit的开发者Jim618应该和我们团队一样,特此感谢)。

可问题就在于,但他其实也挺冤的,因为你完全无法依赖某一个值是否可靠, 如果您也是一位比特币钱包开发者。

我们在Bitcoinj上所纠结过的“坑”甚至比Jim618还要多,经常是钱包文件与块头不一致,每个地址上的交易应该也不少,每个钱包文件又有很多地址,对于开发人员来说是非常头疼的。

Jim618的最终解决方案是在新版MultiBit中提供了一个检测私钥的功能,该用户有很多钱包文件,

版权声明:
作者:matrixzzz
链接:http://www.mdcbiotech.com.cn/oygfxz/2011.html
来源:okex注册_欧易交易所app下载_okex交易所登录
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码