code随手记

Practice from here


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

tendermint加密算法

发表于 2018-12-18   |   分类于 tendermint   |     |   阅读次数

身份识别机制概述

无论是中心化系统,还是去中心化系统,都有一个基本的问题:如何表征与验证用户的身份。

在中心化系统中,这一问题是基于统一存储的用户表来实现的:每个用户在表中都有 一条对应的记录,而系统则通过验证用户输入的用户名和口令是否与用户表中的记录一致来识别 用户的身份:

id-plan-compare

区块链则采用了另外一种不需要集中存储的方案来解决这一问题:每个用户由一对公/私钥来 标识,可以将公钥视为用户名,而私钥视为用户的口令。当用户提交数据时,必须使用自己 的私钥进行签名,这样其他人就可以利用其公钥验证签名数据是否真的来自于该用户。

不过由于公钥比较长,通常会对公钥进行一定的哈希计算,并进行必要的截短,作为区块链上 用户的标识,即我们通常所说的地址。

tendermint提供了两种非对称加密算法的实现:比特币/以太坊采用的secp256k1椭圆曲线算法, 以及tendermint推荐的相对较新的ed25519加密算法,在我们的应用中都可以用来实现身份识别。

阅读全文 »

三状态机与ABCI

发表于 2018-12-17   |   分类于 tendermint   |     |   阅读次数

状态机与ABCI

状态机

tendermint采用的分布式计算模型为状态机复制(State Machine Replication),其基本 思路就是通过在多个节点间通过同步输入序列来保证各节点状态机的同步。

状态机是一种在通信软件、游戏、工业控制等领域应用非常广泛的计算模型,用来抽象地表示一个 系统的演化过程。状态机由一组(有限或无限的)状态以及激发状态迁移的外部输入组成, 对于确定性状态机而言,在某一个时刻一定处于一个确定的状态,而在一个状态下 针对特定输入的状态迁移也是确定的。

现在让我们看一个计数器的状态以及其变化情况,在某一个特定时刻其状态为特定的数值:

counter state machine
sm-counte

显然,计数器有无限个状态(1,2,3…),但只有三个触发动作:

  • inc - 递增
  • dec - 递减
  • reset - 复位
    阅读全文 »

tendermint初识

发表于 2018-12-16   |   分类于 tendermint   |     |   阅读次数

2.1 概述

tendermint虽然定位于引擎,但它其实是一个完整的区块链实现。在这一部分 的课程中,我们将使用一个最小化的ABCI应用,来熟悉tendermint的主要组成 部分,以及使用tendermint进行去中心化应用开发的主要流程和工具。

下图列出了tendermint应用的主要构成部分:

td-arch

tendermint提供了一个预构建的同名可执行程序,我们将学习如何使用这个程序 来初始化节点配置文件并启动节点。这个程序是完整的节点实现,除了通过P2P协议 与其他节点交换共识,同时还提供了RPC接口供客户端提交交易或者查询应用状态。

我们将创建一个最小化的ABCI应用,tendermint可执行程序通过ABCI接口与 应用程序交互,例如要求应用执行交易、或者转发来自RPC接口的状态查询请求。

阅读全文 »

tendermint简介

发表于 2018-12-10   |   分类于 tendermint   |     |   阅读次数

1.1 tendermint简介

tendermint是一个开源的完整的区块链实现,可以用于公链或联盟链,其官方定位 是面向开发者的区块链共识引擎:

与其他区块链平台例如以太坊或者EOS相比,tendermint最大的特点是其差异化的定位: 尽管包含了区块链的完整实现,但它却是以SDK的形式将这些核心功能提供出来,供开发者 方便地定制自己的专有区块链:

tendermint

tendermint的SDK中包含了构造一个区块链节点旳绝大部分组件,例如加密算法、共识算法、 区块链存储、RPC接口、P2P通信等等,开发人员只需要根据其应用开发接口 (Application Blockchain Communication Interface)的要求实现自己 的应用即可。

ABCI是开发语言无关的,开发人员可以使用自己喜欢的任何语言来开发基于tendermint的 专用区块链。不过由于tendermint本身是采用go语言开发的,因此用go开发ABCI应用的一个额外好处 就是,你可以把tendermint完整的嵌入自己的应用,干净利落地交付一个单一的可执行文件。

阅读全文 »

123…12
夜千寻墨

夜千寻墨

扫码关注微信公众号,及时获取文章更新

48 日志
10 分类
77 标签
RSS
GitHub Weibo 简书 instagram
© 2020 夜千寻墨
powered by Hexo
theme - Next
本站访客数人次 总访问量次