自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Linux shell语言

一.export1.什么是export命令?用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本sh...

2019-03-07 21:12:37 328

翻译 BUCHMAN tendermint论文分析(三):consensus

本章阐述Tendermint共识算法和用于原子广播( atomic broadcast)的相关区块链。拜占庭容错共识问题将被详细讨论,并且Tendermint共识的一个正式说明将以π-calculus的形式给出。Tendermint区块链已经被非正式地证明为满足原子广播。将来我们将以进程演进的方式来描述完整的区块链协议,并证明相关特性。一.Tendermint综述Tendermint是区块链范...

2018-12-18 12:08:08 811 1

原创 GO语言学习(四):接口与channel并发

一.接口1.接口type Humaner interface { //方法,只有声明,没有实现,有别的类型实现 sayhi()}type Student struct { name string id int}//Student实现了此方法func (tmp *Student) sayhi(){ fmt.Printf("Student[%s, %d] ...

2018-12-18 09:43:51 369

转载 《软件工程导论》复习知识点总结

一.软件与软件工程1.软件危机软件危机指计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要有一些典型表现,如:1,对软件开发成本和进度的估计常常很不准确,2,用户对已完成的软件系统不满意的现象经常发生、3,软件质量的产品靠不住、4,软件常常是不可维护的、5,软件通常没有合适的文档资料、6,软件成本在计算机系统总成本中所占的比例上升、7,软件开发生产效率提高的速度,远远跟不上计...

2018-12-14 14:48:16 2281

转载 tendermint源码分析(一):node

一.tendermint文件结构abci-client:Tendermint充当有关一个应用的ABCI客户端,并且维护3个连接:mempool,consensu和query。blockchain:提供存储,pool(一组peers)以及在peers之间存储以及交换区块的reactor。consensus:Tendermint core的核心,实现了共识算法。包括两个“子模块”:wal(wr...

2018-12-04 12:12:28 1125

原创 GO语言学习(三):指针,切片,map映射

1.指针func main() { var a int = 10 //每个变量有2层含义,变量的内存,变量的地址 fmt.Printf("a =%d\n", a) fmt.Printf("&a =%v\n", &a) //保存某个变量的地址,需要指针类型, //*int保存int的地址,**int保存*int的地址 var...

2018-12-02 16:16:15 257

转载 IPython 与 jupyter 学习

1.IPython安装:IPython是一种基于Python的交互式解释器。相较于原生的Python Shell,IPython提供了更为强大的编辑和交互功能,增强的Python Shell。pip install --user IPython2.Jupyter搭建pip install --user jupyter如果是在python3中,则用如下命令:pip3 install ...

2018-12-02 10:19:27 126

转载 Gossip协议

一.Gossip 协议的执行过程:Gossip 过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。二.算法原理三.Gossip类型G...

2018-12-02 10:19:17 2124

原创 go语言学习(二):函数、闭包、工程目录

1.不定参数类型func MyFun01(a int, b int){//a = 111fmt.Println(“a =”, a,b)}//…type不定参数类型func MyFunc02(args …int){ //传递的实参可以是0个或者多个//fmt.Println(“len(args) =”,len(args)) //获取用户传递参数的个数for i:=0;i<l...

2018-12-02 10:08:32 134

原创 go语言学习(一):基本语法

go语言是静态语言,但不需要依赖库,且支持并发,支持垃圾回收,内置大量的库,一.helloworld//定义包名,在源文件中的第一行指明这个文件属于哪个包//程序必须要有一个main包package mainimport "fmt" //这个程序需要使用fmt包(的函数或其他元素),fmt包实现了格式化IO函数func main() { //func main()是程序开始执行...

2018-11-30 17:34:37 147

转载 goroutine与channel学习

一.goroutine1.1进程、线程、协程进程(Process):在内存中的程序。有自己独立的独占的虚拟 CPU 、虚拟的 Memory、虚拟的 IO devices。OS 直接支持并调度。进程之间只能通过系统提供的 IO 机制通讯。共享内存(变量)是不可能的!每一进程占用独立的地址空间。此处的地址空间包括代码、数据及其他资源。进程间的通信开销较大且受到许多限制。对象(或函数...

2018-11-30 10:18:56 143

转载 基于docker-compose部署tendermint多节点集群

一.我们可以通过 docker-compose 来启动多个 container通过官方文档我们知道启动 tendermint 集群需要下面几个步骤:每个 node 都需要通过 tendermint init 来进行初始化;需要有一个包含所有 validator 节点 public key 的 genesis.json 文件, 然后用这个文件覆盖所有节点对应的文件; 在我们的示例中所有的节点...

2018-11-29 16:55:23 1259

原创 docker安装与应用

一.docker简介VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。二.dock...

2018-11-27 21:40:53 223 3

转载 tendermint源码分析(二):p2p

1.P2P连入网络需要seedfunc (pc peerConn) ID() ID { return PubKeyToID(pc.conn.(*tmconn.SecretConnection).RemotePubKey())}节点连接分为inbound和outbound。inbound的意思是别的节点连入自己,outbound的意思是自己主动连接别的节点// IsOutbound re...

2018-11-01 23:09:44 794

原创 量化策略

1.当我们形成了一个想法或者一个量化投资的策略的时候,我们会首先在历史的数据上检验我们的策略是否有效,即回测。在做回测的时候我们需要注意的是,在涨停的时候,虽然可能有一个成交价,但是实际情况下我们几乎不可能在这一个价格上买到股票;同理,在跌停的时候,我们也无法在历史数据中的成交价上卖出股票。因此,在回测的时候我们通常假定不能以涨停价格买入股票;不能以跌停价格卖出股票。2.动量策略start =...

2018-10-29 22:06:29 384

原创 Python学习(6):pandas

一.Series创建1.直接创建s=pd.Series([1,3,6,np.nan,44,1])2.可以在创建Series时添加index,并可使用Series.index查看具体的index。需要注意的一点是,当从数组创建Series时,若指定index,那么index长度要和data一致。k=pd.Series(np.random.randn(5),index=['a','b','c...

2018-10-27 23:18:38 138

转载 Python学习(5):Numpy

1.np属性事例>>> import numpy as np>>> a = np.arange(15).reshape(3,5)>>> aarray([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14

2018-10-26 22:40:45 425

原创 python学习(四) 序列

一.列表1.不能将列表和元组相加,也不能将列表和字符串相加。错误事例:num=[1,2,3,4,5]print(num+"输出的数是7的倍数")2.使用列表时,虽然可以将不同类型的数据放入到同一个列表中,但是在通常情况下,只在一种列表中放入一种类型的数据3.遍历列表,可使用for循环和enumerate()函数实现同时输出索引值和元素内容事例:team=["休斯顿 火箭","金州...

2018-10-26 13:52:01 268

转载 tendermint源码解析

初始验证者列表。请注意,这可能完全由应用程序覆盖,并且可能留空,以明确表示应用程序将使用ResponseInitChain初始化验证器集。

2018-10-24 22:36:27 1236

原创 terrier安装与应用

2.Download and configure TerrierTerrier Requirements:Terrier’s single requirement consists of an installed Java JRE 1.8.0 or higher.Download TerrierStep by Step Unix InstallationAfter having dow...

2018-10-12 20:37:44 1550

转载 tendermint原理与应用

一.tendermint介绍:Tenermint 是一个软件,用于在多台机器安全一致地复制一个应用。所谓安全,指的是即使有多达 1/3 的机器出现任意故障的情况下, Tendermint 仍然能够正常工作。所谓一致,指的是每一个正常工作的机器都会有着同样的交易日志,计算相同的状态。Tendermint 包含了两个主要的技术组件:一个区块链共识引擎和一个通用的应用程序接口。共识引擎,叫做 Ten...

2018-10-09 21:44:07 838

转载 以太坊入门(4):Solidity语法学习

动手编写第一个Solidity智能合约:投票pragma solidity ^0.4.0;//尝试写一个关于投票的智能合约;//投票人每人只有一票;//候选人票数多获胜,若平票则再投一轮;//候选人不能参与投票;contract Votegame{ struct voter{ address vaddr;//投票人地址 bool yn;//是否...

2018-09-03 19:06:57 176

原创 以太坊入门(2):以太坊私有链搭建与运行

1)Truffle创建项目2)atom编译器打开 命令:atom ./Contracts/:存放我们编写的合约 Migrations/:存放迁移部署脚本(监测合约的变化) Test/:存放合约测试脚本 Truffle.js:Truffle的配置文件 3)部署sol合约,并编译 部署命令:truffle develop(4.0版本)编译命令:compile(4.0版本,3....

2018-09-03 19:04:13 130

原创 以太坊入门(3):Ubuntu下Solidity的Truffle框架实战

本文主要讲述使用Truffle framework部署的第一个Solidity合约 一.前置工作: 1.安装Solidity的开发框架Trufflenpm install -g truffle环境要求:NodeJS 5.0+ 2.安装开发客户端(geth)sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-...

2018-09-03 19:02:45 603

转载 分布式一致性与共识算法(待完善)

转载自http://liyuechun.org/2018/02/17/consensus/ 区块链技术是近几年逐渐变得非常热门的技术,以比特币为首的密码货币其实已经被无数人所知晓,但是却很少有人会去研究它们的底层技术,也就是作为一个分布式网络比特币等加密货币是如何工作的。无论是 Bitcoin、Ethereum 还是 EOS,作为一个分布式网络,首先需要解决分布式一致性的问题,也就是所有的节...

2018-08-20 11:06:20 228

原创 以太坊入门(1):搭建(Ubuntu系统)Truffle v3.2.1 开发和测试环境

本文主要讲解在ubuntu 16.04下,truffle开发测试环境的搭建。 第一步:安装nodejs 和 npm,有两种比较常见的方法. 方法1:直接在nodejs官网下载nodejs-v6.10.x编译好的压缩包(tar.gz), 里面自带了npm(推荐此方法)。 1)下载成功后,cd 到nodejs下载的目录,直接把nodejs解压到/usr/local中。cd ~/Downlo...

2018-08-20 09:56:48 459

转载 读《黎跃春:如何避免无意义的区块链项目》有感/未完成

一.避免无意义的区块链项目八个要点 –目录 1.1 数据库 1.2 多节点 1.3 缺乏信任 1.4 非中介化 1.5 交易互动 1.6 设置规则 1.7 选择你的验证器 1.8 备份你的资产 二.原文 2.1 数据库 这是第一条规则。区块链是共享数据库的技术。所以你需要知道为什么你要使用数据库,我的意思是一个结构化的信息库。这可以是一个传统的关系数据库,其中包含一个或多个电...

2018-08-20 09:35:47 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除