- 博客(36)
- 收藏
- 关注
原创 328-fabric之创始区块和通道
fabric之创始区块和通道我们现在来生成创始区块和通道文件生成创始区块和通道文件也是需要先编写配置文件之前生成用户账号的时候我们是用了showtemplate命令但是生成创始区块和通道是没有模板的命令的所以我们需要通过其他方法获取一个模板获取模板我们需要在first-network目录下找到配置文件我们打开/hyperle...
2019-03-23 15:56:31 901
原创 327-fabric之msp和锚节点
fabric之msp和锚节点再来说一下 搭建fabric网络的步骤1.生成证书,相当于账号 组织,节点,用户 yaml配置文件2.创建生成创始区块和通道的文件 运行在docker中3.启动节点 orderer,peer,客户端 运行在docker中 为了方便管理,编写docker-compose配置文件,批量启动节点4.通过当前组织的客户端,依次...
2019-03-23 14:00:45 4339
原创 326-fabric入门
fabric入门fabric逻辑框架首先是身份管理用户身份: 1.orderer节点 - 排序节点,矿工 2.peer节点 - 账本,存储数据 3.客户端程序 - 访问orderer,peerfabric会针对这些不同的角色,颁发不同的证书然后是账本管理账本是在peer节点上,账本由两部分组成 1.区块链 - 所有的交易记录 2.世界状态 - 数据库...
2019-03-23 10:23:34 330
原创 325-micro入门
micro入门micromicro解决了构建云本地系统的关键需求它采用了微服务体系结构模式,将其转换为一组工具作为可伸缩平台的构建块micro隐藏了分布式系统的复杂性是一个专注于简化分布式系统开发的微服务生态系统github.com/micro下载安装$ go get -u -v github.com/go-log/log$ go get...
2019-03-21 20:21:50 131
原创 324-channel原理浅析
channel原理浅析我们先来看一下channel的源码在runtime包下面找到chan.go看下// Copyright 2014 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that ca...
2019-03-21 17:13:30 5618
原创 323-docker原理浅析
docker原理浅析docker核心技术1.namespaces 2.control groups 3.union filesystem 1.namespaces 命名空间命名空间是linux为我们提供的用于分离进程树,网络接口,挂载点以及进程间通信等资源的方法在日常使用linux的时候,我们并没有运行多个完全分离的服务器的需要但是如果我们...
2019-03-21 16:01:46 112
原创 322-consul服务发现
consul服务发现consul是HashiCorp公司推出的开源工具用于实现分布式系统的服务发现与配置consul的安装https://releases.hashicorp.com/consul/1.4.3/consul_1.4.3_linux_amd64.zip下载完之后,解压一下里面只有一个consul可执行文件然后sudo cp ./...
2019-03-20 20:44:45 295
原创 321-gRPC入门二
gRPC入门二创建一个server.go文件package mainimport ( pb "Demo0319/grpc" "context" "net" "fmt" "google.golang.org/grpc")//1.结构体type Server struct{}//2.结构体方法实现func (this *Serve...
2019-03-20 19:51:58 108
原创 320-go协程goroutine
go协程goroutine先说一下一些相关的关键性术语概念1.并发一个CPU上同时执行多个任务,CPU来回切换任务执行2.并行系统有多个CPU,每个CPU同一时刻都运行任务,互不抢占资源3.进程CPU在切换程序的时候,如果不保存上一个程序的状态,直接切换下一个程序,就会丢失上一个程序的一系列状态,所以引入了进程,用来划分运行时所需要的资源,所以进...
2019-03-20 16:09:45 148
原创 319-进程与线程
进程与线程我觉得很有必要深入地了解一下进程 和 线程首先说 进程进程process是计算机中程序关于某数据集合上的一次运行活动是系统进行资源分配和调度的基本单位是操作系统结构的基础在早期面向进程设计的计算机结构中,进程是程序的基本执行实体在当代面向线程设计的计算机结构中,进程是线程的容器概念进程是一个具有独立功能的程序关于某个...
2019-03-20 15:33:50 72
原创 318-oraclize入门
oraclize入门我们可以通过oraclize在ethereum与外界通信看下文档https://docs.oraclize.it/#ethereum看下示例代码pragma solidity ^0.4.11;import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";contract ...
2019-03-20 10:29:33 382
原创 317-gRPC入门
gRPC入门gRPC是一个高性能,开源的rpc框架先说一下rpc举个例子type Person struct{}//结构体实现函数func (this *Person) GetAdd(In int, Out *int) error{ *Out = In + 100 return nil}func main(){ //1.结构体实例化...
2019-03-19 21:01:43 170
原创 316-protobuf操作数据
protobuf操作数据我们用生成的proto.pb.go来操作一下数据来创建一个test.go文件package mainfunc main(){ person := &pb.Person{ Name:"Alice", Age:20, Emails:[]string{"abc@qq.com"}, Phones:[]*pb.P...
2019-03-19 21:01:07 129
原创 315-protobuf入门二
protobuf入门二protobuf编译基本编译可以通过定义好的.proto文件来生成go,java,python等语言的代码需要基于.proto文件运行protocolbuffer编译器protoc可以这样调用protocol编译器protoc --proto_path=IMPORT_PATH --go_out=DST_DIR path/to/fi...
2019-03-19 21:00:44 155
原创 314-protobuf入门一
protobuf入门一protobuf下载安装1、下载 protoBuf:也可从xxx文件拷贝protobuf1.zip(最新)git clone https://github.com/protocolbuffers/protobuf.git2、或者直接将压缩包拖入后解压也可以图形化界面手动解压unzip protobuf.zip 3、安装...
2019-03-19 18:48:23 127
原创 313-fabric环境搭建
1. Fabric环境搭建准备工作官方帮助文档:https://hyperledger-fabric.readthedocs.io/en/release-1.2/安装 cURL(https://curl.haxx.se/download.html),curl --version 查询版本安装docker,docker --version 查询版本安装docker-compose,do...
2019-03-13 21:06:15 689
原创 312-链式存取之单链表
链式存取之单链表单链表(线性链表)单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素链表中的数据是以结点来表示的,每个结点的构成是: 1.元素(数据元素的映像) 2.指针(指示后继元素存储位置)元素就是存储数据的存储单元指针就是连接每个结点的地址数据链接存储方法链接方式存储的线性表简称为链表(Linked ...
2019-03-13 16:24:46 274
原创 311-golang排序算法
主要的排序算法有:1.冒泡2.选择3.插入4.快速排序5.希尔排序6.堆排序7.归并排序8.计数排序等等1.先来看下冒泡排序 arr := []int{3, 5, 4, 1, 2} for i := 0; i < len(arr)-1; i++ { for j := 0; j < len(arr)-1-i; j++ { if a...
2019-03-13 14:59:35 192
原创 310-希尔排序算法
希尔排序算法希尔排序Shell's Sort是插入排序的一种,又称缩小增量排序Diminishing Increment Sort是直接插入排序算法的一种更高效的改进版本希尔排序是非稳定排序算法这个方法是D.L.Shell在1959年提出的希尔排序是把 记录(一个序列) 按照下标的一定增量分组对每个组使用直接插入排序算法排序随着增量逐渐减少...
2019-03-13 14:57:13 105
原创 309-golang切片slice操作
golang切片slice操作func Insert(arr []int, index int, value int) []int { result := make([]int, len(arr)+1) copy(result, arr[:index]) copy(result[index+1:], arr[index:]) result[index] = va...
2019-03-13 09:51:44 113
原创 308-git第一次提交完整项目
git第一次提交完整项目打个比方我们现在项目完成了第一个版本然后正式要上传到github上我们先在github上创建一个仓库比如叫MyFirstDemo地址是http://github.com/abc/MyFirstDemo然后比如我们的这个项目的文件夹是./Demo现在我们要正式开始了1.cd Demo进入Demo项目文件夹...
2019-03-11 20:33:21 251
原创 307-搭建简单P2P网络
搭建简单P2P网络背景什么是点对点P2P?在真实的P2P结构中,你不需要一个中心化的服务来维持区块链的状态.举个例子,当你转账了一些比特币给你朋友,比特币区块链的状态需要被更新.所以你朋友的余额会增加,你的余额会减少.这里没有一个像银行一样的中心权威机构去维持区块链的状态.取而代之的是,在比特币网络中的所有想要维持比特币备份的节点,都会去更新他们的区块链备份...
2019-03-10 20:39:22 3481
原创 306-fabric入门三
fabric入门三orderer节点需要使用的环境变量1.ORDERER_GENERAL_LOGLEVEL2.ORDERER_GENERAL_LISTENADDRESS3.ORDERER_GENERAL_GENESISMETHOD4.ORDERER_GENERAL_GENESISFILE5.ORDERER_GENERAL_LOCALMSPID6.ORD...
2019-03-10 09:50:46 233
原创 305-nginx配置
nginx配置假设我们要运行一个项目在8080端口那么我们需要修改一下nginx配置我们用vim来编辑一下配置文件vim /etc/nginx/nginx.conf然后我们找到 server { listen 8080 default_server; listen [::]...
2019-03-07 22:16:26 281
原创 304-fabric入门二
fabric入门二搭建fabric网络1.生成证书,相当于账号2.生成创始区块和通道文件3.启动节点4.通过当前组织的客户端,依次连接到当前组织的peer节点上生成证书的前提1.排序节点个数2.组织个数 1.go组织 2.cpp组织假设现在这样1.排序节点1个2.组织个数 2个 1.go组织 peer节点2个 用户...
2019-03-07 19:17:18 272
原创 302-shell脚本入门
shell脚本入门什么是shell命令shell命令是在Linux终端被解析出来的命令1.终端,接收输入,比如pwd回车,看到输出说明输入的命令被解析了shell命令被解析的过程 1.有一个解析命令的进程:bash/shell 2.bash监测终端输入 3.有回车的时候,输入完成 4.bash检测环境变量 5.PATH---路径 6.检测...
2019-03-06 16:04:55 196
原创 301-golang之命令行参数os.Args
golang之命令行参数os.Args我们先写一个小demo,test.go文件func main() { cmds := os.Args for i, cmd := range cmds { fmt.Printf("cmd[%d] = %s \n", i, cmd) }}然后我们在命令行运行go run test.go结果输出了...
2019-03-05 11:24:35 1503
原创 300-BitCoin全攻略十一_数据库
11_BitCoin全攻略十一_数据库我们引入bolt数据库关于bolt数据库的使用入门,可以看一下我的另一篇博客bolt数据库入门https://blog.csdn.net/qq_33781658/article/details/879488151.我们使用一个bucket来存储所有的区块2.bucket中的数据 key: 区块h...
2019-03-04 13:27:01 270
原创 299-docker-compose
docker-composecompose是docker容器进行编排的工具定义和运行多容器的应用可以一条命令启动多个容器使用docker-compose就不再需要使用shell脚本来启动容器docker-compose安装1.安装依赖工具sudo apt-get install python-pip -y2.安装编排工具sudo p...
2019-03-04 13:05:09 103
原创 298-gob包序列化与反序列化
gob包序列化我们来利用gob包来进行序列化 和反序列化来写点代码func main() { person := Person{"Alice", 20} var buffer bytes.Buffer encoder := gob.NewEncoder(&buffer) err := encoder.Encode(&p...
2019-03-04 13:02:25 1365
原创 297-BitCoin全攻略十_难度值
10_BitCoin全攻略十_难度值我们看下NewProofOfWork方法func NewProofOfWork(block Block) (*ProofOfWork) { targetStr := "0001000000000000000000000000000000000000000000000000000000000000" bigIntTemp...
2019-03-03 20:18:12 226
原创 296-BitCoin全攻略九_bytes包拼接
09_BitCoin全攻略九_bytes包拼接我们看下getHash方法这边我们用了append方法来拼接 var info []byte info = append(info, block.PrevBlockHash...) info = append(info, block.Data...) info = append(info, version...)...
2019-03-03 19:46:16 190
原创 294-BitCoin全攻略七_工作量证明
BitCoin全攻略七_工作量证明我们已经把最简单的区块链的大体框架写好了现在我们来写工作量证明也就是俗称的挖矿挖矿的原理就是根据自身的数据计算出一个哈希值每次计算Nonce值加一一直算到比目标值小的时候挖矿就成功了我们创建一个proofofwork.go文件来个结构体type ProofOfWork struct{ blo...
2019-03-03 19:32:24 207
原创 293-dockerfile入门
dockerfile入门dockerfile使用准则1.大 首字母必须大写2.空 尽量把dockerfile放到空目录中3.单 每个容器尽量只有一个功能4.少 执行的命令越少越好dockerfile工作流程1.编写dockerfile 学习其中的一些关键字2.要执行一个docker命令,会根据dockerfile编写的流程开...
2019-03-03 18:28:55 214
原创 292-docker入门二
docker入门二docker数据管理1.数据拷贝 容器和宿主机之间的拷贝 docker cp2.数据卷 宿主机的存储目录 要将目录中的数据和docker容器进行数据共享数据卷在docker中的应用挂载时机://在创建容器的时候docker create//创建并启动容器的时候docker run//数据卷挂载参数-v,,,,--...
2019-03-03 18:26:05 1582
原创 291-docker入门
docker入门docker是什么docker是一个开源的应用容器引擎是直接运行在宿主操作系统之上的容器使用沙箱机制完全虚拟出一个完整的操作可以看做是一个轻量级的虚拟机docker架构与核心组件docker分为3大部分1.客户端 linux终端,通过命令来操作2.docker服务器 服务器用来管理容器和镜像,是一个守护进程, 也就是说...
2019-03-03 18:25:41 110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人