为区块链应用设计本地数据库存储结构

广告位招租
扫码页面底部二维码联系

区块链和区块链应用这两个概念是不一样的。【作者:唐霜】【关注微信公众号:wwwtangshuangnet】对于一个纯区块链而言,只需要保证它拥有三著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。个要素:1.链表结构的区块存储结构设计,【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】2.点对点网络,3.加密技术保证不可伪造【作者:唐霜】【访问 www.tangshuang.net 获取更多精彩内容】。但是对于一款应用,特别是现代的应用,这本文作者:唐霜,转载请注明出处。【转载请注明来源】三个要素完全不够。对于一个应用,还要考虑【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。:1.用户(账号)体系,2.鉴权体系,3【原创内容,转载请注明出处】【作者:唐霜】.业务数据。因此,我们这篇文章要来探讨一转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net下,一个区块链应用应该如何设计它本地的数本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】据库存储结构。

【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net【作者:唐霜】

选择底层数据库【原创内容,转载请注明出处】

【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。

对于区块链应用而言,有两个部分的数据:区【本文受版权保护】【本文受版权保护】块链数据和应用状态数据。以比特币为例,区原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。块链数据中保存着历史交易数据,而这些数据【版权所有,侵权必究】【作者:唐霜】包含了上述提到的那几个方面,除了历史交易转载请注明出处:www.tangshuang.net原创内容,盗版必究。数据,比特币客户端(应用)还需要保存没有【转载请注明来源】本文作者:唐霜,转载请注明出处。被写入区块链的一些数据,比如过去一段时间未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。发起的新交易。比特币的区块链数据被存储在本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】很多.dat文件中,它采用的数据结构我至本文作者:唐霜,转载请注明出处。【作者:唐霜】今没有搞懂,阅读了很多材料,都没有明白比著作权归作者所有,禁止商业用途转载。【版权所有,侵权必究】特币raw data使用的是什么技术,不【未经授权禁止转载】【未经授权禁止转载】过市面上已经有很多软件可以直接解析比特币原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。区块链数据,所以读取比特币区块链也不是什【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net么问题。而比特币的这些.dat区块数据不转载请注明出处:www.tangshuang.net原创内容,盗版必究。是以我们熟悉的数据结构存储的,所以在查询原创内容,盗版必究。【原创不易,请尊重版权】数据的时候,无法像现代数据库一样通过查询著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。语句或方法快速查询。为了解决验证某个交易未经授权,禁止复制转载。【访问 www.tangshuang.net 获取更多精彩内容】的速度,比特币采用了leveldb作为k【本文首发于唐霜的博客】【版权所有,侵权必究】ey-value数据库保存着整个区块链的未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net索引,以保证可能通过各种key快速找到需【原创不易,请尊重版权】【未经授权禁止转载】要的数据。另外,那些还没有写入区块链的c原创内容,盗版必究。本文作者:唐霜,转载请注明出处。hainstate数据也是用leveld【作者:唐霜】转载请注明出处:www.tangshuang.netb保存在另外一个库中。

【访问 www.tangshuang.net 获取更多精彩内容】【未经授权禁止转载】未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】

那么对于非币应用,或者代币应用,怎么来搞【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。自己的数据库呢?

【转载请注明来源】原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】

上面你可以看到,实际上,一个区块链数据库著作权归作者所有,禁止商业用途转载。【转载请注明来源】结构里面包含三个(或更多)部分:1.只能【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。执行插入和查询动作的块链数据库,2.块链本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net数据的索引,3.chainstate数据【原创不易,请尊重版权】转载请注明出处:www.tangshuang.net,这个数据是可变的。而怎么把账号体系、业【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。务体系等数据加入进去呢?很明显,账号体系【原创内容,转载请注明出处】【关注微信公众号:wwwtangshuangnet】、鉴权体系、业务体系的数据全部要入链。在著作权归作者所有,禁止商业用途转载。【转载请注明来源】p2p同步时,只有block数据被同步,【本文首发于唐霜的博客】【本文受版权保护】其他数据都是通过网络广播等方式传递和接收【未经授权禁止转载】转载请注明出处:www.tangshuang.net的,索引数据在同步时创建。

著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】【作者:唐霜】【版权所有,侵权必究】

用sql数据库保存区块链。原创内容,盗版必究。

【未经授权禁止转载】本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net

我们抓住区块链表的特征,即下一个区块保存转载请注明出处:www.tangshuang.net【作者:唐霜】着上一个区块的hash,同时通过merk本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】le算法保存了区块内容的hash。所以,原创内容,盗版必究。本文作者:唐霜,转载请注明出处。我们其实很好利用sql数据库来保存blo未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。ck数据,而且,sql数据库可以自定义索【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】引,所以,索引数据库都省了。因此,我们的【作者:唐霜】著作权归作者所有,禁止商业用途转载。应用里面,可以最终总结为两类数据:块链数本文作者:唐霜,转载请注明出处。原创内容,盗版必究。据、chainstate数据。其中块链数本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。据使用sql数据库保存,只具备inser【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】t和select的权限。而chainst【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。ate使用kek-value数据库保存,原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】读取效率更高。

著作权归作者所有,禁止商业用途转载。【本文首发于唐霜的博客】【原创内容,转载请注明出处】

用sqlite和leveldb作为底层数【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。据库。

【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】转载请注明出处:www.tangshuang.net

sql数据库和key-value数据库都【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。有很多很多,比如orcal、redis等未经授权,禁止复制转载。【转载请注明来源】等,但是我们开发一个区块链应用,常常需要【本文受版权保护】转载请注明出处:www.tangshuang.net保证把数据放在客户端本地,而非服务器,所【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】以,这个时候,数据库必须和应用代码一起发本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。布。当然,如果你能强制用户在安装你的应用转载请注明出处:www.tangshuang.net【版权所有,侵权必究】之前安装一个本地数据库服务,也是可行的,【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。比如微软的很多软件,就要求你事先安装.n转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。et framework。不过这种需求显【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】然体验感不是很好,除非是企业级用户。

本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】

sqlite是非常轻量级的sql数据库,【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】最重要的是,它是基于文件的,而非内存的,【版权所有,侵权必究】【转载请注明来源】它的所有数据被保存在一个.db文件里面,【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】而且不依赖任何服务。也就是说,你可以将这【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。个数据库打包进自己的应用,而不用要求用户转载请注明出处:www.tangshuang.net原创内容,盗版必究。在安装你的应用之前再安装一个其他什么数据【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。库了。不过当然,sqlite的性能在遇到【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】大数据量的时候是不怎么理想的,因此,我们【转载请注明来源】【原创内容,转载请注明出处】需要通过各种优化手段和架构来控制单个数据转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】库的数据量,采用分库等方式,提高后期可能【本文受版权保护】原创内容,盗版必究。的查询能力。

【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】

leveldb和sqlite一样,也是基【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net于文件系统的,可以被打包进应用。它具备非【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。常高的写性能,由于设计简单,它的读性能也原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net完全不输给内存级的key-value数据本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】库。当然,因为它的设计简单,它没有分库等本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】功能。我们需要通过合理的控制key的前缀【本文受版权保护】【原创内容,转载请注明出处】,来保证我们可以通过有一定规律的key来原创内容,盗版必究。原创内容,盗版必究。找到想要的数据集合。

著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】

数据库表结构【版权所有】唐霜 www.tangshuang.net

转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】【访问 www.tangshuang.net 获取更多精彩内容】

我们以一个博客系统为例来进行分析,毕竟基原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net于数据库技术的应用千变万化,结构不可能只【作者:唐霜】未经授权,禁止复制转载。有一种。但是,我们通过这个案例,可以分析【未经授权禁止转载】原创内容,盗版必究。出,区块链应用怎么在业务、用户、块链三者本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】之间建立“不可篡改”的存储数据。

原创内容,盗版必究。【原创不易,请尊重版权】【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。原创内容,盗版必究。

首先是区块表(block table)。

【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】

一个区块的表,需要记录这个区块的各种信息著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。,特别是区块头信息。我的设计如下:

著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。
字段名本文作者:唐霜,转载请注明出处。 类型本文作者:唐霜,转载请注明出处。 长度【未经授权禁止转载】 备注【原创不易,请尊重版权】
version【转载请注明来源】 string未经授权,禁止复制转载。 8【关注微信公众号:wwwtangshuangnet】 客户端的版本【版权所有】唐霜 www.tangshuang.net
block_hash【版权所有,侵权必究】 string本文作者:唐霜,转载请注明出处。 128本文作者:唐霜,转载请注明出处。 区块hash【版权所有】唐霜 www.tangshuang.net
previous_block_hash【原创不易,请尊重版权】 string【作者:唐霜】 128【关注微信公众号:wwwtangshuangnet】 上一个区块hash原创内容,盗版必究。
timestamp本文作者:唐霜,转载请注明出处。 number转载请注明出处:www.tangshuang.net 16本文作者:唐霜,转载请注明出处。 挖矿时间戳本文版权归作者所有,未经授权不得转载。
diffculty【关注微信公众号:wwwtangshuangnet】 number【未经授权禁止转载】 32【本文受版权保护】 挖矿难度【原创不易,请尊重版权】
nonce【本文受版权保护】 number【原创不易,请尊重版权】 16【原创不易,请尊重版权】 挖矿随机数【关注微信公众号:wwwtangshuangnet】
merkle_root【关注微信公众号:wwwtangshuangnet】 string【转载请注明来源】 128【转载请注明来源】 业务数据的merkle root has本文版权归作者所有,未经授权不得转载。【作者:唐霜】h

这就是一个区块链的区块表,这些是基础字段【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。,作为一个应用,可以在这个基础上进行扩展【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。,但是应该遵循一个规则,就是尽可能的保证【本文首发于唐霜的博客】【原创内容,转载请注明出处】存储的数据更少,能够通过计算得到的数据,【未经授权禁止转载】【原创不易,请尊重版权】就不要设计在sql数据库里面去,可以考虑本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】放在key-value数据库里面去。要知【版权所有】唐霜 www.tangshuang.net【转载请注明来源】道,当一个应用运行N年以后,即使看上去这【访问 www.tangshuang.net 获取更多精彩内容】转载请注明出处:www.tangshuang.net么几个字段的表,也会多到爆炸。

著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net

业务数据表。【未经授权禁止转载】

【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net原创内容,盗版必究。【作者:唐霜】

下面是业务数据,也就是我们这里假设的博客未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net的内容。对于一篇博客,我们必要的字段其实原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。不多:

原创内容,盗版必究。【未经授权禁止转载】【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net
字段名未经授权,禁止复制转载。 类型【原创不易,请尊重版权】 长度原创内容,盗版必究。 备注【版权所有】唐霜 www.tangshuang.net
version【转载请注明来源】 string【访问 www.tangshuang.net 获取更多精彩内容】 8未经授权,禁止复制转载。 客户端的版本转载请注明出处:www.tangshuang.net
article_hash【原创不易,请尊重版权】 string本文作者:唐霜,转载请注明出处。 128【未经授权禁止转载】 文章hash(相当于文章ID)转载请注明出处:www.tangshuang.net
article_title转载请注明出处:www.tangshuang.net string【本文受版权保护】 128【关注微信公众号:wwwtangshuangnet】 文章标题【版权所有,侵权必究】
article_timestamp【访问 www.tangshuang.net 获取更多精彩内容】 number【转载请注明来源】 16【未经授权禁止转载】 文章时间戳【作者:唐霜】
article_content【版权所有】唐霜 www.tangshuang.net longtext著作权归作者所有,禁止商业用途转载。 文章内容【关注微信公众号:wwwtangshuangnet】
article_author【访问 www.tangshuang.net 获取更多精彩内容】 string著作权归作者所有,禁止商业用途转载。 128【关注微信公众号:wwwtangshuangnet】 撰写文章的用户hash【作者:唐霜】
block_hash原创内容,盗版必究。 string本文版权归作者所有,未经授权不得转载。 128【未经授权禁止转载】 这篇文章所在的区块hash【访问 www.tangshuang.net 获取更多精彩内容】

你看到block_hash可能会觉得奇怪转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】,没错,在插入文章数据前,block_h著作权归作者所有,禁止商业用途转载。【版权所有,侵权必究】ash已经被计算出来了。

原创内容,盗版必究。【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net

既然是博客系统,那么评论也是必须的:转载请注明出处:www.tangshuang.net

【原创内容,转载请注明出处】未经授权,禁止复制转载。未经授权,禁止复制转载。【未经授权禁止转载】【访问 www.tangshuang.net 获取更多精彩内容】
字段名本文版权归作者所有,未经授权不得转载。 类型【版权所有,侵权必究】 长度【关注微信公众号:wwwtangshuangnet】 备注【原创不易,请尊重版权】
version【作者:唐霜】 string著作权归作者所有,禁止商业用途转载。 8本文作者:唐霜,转载请注明出处。 客户端的版本著作权归作者所有,禁止商业用途转载。
comment_hash著作权归作者所有,禁止商业用途转载。 string【版权所有,侵权必究】 128【转载请注明来源】 评论hash(相当于评论ID)【转载请注明来源】
comment_article_hash string本文版权归作者所有,未经授权不得转载。 128本文版权归作者所有,未经授权不得转载。 这条评论是属于哪一篇文章的未经授权,禁止复制转载。
comment_parent_hash【原创内容,转载请注明出处】 string【原创不易,请尊重版权】 128【原创内容,转载请注明出处】 这条评论是回复给哪一条评论的,默认为0,原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】表示不是回复给评论,而是直接评论给文章
comment_timestamp本文版权归作者所有,未经授权不得转载。 number【作者:唐霜】 16【关注微信公众号:wwwtangshuangnet】 评论时间戳【版权所有】唐霜 www.tangshuang.net
comment_content【本文首发于唐霜的博客】 longtext原创内容,盗版必究。 评论内容未经授权,禁止复制转载。
comment_author【版权所有,侵权必究】 string【版权所有】唐霜 www.tangshuang.net 128本文作者:唐霜,转载请注明出处。 评论的用户hash【版权所有】唐霜 www.tangshuang.net
block_hash本文作者:唐霜,转载请注明出处。 string原创内容,盗版必究。 128【原创不易,请尊重版权】 这条评论所在的区块hash未经授权,禁止复制转载。

上面就是区块链的数据库表了。【关注微信公众号:wwwtangshuangnet】

【关注微信公众号:wwwtangshuangnet】【本文首发于唐霜的博客】【原创内容,转载请注明出处】【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。

等一等,用户数据呢?难道你都不把用户数据【转载请注明来源】【转载请注明来源】保存下来,这顶什么用?难道界面上直接显示本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。用户的hash就算了?别慌。用户数据属于【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】加密体系的一部分,不会被记录到区块链中,【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】而是记录在chainstate中,你想想【版权所有,侵权必究】【作者:唐霜】,用户难道还不要经常换换头像、改改昵称什【作者:唐霜】【访问 www.tangshuang.net 获取更多精彩内容】么的么?而且,我们可以通过用户的密钥来对转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。用户的权限进行验证。这下面的部分再详细阐【本文受版权保护】【版权所有,侵权必究】述。

本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。

总之,对于一个博客系统,就上面这些字段就【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。够用啦。但是,要保证区块链数据的不可篡改未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。性,我们还要做一些设计。

原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。
merkle_root = sha256(sha256( article_hash1 + article_hash2 + ... comment_hash1 + comment_hash2 + ... ))

在验证一个数据是否被改动时,利用merk【本文受版权保护】本文版权归作者所有,未经授权不得转载。le的验证算法,从区块链里面查询出对应的【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】数据进行merkle验证就可以知道是不是原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。有问题了。

本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。

chainstate数据结构本文版权归作者所有,未经授权不得转载。

【访问 www.tangshuang.net 获取更多精彩内容】【访问 www.tangshuang.net 获取更多精彩内容】【作者:唐霜】【版权所有】唐霜 www.tangshuang.net【转载请注明来源】

前面提到我们用key-value数据库保转载请注明出处:www.tangshuang.net【转载请注明来源】存chainstate数据,我们尽量让k【转载请注明来源】本文版权归作者所有,未经授权不得转载。ey-value更加扁平,不要做多层嵌套本文作者:唐霜,转载请注明出处。【作者:唐霜】。现在我们来看下用户数据:

原创内容,盗版必究。未经授权,禁止复制转载。【原创不易,请尊重版权】原创内容,盗版必究。
"author_03a89fc89aa9c7b7..." => {
  "nickname": "tony",
  "publicKey": "a8fcdc982eda..",
  "avatar": "data:image/png;base64,...",
  "description": "I'm a clear boy."
}

而一个用户的hash是通过该用户的公钥经本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net过加密得到的,要验证该用户的真实性,只需本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】要用他的公钥加密某个随机数,让他用私钥解【原创不易,请尊重版权】未经授权,禁止复制转载。密进行验证即可。

未经授权,禁止复制转载。【作者:唐霜】未经授权,禁止复制转载。

另外,有很多发布了但还没有记录到区块链里本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】面的文章,等着被矿工写入。为了防止矿工篡本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。改用户发布的内容,用户发布时,仅广播内容未经授权,禁止复制转载。【本文首发于唐霜的博客】的hash,原始内容经过加密,矿工仅利用【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。这些hash进行挖矿,挖矿成功后才能解锁本文版权归作者所有,未经授权不得转载。【转载请注明来源】原始内容:

未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】【版权所有,侵权必究】
"block_0ca452ced99..._merkle_hashes" => [
  {
    "author_hash": "03a89fc89aa9c7b7...",
    "article_hash": "0034cd00e37...",
    "article_raw_script": "xxx..."
  },
  ...
]

评论数据也是一样,它们被暂时保存在cha著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.net 获取更多精彩内容】instate里面,等到区块生成之后,这【本文受版权保护】【原创不易,请尊重版权】些临时数据就可以从chainstate里【版权所有,侵权必究】转载请注明出处:www.tangshuang.net面清除。

【版权所有,侵权必究】转载请注明出处:www.tangshuang.net【版权所有,侵权必究】【未经授权禁止转载】【作者:唐霜】

总结本文作者:唐霜,转载请注明出处。

著作权归作者所有,禁止商业用途转载。【本文受版权保护】【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】【原创不易,请尊重版权】

本文从一个区块链应用的底层数据库出发去看【关注微信公众号:wwwtangshuangnet】未经授权,禁止复制转载。区块链应用。当然,这里面还有很多细节,需未经授权,禁止复制转载。【转载请注明来源】要在开发中去解决,这里只是提供了底层数据【作者:唐霜】本文版权归作者所有,未经授权不得转载。库选择和设计的一个思路。在一些具体问题上【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】,比如共识机制,比如如何刺激用户贡献内容原创内容,盗版必究。原创内容,盗版必究。等等,都是一个待解决的问题。

著作权归作者所有,禁止商业用途转载。【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net

2018-04-07 16824 ,

为价值买单,打赏一杯咖啡

本文价值168.24RMB
已有4条评论
  1. dongfeng 2019-04-22 12:32

    你好  我想请问一下,从哪里能够获得比特币区块数据(就是获得区块链上真实的一个个区块)啊? 因为要做实验 谢谢啦

    • 否子戈 2019-04-22 12:41

      你可以下载官方的钱包客户端,同步整个链,然后用一个第三方工具去将链数据格式化为结构化数据。
      不知道有没有第三方提供完整的链数据,你自己谷歌吧。

      • dongfeng 2019-04-24 14:19

        你好,文中 您说的那个存储区块链数据的.dat文件是在哪里找到的啊?一个.dat文件是不是一个区块?

        • 否子戈 2019-04-28 22:28

          .dat文件是最早的比特币钱包的数据文件,是一种非常原始且结构不常见的数据,最早的时候是一个区块一个.dat,但是后来随着技术更新,.dat文件好像已经不用了,钱包采用了新的数据存储形式,我已经没关注很久了,不知道现在的具体情况