区块链
文章平均质量分 85
&jalins&
一步一个脚印
展开
-
区块链100篇之哈希算法
哈希算法维基百科的定义:是一种从任何一种数据中创建小的数字“指纹”的方法。简单的说就是将任意的数据通过一个函数转化成一个有着固定长度的数据串,这个数据串就叫哈希值。原创 2019-05-07 18:07:56 · 2349 阅读 · 0 评论 -
区块链100篇之对称加密
对称加密对称加密是比较好理解的,将一个密钥通过加密算法对明文进行运算得到一个密文,使用同样的密钥作为解密算法的输入对密文进行解密即可得到原文,如下图所示:从这里我们可以看出对称加密有几个要素,分别是明文、加密算法、密钥、密文以及解密算法,明文即原始数据,密钥与明文一起作为加密算法的输入,是将明文进行打乱的规则,当然它也是跟密文一起作为解密算法的输入。密文自然就是加密算法得到的结果,这些都好理...原创 2019-05-27 13:34:19 · 1204 阅读 · 0 评论 -
6.tendermint默克尔树
默克尔树概述在ABCI应用响应Commit请求消息时,需要计算并返回当前状态的哈希,以便Tendermint 将其打包到下一个区块头里(app_hash字段)。但是,如果我们还按原来的方法计算一个总体哈希,例如:hash: = tmhash.Sum(state), 就存在一个问题 —— 当查询某个特定账户的状态数据时,如何验证该状态是未被篡改的?显然,单独返回整个状态的哈希是不够的,但是我们...转载 2019-06-18 19:32:05 · 533 阅读 · 0 评论 -
7.tendermint多版本状态库
平衡二叉树简介在之前的课程中,我们简单地使用磁盘文件来保存状态,对于简单的学习或验证 而言没有问题,但在生产环境中,tendermint推荐我们使用其基于avl树实现的 多版本状态库。avl树得名于发明者G. M. Adelson-Velsky和Evgenii Landis,它是一种 自平衡二叉检索树,这包括两个核心的思想:二叉、平衡。二叉是指整棵树中每个节点最多有两个子节点,左侧的子节点值...转载 2019-06-18 19:39:08 · 476 阅读 · 0 评论 -
8.tendermint多节点组网
多节点组网概述在之前的课程内容中,我们的关注点集中在单一节点上的状态机逻辑实现上,这是因为 状态机复制的问题,是由tendermint负责完成的:我们在任何一个节点提交的交易请求, tendermint可以透明地帮我们在多个节点间实现同步。在这一章,我们将通过前面已经学习过的简单的ABCI计数应用来学习如何部署多个tendermint节点, 并进一步理解tendermint共识的建立过程。为了...转载 2019-06-18 19:50:59 · 1779 阅读 · 0 评论 -
1.tendermint简介
出于个人兴趣,最近开始学习共识引擎tendermint,在网上看到了一个讲tendermint的系列,很通俗易懂,所以在这里进行转载,原文地址为:[tendermint简介](http://gcblog.github.io/2018/12/10/tendermint%E7%AE%80%E4%BB%8B/) ,代码放在github上,地址:https://github.com/hellodian/tendermint-study,以下是正文部分。转载 2019-06-15 14:03:37 · 582 阅读 · 0 评论 -
2.tendermint初识
2.1 概述tendermint虽然定位于引擎,但它其实是一个完整的区块链实现。在这一部分 的课程中,我们将使用一个最小化的ABCI应用,来熟悉tendermint的主要组成 部分,以及使用tendermint进行去中心化应用开发的主要流程和工具。下图列出了tendermint应用的主要构成部分:tendermint提供了一个预构建的同名可执行程序,我们将学习如何使用这个程序 来初始化节点...转载 2019-06-15 14:18:14 · 522 阅读 · 3 评论 -
3.状态机与ABCI
状态机tendermint采用的分布式计算模型为状态机复制(State Machine Replication),其基本 思路就是通过在多个节点间通过同步输入序列来保证各节点状态机的同步。状态机是一种在通信软件、游戏、工业控制等领域应用非常广泛的计算模型,用来抽象地表示一个 系统的演化过程。状态机由一组(有限或无限的)状态以及激发状态迁移的外部输入组成, 对于确定性状态机而言,在某一个时刻一定...转载 2019-06-15 14:37:49 · 841 阅读 · 0 评论 -
4.tendermint加密算法
身份识别机制概述无论是中心化系统,还是去中心化系统,都有一个基本的问题:如何表征与验证用户的身份。在中心化系统中,这一问题是基于统一存储的用户表来实现的:每个用户在表中都有 一条对应的记录,而系统则通过验证用户输入的用户名和口令是否与用户表中的记录一致来识别 用户的身份:区块链则采用了另外一种不需要集中存储的方案来解决这一问题:每个用户由一对公/私钥来 标识,可以将公钥视为用户名,而私钥视...转载 2019-06-16 13:56:02 · 671 阅读 · 0 评论 -
区块链100篇之第九篇--默克尔树(Merkle Tree)
中本聪在他的创世论文中一个概念,就是SPV,中文意思是简单支付验证,从这里我们可以看出SPV指的是“支付验证”而不是“交易验证”,那这两者有什么区别吗?简单的说就是支付验证只需验证该笔交易是否被确认过了,而交易验证是需要验证该笔交易是否满足一些条件如“余额”是否足够,还有该笔交易有没有存在双花等等一些问题,只有一切都没什么问题后该笔交易才算验证通过,可以看出交易验证要比支付验证更加复杂,所以它一般...原创 2018-05-28 00:44:45 · 32582 阅读 · 7 评论 -
十分钟教你开发EOS智能合约
这是一篇转载的文章,文章是在一个公众号上看到的,文章地址为https://mp.weixin.qq.com/s/OniYBJ6zbjxPrQYlZMhRWQ。EOS环境搭建和启动节点下面从EOS入门的环境搭建、编译运行一个智能合约、发送一些Aigsen,给大家做一些展示,希望能让非技术人员也有一些收获。首先下载EOS环境搭建和启动节点。这一步其实还是比较简单的,但是对于非技术人员,...转载 2018-05-06 21:12:22 · 844 阅读 · 0 评论 -
同步以太坊测试网络时导致C盘存储空间不足的解决办法
在尝试同步以太坊的的测试网络时可能会遇到一个问题,就是会发现同步下来的区块会默认存储在C盘底下导致磁盘空间不足,具体的路径如下:C:\Users\Administrator\AppData\Roaming\Ethereum 注:如果你找不到AppData,你需要打开隐藏文件这是以太坊区块默认的存储路径,也是以太坊钱包指定查找的路径。因为即使是测试网络的区块数据也是很多的,如下...原创 2018-05-06 19:10:40 · 1410 阅读 · 1 评论 -
区块链100篇之第五篇--UTXO
第一次看到UTXO是去年10月份的时候在一个微信群上有一个人说了一句话,说:”只要理解了UTXO就理解了比特币“,虽然这话有点夸大了,毕竟比特币并不只有UTXO这个技术,涉及到的东西还是很多的,但可以把这句话改成”只要理解了UTXO就能理解比特币的去中心化的含义“,因为UTXO区别于我们传统上的交易都是基于账户模型的,它是中本聪发明的交易模型,暂且叫UTXO模型,理解了UTXO的交易模型就能明白为什原创 2018-04-14 21:30:45 · 1409 阅读 · 1 评论 -
区块链100篇之第三篇--数字签名
数字签名类似于我们现实世界中的文件签名,我们把名字写在一个文件上,就代表了我们认可了这份文件,并且说明了这份文件是真是可靠的,那么问题是如果文件的署名被伪造了怎么办?在现实世界中,我们一般会找当事人直接验证这份文件是否是亲自签署的而不是被人假冒的,而在计算机世界中,保证数字签名不被伪造是通过数字摘要和非对称加密实现的,举个比特币中交易的例子:假如现在Alice发起一笔比特币转账,需要先将该交易进行...原创 2018-04-09 20:43:36 · 1460 阅读 · 1 评论 -
区块链100篇之第六篇--共识机制
共识共识的英文是Consensus,也可以翻译成一致或一致同意。维基百科对于共识的定义是:共识是指分歧双方搁置争议,达成能够被各方所接受的陈述(即使有时只是勉强接受)的社群解决方案。简单的说就是在一个群体中就某一个问题达成共识,一致同意采取某一种策略来解决这个问题,举个例子: 现在有一个班级,大家需要就什么时候拍毕业照进行投票,有两个方案,方案一是在5月1号拍毕业照,方案...原创 2018-04-18 18:44:02 · 1787 阅读 · 0 评论 -
区块链常见问题汇总
今天看到一篇关于区块链常见问题汇总的博客,觉得还不错,就把它转载过来。 1.问:什么是区块链?答:区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。 2.问:能通俗的解释一下什么是区块链吗?答:通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本...转载 2018-04-19 15:27:38 · 1926 阅读 · 1 评论 -
区块链100篇之第八篇--智能合约
一、比特币的转账过程我在第五篇讲UTXO的时候,有提到比特币的转账过程,现在来回顾一下这个过程。 Bob想要转给Jack一百个比特币,Bob需要先创建一笔交易,因为这笔交易只有被矿工验证并打包进区块的时候才算完成交易,Bob在填写交易信息的时候除了需要提供支付比特币的数额以及双方的地址外,还需要提供自己的公钥以及用私钥生成的数字签名,还有就是上一笔交易的Hash(也就是B...原创 2018-04-30 15:34:15 · 1524 阅读 · 0 评论 -
使用Hyperledger Composer将业务网络部署到单个组织的Hyperledger Fabric区块链上
转载请标明出处: http://blog.csdn.net/qq_27818541/article/details/78727076 本文出自:【BigManing的博客】前言先前准备1先满足下列环境要求2安装Hyperledger Composer开发工具3下载Hyperledger Fabric网络相关工具一 开启Fa转载 2018-01-05 17:34:43 · 2474 阅读 · 0 评论