区块链
文章平均质量分 84
yijiull
这个作者很懒,什么都没留下…
展开
-
区块链和分布式数据库的区别
欢迎关注一下我的 知乎账号,以后主要在知乎分享内容。https://www.zhihu.com/people/ypjiang96/posts说一下自己的理解,如果理解有误欢迎评论区讨论 : )首先区分一下分布式 (distributed) 和去中心化 (decentralized) 这两个词。分布式:多节点共同组成一个系统,这些节点属于同一个信任域去中心化:也是多个节点组成一个系统,但是这些节点可能属于不同的信任域同一个信任域内的节点互相信任,不同信任域的节点之前不存在信任。区块链是一.原创 2021-11-10 16:27:52 · 14732 阅读 · 1 评论 -
简要介绍SIGMOD2021接收的区块链相关论文
SIGMOD 2021 将于6月20日到6月25日在西安召开,作为数据库领域毋庸置疑的顶会,今年收录了7篇区块链相关的论文,其中1篇 demo paper,6篇 research paper。这篇博客简单介绍了其中的三篇。Why do my blockchain transactions fail? A study of Hyperledger Fabric这篇论文对 Fabric 中由于 OCC 导致的 transaction failure 进行了研究,定义了三种不同的 failure 类型,并提出原创 2021-05-19 23:02:49 · 7329 阅读 · 2 评论 -
Fabric v2.2 单机部署 & 使用tape测试
文章目录部署测试本篇博客基于 Fabric v2.2 部署了一个联盟链,包含一个Org和两个peer,使用了单个节点的raft作为Ordering service。部署过程主要参考了Fabric的官方文档,大部分脚本和配置文件都来自于官方提供的样例。测试使用了 tape 这个轻量级的工具,个人觉得比 caliper 好用。部署curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.2.2 1.4.9cd fabric-samples/test-netwo原创 2021-04-06 16:06:25 · 1946 阅读 · 17 评论 -
Quorum简介&部署
文章目录简介TODO参考简介GoQuorum基于geth,在其基础上增加了一些联盟链需要的组件,主要包括以下几点:使用Raft或者Istanbul BFT共识算法,而不是PoW。加入了准入机制,而不是任何节点都可以加入网络。修改了区块产生逻辑:使用global public state root替换了global state root。(TODO)修改了区块验证逻辑:State Patricia trie分成了两个:public state trie和private state trie修原创 2021-02-09 12:11:23 · 1336 阅读 · 0 评论 -
超级账本源码解析之链码容器
本篇博客讲解Fabric如何启动链码容器并与之交互的。原创 2020-09-15 22:47:00 · 422 阅读 · 0 评论 -
超级账本源码解析之Endorsement Policy
介绍了Fabric的背书策略以及构建背书策略对象和验证背书策略的流程。原创 2020-09-14 09:22:52 · 703 阅读 · 2 评论 -
超级账本源码解析之MSP
文章目录CryptogenCryptogen为了更好的理解Fabric中MSP是如何工作的,我们先通过源码来看一下Fabric提供的Cryptogen这个命令行工具到底做了什么。核心代码在common/tools/cryptogen这个目录下,目录树如下:cryptogen├── ca│ ├── ca_test.go│ └── generator.go├── csp│ ├── csp.go│ └── csp_test.go├── main.go├── metadata原创 2020-09-13 22:06:31 · 525 阅读 · 0 评论 -
超级账本源码解析之MVCC
文章目录前置MVCC本系列目录:超级账本源码(V1.3)解析目录当peer收到leader发来的block后,需要进行VSCC、MVCC、commit三步操作。上一篇博客里我们讲了VSCC这个过程,下面分析VSCC这个过程的代码(HLF v1.3)。前置在gossip/state/state.go的listen函数中收到payload(其中有block和private data),通过queueNewMessage将其放入payloads中等待后续处理。然后在deliverPayloads原创 2020-09-03 20:25:42 · 672 阅读 · 0 评论 -
超级账本源码解析之Commit
文章目录前置Commit本系列目录:超级账本源码(V1.3)解析目录当peer收到leader发来的block后,需要进行VSCC、MVCC、commit三步操作。前两篇博客里我们讲了【VSCC】和【MVCC】这两个过程,下面分析Commit这个过程的核心代码(HLF v1.3)。前置在gossip/state/state.go的listen函数中收到payload(其中有block和private data),通过queueNewMessage将其放入payloads中等待后续处理。然后原创 2020-09-04 19:21:43 · 334 阅读 · 0 评论 -
超级账本源码解析之VSCC
当peer收到leader发来的block后,需要进行VSCC、MVCC、commit三步操作。下面我们从peer收到block开始,分析VSCC这个过程的代码(**[HLF v1.3](https://github.com/hyperledger/fabric/tree/release-1.3)**)。原创 2020-09-02 10:43:37 · 1165 阅读 · 2 评论 -
超级账本(关键概念)
文章目录介绍区块链网络网络组件节点类型参考本系列目录:超级账本源码(V1.3)解析目录介绍概念介绍区块链由对等节点合作维护的分布式账本,记录所有的交易,只能追加,不可修改。共识算法保证所有节点按相同顺序执行相同的交易,确保账本的一致性账本交易日志(File)+世界状态(DB)区块链网络区块链网络是为区块链应用提供服务的基础设施。网络组件排序服务(ordering service):包含一个网络配置,可以看作是该网络的管理节点,启动时定义了一系列的原创 2020-08-24 11:50:25 · 981 阅读 · 0 评论 -
超级账本(介绍)
文章目录介绍Hyperledger Fabric原文链接: https://hyperledger-fabric.readthedocs.io/en/release-1.3/whatis.html介绍区块链是由分布式网络节点维护的一个不可修改的交易账本,每个节点都维护一个副本,账本中的交易都由共识算法验证后打包成区块的形式,每个区块中包含前一个区块的哈希值,形成链状。第一个广受认可的区块链应用是比特币(Bitcoin),后来的以太坊(Ethereum)在其基础上引入了智能合约(smart co原创 2020-08-23 22:07:57 · 1982 阅读 · 0 评论 -
FastFabric: 提高超级账本的TPS
文章目录IntroFabric架构设计实验结果paper: FastFabric: Scaling Hyperledger Fabric to 20,000Transactions per Second这篇论文对Fabric的设计做了一些优化,将TPS从3,000提高到了20,000。目前区块链技术存在的问题:吞吐量上不去(throughput)扩展性不好(scalability)延迟较高(latency)本篇论文基于Fabric对第一个问题做了优化。Intro公有链(permis原创 2020-07-31 00:37:24 · 2239 阅读 · 3 评论 -
超级账本源码(V1.3)解析
Hyperledger Fabric系列的目录~原创 2020-07-18 00:20:03 · 779 阅读 · 4 评论 -
Hyperledger Fabric之BYFN多机部署
文章目录安装HLF配置docker网络创建启动文件运行可能出现的错误显然单机和多机部署的区别在于网络配置,也就是怎么进行docker容器之间的通信,所以多机部署的关键其实在于docker的网络通信。安装HLF五台server,系统是Ubuntu16.04,已经配置好了ssh证书登录,假设IP分别是10.22.1.12 # orderer.example.com, cli10.22.1...原创 2020-01-11 12:56:14 · 559 阅读 · 0 评论 -
hyperledger fabric(一)
相关概念简介网络IdentityMembershippeerprivate dataledger相关概念简介区块链(Blockchain):分布式账本智能合约(Smart Contracts):用来操作账本,Fabric里叫做chaincode共识(Consensus):同步账本Shared Ledger: world state + t...原创 2018-07-18 19:43:26 · 637 阅读 · 0 评论 -
Hyperledger Fabric(五)------APP与网络交互
目录启动网络app与网络交互 如果已经理解了BYFN那个样例,那么这个就很好理解了,这里的网络有五个容器:ca.example.com couchdb orderer.example.com peer0.org1.example.com cli。 用node-SDK进行app与网络的交互。目录app端的逻辑部分在fabric-samples/fabcar...原创 2018-07-24 18:05:40 · 2012 阅读 · 6 评论 -
hyperledger fabric(二)
Architecture ExplainedTransaction FlowHyperledger Fabric CA’s User GuideHyperledger Fabric SDKsService DiscoveryChannelCouchDB as the State DatabasePrivate DataRead-Write set semanticsGossi...原创 2018-07-19 16:30:59 · 686 阅读 · 0 评论 -
Hyperledger Fabric(六)
今天在折腾composer-playground,弄了一晚上没弄好。。。安装:官方一个简单的样例本地部署的样例:到最后那两步总是报错,说是找不到grpc_node.node这个文件,由于不熟悉node.js和npm也不知道什么原因,先放着吧。决定先去好好学一下node.js,估计接下来也离不开它了。...原创 2018-07-25 23:34:25 · 698 阅读 · 2 评论 -
hyperledger fabric(三)
前置技能:部署说明: 由于fabric-sdk-java 1.2版本还没有完善,因此这里部署的是1.1版本. 前置技能:已经熟悉命令行下fabric网络的部署过程熟悉docker技术熟悉交易的流程熟悉app与chaincode的交互部署克隆项目到本地git clone https://github.com/hyperledger/fa...原创 2018-07-20 15:46:11 · 527 阅读 · 0 评论 -
密码学与安全技术
密码学相关的安全技术在整个信息技术领域的重要地位无需多言。如果没有现代密码学和信息安全的研究成果,人类社会根本无法进入信息时代。区块链技术大量依赖了密码学和安全技术的研究成果。Hash算法与数字摘要加解密算法对称加密分组密码序列密码非对称加密消息认证码与数字签名数字证书X.509证书规范PKI体系PKI基本组件签发证书的两种方式证书的销毁Merkl树布隆过滤器同态加密零知识证明量子密码学原创 2018-07-22 17:29:52 · 1002 阅读 · 0 评论 -
Docker学习笔记
参考:Docker-从入门到实践基本概念Ubuntu安装Docker镜像容器仓库Docker数据管理数据卷挂载主机目录使用网络外部访问容器docker常用命令 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进...原创 2018-07-22 23:03:48 · 512 阅读 · 0 评论 -
Hyperledger Fabric(七)------加入新的Org
BYFN准备材料更新Channel加入网络 开始接下来的步骤之前确保脚本执行没有问题 先启动连个2个Org的./byfn.sh up 加入第三个Org./eyfn.sh up如果以上都没问题,最后会输出:========= All GOOD, EYFN test execution completed ===========下面就可以...原创 2018-08-07 19:45:17 · 796 阅读 · 0 评论 -
Go学习笔记------Fabric用到的第三方包
cobravipergo-logginggoleveldbcobracobra是一个用于生成命令行程序的库,下面简单介绍一下用法,具体可以参考文档创建命令://打印命令var cmdPrint = &cobra.Command{ Use: "print [string to print]", //命令名是print ...原创 2018-08-25 22:15:08 · 1370 阅读 · 0 评论 -
简述Hyperledger Fabric的工作流程
文章目录架构工作流程模拟排序验证提交说起来也是很巧合的一件事情,去年暑假自己一个人在宿舍学习Hyperledger Fabric的相关东西,后来因为各种原因就放弃这个方向开始跟着老师做一些CV方面的工作,现在竟然又开始看区块链的相关东西。去年开始学习区块链的时候很多东西还没有掌握,比如PKI、密码学,计算机网络当时也学得迷迷糊糊的,因此当时废了很大力气,记得关于PKI证书那块自己就折腾了好久...原创 2019-07-07 10:48:44 · 2245 阅读 · 3 评论 -
papers(Blockchain)
Blurring the lines between Blockchains and Database Systems: the Case of Hyperledger Fabirc排序阶段调整交易顺序:减少交易冲突,提高吞吐量。提前终止:模拟阶段:细粒度并行,使得模拟与验证阶段同时进行,通过检查block_ID可以在模拟阶段提前终止交易。排序阶段:排序阶段的block中,如果有两个...原创 2019-07-18 00:30:02 · 536 阅读 · 0 评论 -
Towards Scaling Blockchain Systems via Sharding
文章目录AbstractIntroductionPreliminariesSharding in DatabasesBlockchains Consensus ProtocolsTrusted Execution Environment(TEE)OverviewGoalsChallenges and ApproachSystem and Threat ModelScaling Consensus ...原创 2019-07-21 20:58:31 · 1753 阅读 · 0 评论 -
Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger Fabric
文章目录背景两种模型order-executesimulate-order-validata-commit优化实现transaction recorderingearly transaction abort背景分布式数据库与区块链的最大不同之处:传统数据库要求可信节点,区块链技术支持拜占庭节点。两种模型order-execute先通过共识算法排序,然后各节点本地再执行。代表有比特币、以...原创 2019-07-23 12:07:20 · 1111 阅读 · 4 评论 -
Hyperledger Fabric(四)------BYFN详细剖析
脚本执行分步手动执行搭建基础网络组织架构准备生成配置文件启动网络创建通道部署智能合约 这个官方样例我运行了可能有5遍了,今天才真正明白是怎么回事,这里记录一下。 运行这个样例之前务必要先弄明白Docker脚本执行首先先用现成的脚本执行一次,确保环境安装正确。./byfn.sh up如果最后输出如下,说明运行成功。===...原创 2018-07-24 01:22:23 · 3472 阅读 · 0 评论