自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

转载 ssh & scp

linux ssh & scp 命令

2022-08-01 14:07:54 154

转载 golang 回调函数 & 闭包

golang回调函数和闭包

2022-07-18 17:24:22 1413

原创 重启所有已停止的docker容器

docker ps -a | grep Exited 查看所有已停止的容器docker ps -a | grep Exited | awk ‘{print $1}’ 获取已停止容器的IDdocker ps -a | grep Exited | awk ‘{print $1}’ |xargs docker start 把获取到的已停止容器的ID传送给容器启动命令docker ps -a | grep Up | awk ‘{print $1}’ |xargs docker stop 一条命令停止所有

2022-01-05 23:50:37 911

原创 docker-compose network名称定义

docker-compose启动的网络名称:1、没有自定义网络名$ cat docker-compose.yaml version: '2'services: zookeeper1: image: zookeeper container_name: zookeeper1 environment: - ZOO_MY_ID=1 - ZOO_SERVERS=server.1=zookeeper1:2888:3888实际使用的网络是:&

2021-12-23 23:48:08 4166

原创 docker image 本地上传服务器

本地有自己的镜像,想上传到服务器(ubuntu)上使用1、本地打包镜像为压缩文件docker save -o mypeerimage.tar hyperledger/fabric-peer:latest想要上传hyperledger/fabric-peer:latest镜像打包到当前目录下,叫mypeerimage.tar注意:打包的镜像要指定版本,如果不指定版本,会把所有此名称的各版本镜像都打包进来。2、把mypeerimage.tar上传到服务器3、解压镜像文件docke

2021-12-23 23:30:37 1820

原创 ubuntu环境变量 & GOPATH

1、Ubuntu保存环境变量的几个文件/etc/profile在用户登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。/etc /environment在用户登录时,操作系统使用的第二个文件, 系统在读取用户个人的profile前,设置环境文件的环境变量。~/.profile在用户登录时,用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅.

2021-12-23 23:12:39 880

转载 docker-compose 配置详解

Compose 文件是一个YAML文件,用于定义services、netword和volumes。 Compose 文件的默认路径为./docker-compose.yml(后缀为.yml和.yaml都可以)。一个service配置将会应用到容器的启动中,很像将命令行参数传递给docker run。 同样,network和volume定义类似于docker network create和docker volume create。 与Docker运行一样,默认情况下尊重Dockerfile中指定的选项(例

2021-12-23 22:18:16 8833

原创 golang interface{}转int string slice

interface{}转普通类型如int、string可以直接类型转换:func interface2IntString(in interface{}){ in.(int) in.(string)}interface{}转slice不能如上直接转换, 这样是可以的,很方便。func interface2slice(in interface{}){ slice := make([]string, 0) slice, ok := in.([]string)}

2021-12-11 21:14:27 1475

转载 docker删除none镜像

1、使用git bash进入到docker文件夹2、查询所有的none镜像docker images | grep none3、查询所有的none镜像的iddocker images | grep none | awk '{print $3}'4、删除所有的none镜像docker images | grep none | awk '{print $3}' | xargs docker rmidocker none镜像有效的 none 镜像Docker文件系统的

2021-12-10 21:29:04 10134

原创 golang time.Tick比较time.Sleep

1.sleep进行定时任务 任务执行的时间对其实际定时间隔没有影响 睡眠紧跟在任务结束后2.sleep的定时间隔时间 = 上一个end 到 下一个begin 的时间3.而tick的实现 使用了一个协程来进行定时 任务执行的时间会对其实际间隔时间产生影响4.tick的(上一个begin到下一个begin时间) = max (定时间隔时间, 任务执行时间)...

2021-11-29 23:42:19 434

原创 ubuntu-linux adduser&useradd

Linux下创建用户命令改:useradd和adduser这两个命令adduser nameuseradd nameCentOS下这两个命令无区别,都是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码Linux下adduser:会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码。useradd:不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码

2021-11-15 23:10:05 859

转载 finallshell linux版安装教程

该版本功能和windows版基本一样,但是主机检测和远程桌面功能由于兼容性问题暂时无法使用,以后会支持. (注意,FinalShell已经不再支持32位系统) 一键安装脚本 rm -f finalshell_install_linux.sh ;wget www.hostbuf.com/downloads/finalshell_install_linux.sh;chmod +x finalshell_install_linux.sh;./finalshell_install_...

2021-11-14 20:53:35 956

原创 从中序后序遍历构造二叉树

中序遍历+前序/后序遍历,可以唯一确定一个二叉树本题后序遍历从右向左是树中从右向左的节点通过后序遍历确定节点的值,在中序遍历中该节点位置可以确定左右子树节点值通过中序遍历中确定的节点位置,知道左右子树节点个数,因为中序遍历数组个数和后序遍历数组个数相同,从而确定后序遍历数组/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * ..

2021-03-09 16:39:32 108

原创 对称二叉树 递归

/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func isSymmetric(root *TreeNode) bool {//左子树的左孩子和右子树的右孩子对称 if root==nil{ return true } return i...

2021-03-06 22:50:22 66

原创 二叉树最大深度 递归

/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func maxDepth(root *TreeNode) int { if root==nil{ return 0 } ldepth := maxDepth(root.Left) r...

2021-03-06 21:58:24 87

转载 单链表翻转

递归代码如下/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func reverseList(head *ListNode) *ListNode { if head == nil{ return head } if head.Next == nil{ return ..

2021-03-06 11:22:27 62

原创 二进制链表转整数

位运算很快func getDecimalValue(head *ListNode) int {/* numlist := make([]int,0) //注意这里参数为0,即空的数组。否则为n个0 count := 1 p := head for p.Next!=nil{ numlist = append(numlist, p.Val) //低index是数字的高位 count++ p = p.Next..

2021-03-06 11:20:18 150

原创 双指针,找第一个公共节点

一个双指针问题两个链表,找出它们的第一个公共节点。我们使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历,当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点;当 node2 到达链表 headB 的末尾时,重新定位到链表 headA 的头结点。这样,当它们相遇时,所指向的结点就是第一个公共结点。好理解的解释:两个链表长度分别为L1+C、L2+C, C为公共部分的长度,按照楼主的做法: 第.

2021-03-05 23:34:54 117 2

原创 Golang protobuf

什么是protobufprotobuf也叫protocol buffer是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 、json进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

2021-02-25 18:30:28 241

转载 fabric simulate过程并行or串行

声明:链码开发语言是golang,源码分析是基于fabric 1.4.0版本链码开发的时候,总是有一个疑问,链码的调用到底是并行还是串行?如果是并行,就需要我们对一些线程不安全的对象进行保护,反之则不需要。这是个很重要的问题,而社区两种声音都有!真相到底是什么~本文只是用户链码,下次再说使用go-plugin扩展的系统链码。用户链码与peer的关系用户链码是一个独立的进程,使用docker封装(非dev模式下)。链码容器由peer创建,在启动容器时指定了peer的地址,所以链码容器启动后能够找

2021-01-03 17:20:57 256

原创 go module

go module是golang自带的依赖管理库。可以把一个项目或目录下的所有依赖整理成一个go.mod文件。使用go module就不要求go的文件都放在src下。开启go module和中国代理$ echo "export GO111MODULE=on" >> ~/.profile$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile$ source ~/.profilego module的使用g

2021-01-02 16:44:09 68

原创 fabric “error starting container: Failed to generate platform-specific docker build“

背景:从头手动编写各个配置文件,用fabric-sdk-go搭建自己的fabric网络,可以成功安装链码,但是无法实例化链码。将config.yaml设置为debug,输出如下:最后终端会一直打印下图:可以 保证证书、网络结构、sdk配置文件都没问题,链码编写和路径也没问题。分析:docker都能起来,可以创建通道、加节点、安链码,说明之前的配置文件(crypto-config configtx config)和操作都没有问题。终端最后一直在找peer的感觉,是不是.

2020-12-18 18:47:33 1393 2

原创 fabric crypto-config.yaml部分详解

研究它的原因:之前跑fabric都是用的默认给的证书、密钥、创世块、配置文件。现在想要完全从头搭自己的链,节点名称也要改。开始错误操作:以为节点名称在docker-compose的配置文件设置就好,分别配合上相应的证书、私钥。但是在构建网络的过程中,创建通道出现问题,报错connect不上相应节点,在日志和容器中都能看出来证书和节点不匹配。定位一下问题位置,既然docker配置没问题,网络结构的configtx也没问题,就应该是crypto-config.yaml的问题。crypto-con

2020-12-13 13:56:39 659

转载 fabric crypto-config&configtx详解

全文架构前言手动搭建Fabric,对于我们理解Fabric网络时怎样运行的,是十分必要的。当我们下载好了Fabric网络源码之后。基本步骤包括通过本地编译,生成对应的配置文件,新建通道,开启Order服务等等。总的来说,可以分为下面七个步骤:图1-启动一个Fabric网络的七个步骤预备网络中各项配置文件Fabric网络在启动之前,需要提前生成一些用于启动的配置文件。主要包括:MSP相关文件(msp/*) TLS相关文件(tls/*) 系统通道初始区块(orderer.ge..

2020-12-12 11:02:43 584 1

原创 fabric orderer报错 “the identity is a member of a different MSP(expected OrdererMSP, got Org1MSP)“

自己从头纯手动搭fabric:生成cert、key,创建genesis.block channel.tx anchor.tx;用sdk建通道及以后以后的工作在sdk创建应用通道时报错查orderer节点的log"the identity is a member of a different MSP(expected OrdererMSP, got Org1MSP)"Evaluation Failed: Only 0 policies were satisfied, but neede.

2020-12-11 19:51:41 232

原创 fabric 分步generateArtifacts.sh

1、generateCerts 生成证书和密钥(组织的,节点的,角色的)结果:e2e_cli文件夹下多了个/crypto-config,该文件夹下:每个peer的org都有一组:orderer 的org下:2、generateIdemixMaterial 这个Idemix的介绍下面链接写的非常好,棒。https://blog.csdn.net/yuxinqingge/article/details/105164249先要自己建一个/crypto-config/...

2020-12-04 13:26:15 229

原创 fabric 用configtxgen解析

xxx@xxx:/opt/gopath/src/github.com/hyperledger/fabric$ configtxgen --helpUsage of configtxgen: -asOrg string 作为特定的组织(按名称string)执行配置生成,只包括org(可能)有权设置的写集中的值。如用来指明生成的锚节点所在的组织 -channelCreateTxBaseProfile string 指定一个概要文件作为orderer系统通道当前状态,以允许在通.

2020-12-04 13:25:04 274

转载 configtxgen配置文件详细说明

configtx.yaml是Hyperledger Fabric区块链网络运维工具configtxgen用于生成通道创世块或通道交易的配置文件,configtx.yaml的内容直接决定了所生成的创世区块的内容。本文将给出configtx.yaml的详细中文说明。Capabilities / 通道能力配置Capabilities段用来定义fabric网络的能力。这是版本v1.0.0引入的一个新的配置段,当与版本v1.0.x的对等节点与排序节点混合组网时不可使用。Capabilities段定义.

2020-12-01 13:43:12 975

原创 docker命令总结-持续更新

看所有容器docker ps -a删除所有已经停止的容器docker rm $(docker ps -a -q)强制删除容器db01,db02docker rm -f db01 db02删除镜像docker rmi IMAGE [IMAGE...]强制删除加 -fdocker rmi -f IMAGE [IMAGE...]启动、停止、重启容器docker start/stop/restart 容器...

2020-11-25 20:31:57 54

原创 golang interface{}类型转换

golang interface{}类型转换interface转换成具体类型调用方式:interfaceVar.(具体类型)

2020-09-11 23:33:40 1913

转载 golang 树

使用golang来实现树的遍历树的定义package treetype Node struct { Val int Left *Node Right *Node}深度优先遍历深度优先遍历需要优先使用栈栈的定义type Stack struct { list *list.List} func NewStack() *Stack { list := list.New() return &Stack{list}}

2020-09-11 23:24:09 526

转载 传docker镜像

如何把一个容器从开发环境取出来,到其他机器上跑起来?docker hub是一个很好的选择,把镜像提交上去,到另外的机器上拉取下来,很方便。但是,没有网络怎么办,本文告诉你如何操作。方式一docker save 和 docker load导出镜像docker save -o <target> <images_name:image_tag>或者docker save -o <target> <container_name>例如d

2020-08-03 22:17:09 130

原创 golang append数组

golang切片append一个数组:list = append(append, anotherList...)mylist := make([]int, 0, 10)mylist1 := []int{1, 2, 3}mylist = append(mylist, mylist1...) //加上'...'就可以追加一个数组, 否则只能追加一个元素fmt.Print(mylist)fmt.Println(len(mylist))fmt.Println(cap(mylist))输出:[1

2020-07-05 15:28:22 17213 1

原创 fabric 生成创始块报错:Error unmarshaling config into struct:

问题介绍:我用fabric1.2,改了源码,增加了一项需要从configtx.yaml获取的参数改完源码重新make docker编译做镜像,然后运行网络,报错如下:解决方法:重新制作工具将/release下的工具目录删掉,只留templates/,然后再/fabric下进行 make release 根据现有源码制作工具。...

2020-07-01 17:52:37 1068

原创 golang 计时一个程序段的运行时间

用go语言计算一段程序运行消耗的时间:用到time包import ( "time" "fmt")func function(){ startTime := time.Now() ... 待计时程序段 ... elapsedTime := time.Since(startTime) / time.Millisecond // duration in ms fmt.Println("Segment finished in %dms

2020-06-29 12:29:56 4024 1

原创 Fabric 下载二进制文件时 Could not resolve host: nexus.hyperledger.org

hyperledger fabric我在用make docker制作镜像的过程中报错如下:Could not resolve host: nexus.hyperledger.orgInstalling Hyperledger Fabric binaries===> Downloading version 1.4.4 platform specific fabric binaries===> Downloading: https://nexus.hyperledger.org/c

2020-06-28 23:08:00 3104 6

原创 Go语言基础知识点总结——包、函数、变量、常量、类型、流程控制

目录Go语言——包Go语言——函数Go语言——变量Go语言——const常量Go语言——类型Go语言——流程控制Go语言——包1、一个go语言文件的第一行写这个文件属于哪个包package main2、import 这个文件需要哪些包可以一行一行写import "fmt"import "math"也可以用括号()import ( "fmt" "math")3、用文件路径判断包package 包名(不用写一长串路径,写短

2020-06-25 11:58:59 176

原创 docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled

在制作镜像的时候报错如下:docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).解决方案:增加一个源hub-mirror.c.163.com$ sudo vi /etc/docker/daemo

2020-06-19 13:30:45 450

原创 fabric,peer channel create报错:Error: got unexpected status: BAD_REQUEST -- error authorizing update:

hyperledger fabric的cli在peer channel create 时报错:Error: got unexpected status: BAD_REQUEST -- error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/Application/Org1MSP at version 0, but got version 1原因:上一次的网络有残留。如果

2020-06-12 16:36:36 1790 2

原创 Hyperledger Fabric 编译报错 error pulling image configuration:

hyperledger fabric用'make docker'编译报错 error pulling image configuration:解决方法:/etc/resolv.conf文件中新增“nameserver 8.8.8.8” sudo vi /etc/resolv.conf保存后重启docker$ service docker restart$ sudo systemctl daemon-reload$ sudo service docker restart

2020-06-11 18:00:42 192

node-v8.9.0-linux-x64.tar.gz

nodejs8.9.0, npm5.5.1 (下载来源https://nodejs.org/download/release/v8.9.0/node-v8.9.0-linux-x64.tar.gz) 下载到/usr/local,用sudo tar -zxvf node*解压 在~/.profile添加: export NODE_HOME=/usr/local/node-v8.9.0-linux-x64 export PATH=$NODE_HOME/bin:$PATH

2020-07-26

fabric-chaintool-1.1.3

fabric-chaintool-1.1.3,手动编译hyperledger fabric所需。原下载路径https://nexus.hyperledger.org/...已经不维护,无法下载。本资源下载后改名为chaintool,不须解压,放在fabric/.build/bin/下。将makefile中$(BUILD_DIR)/%/chaintool: Makefile下的下载语句注释掉。

2020-06-30

protobuf.zip

golang三方源码,解决go get github.com/golang/protobuf/protoc-gen-go困难的问题

2020-06-08

空空如也

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

TA关注的人

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