如何使用区块链技术进行项目开发

区块链是目前一个比较热门的新概念,蕴含了技术与金融两层概念。从技术角度来看,这是一个牺牲一致性效率且保证最终一致性的的分布式的数据库,当然这是比较片面的。从经济学的角度来看,这种容错能力很强的点对点网络,恰恰满足了共享经济的一个必须要求——低成本的可信环境。 本文以联盟链为例,描述了实践一个联盟链的基本过程,包含以下内容: 业务场景的构建与初步分析,业务场景建模,开发路径,开发难点。本文无法涵盖所有类型的开发,主要提供一些开发思路,并附

InfoQ中国技术开放日-上海站-链上金融

笔者荣幸参加了2017年年底中国技术开放日上海站的演讲,2016年12月17日,由极客邦科技、XNode联合主办,上海市静安区科学技术委员会光临指导的“中国技术开放日上海站之FinTech专场——技术重定金融,未来大有不同”在静安区800秀创意园圆满召开。FinTech所带来的机遇和挑战、区块链、大数据、人工智能、云计算、智能投顾等6大主题演讲分别讲述了重要的FinTech发展趋势,分享了目前行业里领先的实践经验。视频地址 此次演讲包括

从Paxos到拜占庭容错,兼谈区块链的共识协议

这是一篇转载文章,原文地址,原文作者data-geek已授权转载。本文建立在在很多论文的基础上,概括得非常好,比我的《浅谈区块链共识机制与分布式一致性算法》更深度。 高可用架构在分布式系统设计中是最核心的挑战之一,拜占庭容错则是解决高效容错问题的通用方案。拜占庭系统来源于拜占庭将军问题,在古代,一些拜占庭的将军率领他们的部队要攻占敌人的一个城池, 每个将军只能控制他们自己的部队并且通过信使传递消息给其他的将军(这条消息只有参与的两个将军

有关比特币Core源码CDataStream类的有趣问题

在阅读比特币源码过程中发现了一个有趣的问题。在文件src/serialize.h中,2012年9月提交的一个版本b019ea17ec7cc37d098982b4f0f4636e424ab4b8,我们可以看到一些历史代码: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#ifdef TESTCDATAST

论联盟链局限性与公有链

本篇探讨联盟链的局限性,并与公有链的关系。在本文中,我们定义联盟链为共享认证型区块链(Shared Permission Blockchain),与公有链的主要区别在于Permission上。 一. 从假设的银行联盟链DAO说起现考虑银行联盟链模型,假设存在一个银行业区块链联盟,每个联盟节点是一个共识节点,即该数据包含了该银行的核心业务数据(客户信用,借贷账目etc)以形成一个联盟链DAO,那么我们有: 1. 所有的银行客户信用数据是共

搭建一个区块链交易所需要什么?

一个交易所到底应该具备什么要素呢? 交易所核心功能——撮合引擎。撮合引擎其实是一个交易所的核心模块,实现起来依据几条非常简单的原则: 成交价格优先-时间优先 定价时间优先-价格优先 卖方价格队列大于等于买方价格队列 但是里面的实现还是很讲究的: a. 高可用,撮合引擎宕机如何处理? b. 实时成交,撮合引擎要求高速处理,IO一般都会成为瓶颈,如果避免IO是个非常有技术含量的问题。 c. 用户接口设计 这里的用户接口设计分: 下

浅谈区块链共识机制与分布式一致性算法

本文通过介绍传统分布式一致性算法和区块链共识模型,以及提出了一些有关两者关系的观点,让大家有个比较系统的了解。 一、前言本文打算先提出观点。欢迎大家参与讨论。 1. 传统分布式一致性算法和区块链共识过程的异同点相同点: Append only 强调序列化 少数服从多数原则 分离覆盖的问题:即长链覆盖短链区块,多节点覆盖少数节点日志 不同点: 传统分布式一致性算法大多不考虑拜占庭容错(Byzanetine Paxos除外),即假设所

如何阅读"三巨人"的源码-比特币

(本文转载请告知,保留所有权利) 前言 由于有很多新生区块链技术学习者,问我如何入门这些代码,所以打算放一篇文来介绍下。 相较于中文资料各种教程类文章,本系列文章侧重源码架构和分析。 这里所说的三大巨人是指:比特币,以太坊,比特股。其他微创新的代码可以以这些代码为base进行扩展研读,所以只打算介绍这三巨人。 由于本人是CXX工程师,除了模块分析之外,其他源码的介绍主要以CXX的代码为主。 考虑到难度,这里以比特股的代码最为复杂,以太坊