
rchain
CodeProject-Jerry
Jerry.Wang
展开
-
RChain运行原理[1] - 初识Rholang
初识Rholang 目前Rholang已经出到了v0.2.1,虽然距离正式版还有半年多,但语言的基本骨架已经出来了。从本文开始我会将我的学习笔记分享出来。本文的代码可以复制到http://rchain.cloud/在线执行。 1、理论背景 20世纪上半叶,在计算机理论方面出现了以 μ-recursive functions, Alan Turing的图灵机器和 λ-calculus 为代...原创 2018-04-26 10:59:07 · 2931 阅读 · 1 评论 -
RChain运行原理[2] - 元组空间(Tuplespace)
Rholang的消息机制 在前文《初识Rholang》中提到了Rholang通信机制的两个基本操作,先复习下: 语法 含义 for( x <- channel ) P 从channel这个name中读取一条消息并删除,消息保存到x这个name中后执行P channel!(Q) 将Q这个process发送到channel这个name中 Rho...原创 2018-05-11 10:16:34 · 1804 阅读 · 0 评论 -
RChain运行原理[3] - 名字空间(Namespace)
名字空间 在前面的两篇文章中介绍了Rholang的基本概念以及RChain的基本原理。但blockchain还有一个大问题需要解决,就是可扩展性(scalability)。 可扩展性分为计算和存储两个方面: 从计算的角度来说,如果同一个合约需要在所有节点上都执行一次,这不仅是一种性能的极大浪费,而且会造成全网的吞吐量存在一个无法突破的瓶颈。 从存储的角度来说,如果节点需要保存所有合约的状态...原创 2018-05-11 10:26:08 · 1444 阅读 · 0 评论 -
RChain运行原理[5] - Casper共识之估值函数
在上一篇《区块结构与DAG》中讲到了一个名字空间对应一条DAG链,那么它具体是如何生成的? 要回答这个问题,首先需要弄清楚两个子问题: 验证者(validator)在打包区块时是如何选择父级区块? 区块(block)在加入到DAG链后如何被认可? 这两个问题相辅相成。其中第二个问题是第一个问题的目标。 一个区块被认可也就是说这个区块内包含的状态变化进入到了终结(Finalized)状态...原创 2018-06-26 12:55:29 · 1313 阅读 · 0 评论 -
RChain运行原理[6] - Casper共识之安全性
在上一篇《Casper共识之估值函数》中介绍了验证者(validator)在打包区块时选择父级区块的逻辑,还剩下了一个问题-区块(block)在加入到DAG链后何时才能被认可? 认可即为共识,在解决“如何做”之前需要理解“为什么要这样”,所以本篇是下一篇的铺垫,解释Casper共识的原理。 1 概述 共识协议是在分布式环境中对某个命题在拜占庭容错度内(Byzantine Fault Tole...原创 2018-07-16 08:07:20 · 1246 阅读 · 0 评论 -
RChain运行原理[7] - Casper共识之预言机
经过上一篇《Casper共识之安全性》的铺垫,本篇开始介绍RChain具体如何判断区块已经处于终结(finalized)状态。 1 终结性 下面动图演示了区块的终结过程。和BTC不同,RChain的区块具备终结性(Finality)。所谓终结,即表示区块所选择的分支不会在未来发生更改,因此终结的区块一定是从头向尾进行。一个区块只有当它所有前置区块的分支选择不再变化后,才可能有当前区块的终结性。...原创 2018-07-16 08:19:27 · 1005 阅读 · 0 评论 -
后·冯诺依曼时代,一场计算机革命悄然来临
后·冯诺依曼时代,一场计算机革命悄然来临 号称能够满足区块链扩展性要求的Blockchain3.0们,没有一百也有八十。这其中除开大部分的空气项目,真正有创新有作为的候选者,在笔者看来屈指可数。它们大都通过sharding或者Layer 2的方案在传统的冯诺依曼体系架构下修修补补,不能说这样的选择有错。其实可扩展性难题来自于区块链之外,而在这些Blockchain3.0项目中,有一个却意义非凡–...原创 2018-08-18 09:02:19 · 1535 阅读 · 1 评论