分布式
lwyeluo
PKU直博生一枚~
展开
-
bigchaindb集群部署(5节点)
在安装bigchainDB集群之前,我们需要了解bigchainDB的一些相关术语:bigchainDB节点:是一台或一群相近的节点的集合。bigchainDB节点上运行了mongoDB server、bigchainDB server及一些相关的软件bigchainDB集群:一群互联的bigchainDB节点组成了bigchainDB集群。集群中的节点运行相同的软件。一个集群可能需要有其他的额原创 2017-06-27 22:23:14 · 3006 阅读 · 2 评论 -
bigchaindb源码分析(九)——选举
本节我们来分析election进程,election进程也是一个pipeline# bigchaindb/pipelines/election.pydef start(events_queue=None): pipeline = create_pipeline(events_queue=events_queue) pipeline.setup(indata=get_changefe原创 2017-08-02 16:44:36 · 601 阅读 · 0 评论 -
bigchaindb源码分析(三)——后端存储
bigchaindb源码分析(一)分析了bigchaindb如何解析命令行参数与配置文件,并据此启动了日志publisher与subscriber。对于bigchaindb start命令,将调用_run_init来初始化后端存储,随之利用pipeline来启动block\vote等进程(bigchaindb源码分析(二))。本节介绍bigchaindb的后端存储。_run_init由run_sta原创 2017-07-08 14:37:14 · 1280 阅读 · 0 评论 -
bigchaindb源码分析(八)——stale
本节我们来分析stale进程,stale进程也是一个pipeline,其作用在于处理联盟中有被分配节点由于某些原因没有处理bakclog中的事务的问题,主要做法是对该事务的被分配节点进行重新分配# bigchaindb/pipelines/stale.pydef create_pipeline(timeout=5, backlog_reassign_delay=5): stm = Stal原创 2017-07-16 17:09:48 · 559 阅读 · 0 评论 -
bigchaindb源码分析(七)——投票
现在我们来根据源码分析(六)的思路来分析投票进程(votes),vote进程也是一个pipeline# bigchaindb/pipelines/vote.pydef start(): """Create, start, and return the block pipeline.""" pipeline = create_pipeline() pipeline.setup(原创 2017-07-16 17:09:19 · 958 阅读 · 0 评论 -
bigchaindb源码分析(六)——写事务(下)
我们之前在源码分析(二)——pipeline中说到,在命令bigchaindb start执行后,bigchaindb将会利用pipeline来运行很多进程,如block\vote等等源码分析(五)中分析了在客户端利用API往bigchaindb写事务时,实际上只是将事务写入到了表backlog中,那么如何处理backlog中的事务则很明显要依赖于在start时创建的进程了首先来回顾创建block对原创 2017-07-16 17:08:46 · 987 阅读 · 1 评论 -
bigchaindb源码分析(五)——写事务(上)
之前在部署bigchaindb时,给出了使用python利用bigchaindb-driver往bigchaindb中写事务的代码,本节根据这段代码,来跟踪分析bigchaindb写事务的整个流程创建事务往bigchaindb写事务代码如下# coding=utf-8# author: Wu Luoimport bigchaindb_driverfrom bigchaindb_driver im原创 2017-07-16 17:08:12 · 1514 阅读 · 0 评论 -
bigchaindb源码分析(四)——创建创世区块
根据bigchaindb源码分析(三)所述,在初始化后端存储后,命令bigchaindb start所触发执行的_run_init函数将创建创世区块# commands/bigchaindb.pydef _run_init(): # Try to access the keypair, throws an exception if it does not exist b = big原创 2017-07-16 17:07:32 · 2312 阅读 · 4 评论 -
bigchainDB安装
安装mongdb启动mongdb安装pythonpip3安装bigchaindbbigchaindb的使用下载并安装bigchaindb的python驱动测试BigChainDB是一个去中心化的数据库,能够在1s内完成100w次写操作、存储pb级别的数据以及次秒级的延迟。BigChainDB增加了一些区块链的特性:去中心化控制、不变性、数字财产的创建与移动,也继承了现代化分布式数据库的原创 2017-06-15 13:28:41 · 4263 阅读 · 4 评论 -
bigchaindb源码分析(二)——pipeline
bigchaindb源码分析(一)分析了bigchaindb如何解析命令行参数与配置文件,并据此启动了日志publisher与subscriber。本节来分析bigchaindb的pipeline机制。之前说到,对于命令行命令bigchaindb start,将会调用commands.bigchaindb.run_start()。该函数完成了生成公私钥、初始化数据库以及启动所必要的进程。proces原创 2017-07-02 21:12:24 · 968 阅读 · 0 评论 -
bigchaindb源码分析(一)——命令行参数与配置文件解析
bigchaindb版本:BigchainDB (1.0.0rc1)bigchaindb-driver (0.3.1)命令行参数解析使用whereis定位bigchaindb可执行文件为/usr/local/bin/bigchaindb,该文件调用了bigchaindb.commands.bigchaindb.main()函数。re.sub(r'(-script\.pyw?|\.exe)?$',原创 2017-07-02 21:11:08 · 2141 阅读 · 0 评论 -
同一节点启动多个bigchaindb实例
需求某个节点处于两个不同的bigchaindb集群,或者说一个节点需要启动两个不同的bigchaindb实例问题当前bigchaindb版本BigchainDB (1.0.0rc1)bigchaindb-driver (0.3.1)原本的bigchiandb配置文件(/root/.bigchaindb){ "database": { "connection_timeout"原创 2017-06-30 16:04:13 · 1370 阅读 · 0 评论 -
bigchaindb源码分析(十)——总结
根据我们耗时如此长的源码分析,我们可以对bigchaindb进行一些初步的总结了首先是可以总结一些相关的概念:联盟:维护bigchaindb的所有合法的节点,相当于配置文件中的keyring项加上节点本身事务:事务分为三种 用来构建创世区块的事务:这个事务在bigchaindb首次启动时将会自动创建CREATE事务:代表着创建资产,CREATE事务中的asset项应当包含了资产的全部内容,资原创 2017-08-02 16:45:01 · 1714 阅读 · 5 评论