怎样写一个解释器

写一个解释器,通常是设计和实现一个编程语言的第一步;亦或者我们想要一种自定义程度较高的 DSL ,通常也不得不自行去实现解释器。而如何实现一个解释器,网络上的资料其实也并不算多,所以我这里简单做个分享。

Read on →

Ethereum挖矿流程

本文主要梳理eth挖矿的代码流程结构。

Read on →

在这里,读懂区块链

读懂区块链——仅需这一篇。(草稿,内容整理中…)

Read on →

[Rebuild Ethereum](二)区块基础结构

区块链是融合了密码学、分布式技术等等多个计算机领域的产物,虽然这些技术听起来都很高大上,并且不同区块链的源码看起来也都是很庞杂,令人望而生畏,但是我们回归到区块链最本身,她的基础数据结构——“链”,却是很简单的,就是一条单向链表。

Read on →

[Rebuild Ethereum](一) 搭建p2p网络

接触使用ethereum已经有大半年时间,一直觉得对以太坊了解无法更进一步。结合自己以前的经验, the most efficient way of learn something is to build one. 想要深入学习一样东西,最有效的方式就是自己弄脏手,从头搭建一个。

比如动手做linux from scratch来学习linux的五脏六腑,rebuild rails来学习rails,所以我想尝试做一个rebuild ethereum系列,来解构ethereum。

在该rebuild系列中,我将把视角定在构成区块链的大模块纬度,先从以太坊源码中抽离该模块,然后使用该模块编写一个可执行的程序,这样能够真实感受到这个模块的运行机制和使用方法;最终能产生”以太坊(区块链)不外乎就是这几个模块组装起来的”这种印象就达到我的目的的。

Read on →

Hyperledger-fabric服务端开发

这篇文章并不是介绍fabric智能合约怎么编写的,因为这类的文章随便在google上一搜一大把. 但反而是fabric服务端开发应该怎么做需要有人稍稍点拨一下。本文就以golang服务端为例,介绍一下fabric服务端基本做法。

Read on →

Hyperledger-fabric分布式部署

fabric官方文档给出了怎样搭建第一个联盟网络(Build your first network),然而这个文档实际只给出了单机部署多个docker实例的例子,如果要在真实分布式环境部署,还是得费不少力气.

Read on →

利用call实现合约任意调用

call()是一个底层的接口,用来向一个合约发送消息,也就是说如果你想实现自己的消息传递,可以使用这个函数。

Read on →

怎样实现以太坊交易可靠提交

在真实环境下的以太坊Dapp开发,是一定涉及到链上链下逻辑的交互的。那么开发者可能会遇到这样一种场景,当用户使用metamask签名交易并提交后,Dapp的中心服务端需要拿到这个交易ID,并跟踪这个交易的执行,甚至会根据这笔交易去触发后端逻辑(当然使用event可以一定程度避开这个问题,但这种回避式的解决方案不在此讨论),但现实情况往往是令人痛苦的,因为很可能会因为种种原因,我们无法取到metamask的回调,导致开发者因此”丢失”掉这笔交易。

那么,如果我们要直面这个问题,要怎么样实现交易可靠提交呢?

Read on →

那些以太坊DApp服务端开发期望已久的轮子

以太坊虽说是一个去中心化的东西,但DApp却并非是完全去中心化的应用,其主要原因不外乎是以太坊的处理能力和资源有限,无法承载一个完整应用全部的逻辑。所以,目前市面上所有的DApp应用都是需要中心化服务解释的。那么,本文就是列举一些可能会用到的轮子,帮助快速构建应用。

Read on →