- 博客(77)
- 资源 (2)
- 收藏
- 关注
原创 fabric 1.2运行出错:Unable to decode a Kafka packet
fabric 1.2运行示例e2e时报错:Unable to decode a Kafka packet. Usually, this indicates that the Kafka.Version specified in the orderer configuration is incorrectly set to a version which is newer than the ...
2018-07-23 20:59:43
14349
原创 fabric 1.2编译出错:common/crypto/tlsgen/key.go:36:20: undefined: x509.MarshalPKCS8PrivateKey
fabric 1.2编译出现如下错误: 解决:这个由于golang版本太低,有些类型没有导致,升级golang版本到1.10.3,便可以编译通过。
2018-07-23 11:23:56
16048
原创 区块链项目:生产环境上chaincode容器不断重启的排查
背景在做区块链项目时,银行发送业务交易时有时会出现超时,报错的response;于是跟踪部署的服务的相关容器,发现业务chaincode容器存在不断重启的现象,业务chaincode容器存活一般几分钟到几小时不等。这说明chaincode容器异常挂掉过,然后再被拉起。但是获取区块链状态的状态chaincode没有重启过,一直在运行。现象描述具体地,chaincode容器的日志...
2018-07-11 14:53:10
19985
1
原创 linux 进程内存占用高分析
通过free命令可以查看系统内存使用情况:free -m total used free shared buff/cache availableMem: 7983 2427 5155 26 400 5272Swap: ...
2018-06-11 16:19:36
20498
原创 监控进程内存使用情况脚本程序
#!/bin/bashPROCESS=backEndLOG="./memlog.txt"echo "$LOG"#删除上次的监控文件if [ -f "$LOG" ];then rm "$LOG"fi#过滤出需要的进程IDPID=$(ps aux| grep $PROCESS | grep -v 'grep' | awk '{print $2;}')echo "$PID...
2018-06-09 21:54:19
2866
原创 golang interface{} 入参
func sliceEqual(a, b []interface{}) bool {}a := []*Student{}b := []*Student{}sliceEqual(a, b)compile err:cannot use a (type []*Student) as type []interface {} in argument to sliceEqualgolang...
2018-05-04 11:00:06
20993
原创 git常见使用命令
这里列举一下git常见使用命令: 1、从远程库下载: git clone xxx.git 2、查看当前分支状态: git status 3、查看当前有哪些分支: git branch -a 4、在工作区的第一次修改被放入暂存区,准备提交 git add xxx xxx 5、暂存区的修改提交: git commit 6、推送到远程仓库: git push [remote_br...
2018-05-03 16:14:24
375
原创 uboot下tftp在tp-link路由器上不通
问题描述1、Uboot下执行tftp命令,在交换机上可以下载升级;在tp-link路由器上失败。2、Kernel下执行tftp命令,交换机上和tp-link路由器上均可成功。3、Uboot下,tp-link路由器上一个包也抓不到,TFTP_RRQ包也没发过来。4、均可以ping通。 uboot下现象:HKVS # updateb***********************...
2018-04-26 17:00:29
16059
原创 ssh免密远程连接
ssh免密登录: 1、A->B, A:ssh-keygen, 把id_rsa.pub内容考到B(注意是root用户还是centos用户)的authorized_keys 2、更改~/.ssh目录权限 700,authorized_keys权限600
2018-04-24 20:15:53
15156
原创 vim常见命令
1、显示行号: set number 或 set nu 2、跳转到指定行: 例如跳到66行 :66, 66gg, 66G 3、查找 :/xxxx n是跳到下一个目标 4、删除一行:dd 5、复制粘贴:yy,p未完待续。。。...
2018-04-24 20:13:17
14939
原创 Mac virtualbox虚拟机通过LVM扩容磁盘
1、首先关闭虚拟机,查看硬盘分配的属性:为动态分配分配存储 2、进入virtual box安装目录#cd /Users/gds/VirtualBox VMs/gds#VBoxManage list hddsUUID: 2fb7b86c-64f7-467b-9d45-de6df399e325Parent UUID: baseState: ...
2018-04-17 19:25:53
1000
1
原创 根据进程名杀死进程
一般清理环境脚本需要用到,根据进程名输出进程号,然后通过xargs杀掉。ps -ef | grep zookeeper | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9
2018-04-16 10:56:33
1171
1
原创 etcd集群增加节点
etcd集群增加节点主要两步:添加节点启动新节点原本etcd集群# etcdctl member listb7124c8d88451: name=myetcd1 peerURLs=http://192.168.9.100:2380 clientURLs=http://192.168.9.100:2379 isLeader=true235dcf74ed6248d5: n...
2018-03-28 13:42:26
7791
1
原创 etcd集群搭建
etcd集群搭建下载安装从这下载https://github.com/coreos/etcd/releases/download/v3.3.2/etcd-v3.3.2-linux-amd64.tar.gztar xzvf etcd-v3.3.2-linux-amd64.tar.gz cd etcd-v3.3.2-linux-amd64; cp etcd* /user/local/...
2018-03-28 11:47:21
16396
1
原创 区块链密码学(二):加密算法介绍
本文主要介绍区块链项目 fabric 的加密算法。BCCSP(Blockchain crypto provider)即区块链加密提供商,用于定义选择使用的密码学实现库。负责摘要生成,非对称密钥的签名与验证,根据证书查找私钥等。该模块提供了一系列的接口,这些接口定义了摘要的生成方法,签名,验证,加密,解密等。所有自定义的密码学实现库都需要实现这些接口,以此达到密码学算法的可插拔。目前fabric BC
2018-03-13 12:58:30
24157
原创 区块链密码学(一):密码学基础及概念
一 、概念主要介绍非对称加密的一些概念。公钥,私钥:均可加密或解密,配对即可。一般来讲,私钥用来进行解密和签名,是给自己用的。公钥由本人公开,用于加密和验证签名,是给别人用的。 签名:内容->hash->digest->私钥加密->签名 验签:用公钥解密签名得到摘要,然后用原始文件经过hash得到摘要,与解密出的摘要进行对比。 证书:数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之
2018-03-13 10:54:56
19027
原创 Centos下替换yum源为阿里云源
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ 1、备份原镜像文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2、下载CentOS-Base.repo curl http://mirrors.aliyun.com/repo/Centos-7.re
2018-03-13 10:28:51
15892
原创 linux文件系统出错:Read-only file system
问题root@xx:/opt/gopath/src/github.com/hyperledger/fabric# mkdir -p testttmkdir: cannot create directory ‘testtt’: Read-only file system分析可能是异常关机导致文件系统出现问题。解决1、查看机器的文件系统类型:root@xxx:...
2018-03-06 15:29:17
26339
原创 openstack新增计算节点
主要是参考openstack ocata版本的官方文档,链接为:https://docs.openstack.org/ocata/install-guide-rdo/index.html1、主机名称和网路配置新添加的机器的网络配置是eno1在192.168.9.0网段,eno2在10.0.0.0网段(OpenStack内网)。IP配置可以参考现有计算节点。在/etc/sysconfig/networ
2018-02-10 15:12:47
24332
原创 fabric1.0 tls模式配置
fabric1.0 tls模式配置由于tls模式生成的crypto需要域名的方式,否则加密会出现x509密码学错误;目前可以通过修改hosts的形式来进行配置。修改HOSTS文件docker-compose文件中添加相关的extra_hosts extra_hosts: - “peer1.org1.example.com: 192.168.9.1” - ...
2017-12-06 17:15:03
16120
原创 服务器安装系统
浪潮服务器安装Linux操作系统。一、安装系统1、首先做一个Linux镜像盘 2、插入服务器,选择从安装盘启动,按f11或delete键可以进入bios进行选择,如下图: 选择自己安装盘,即:UEFI:MultipleCard….这个盘。 3、然后按照图形化界面,一步步执行; 4、划分分区,如图: 5、设置root 用户密码,即可: 二、网络配置1、通过 ip addr查看当前网
2017-11-30 12:42:01
24257
1
原创 服务器硬盘扩容
公司服务器有两块硬盘:A:1T,B:2T;系统装在A上,B准备当做工作目录,和备份容灾。下面主要叙述一下操作: 把硬盘装好后,我们用 fdisk -l 查看下: 图中可以看出 /dev/sdb 是2900G,新加的硬盘。 接下来我用命令 fdisk sdb 进行分区,输入 p 查看新硬盘分区,如图:可以用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令
2017-11-30 11:51:46
23661
原创 Golang 切片拼接
package mainimport "fmt"func main() { s1 := []int{0, 1, 2, 3} s2 := []int{4, 5, 6, 7} s1 = append(s1, s2...) fmt.Println(s1)}执行:// [0 1 2 3 4 5 6 7]
2017-11-06 16:16:11
9551
原创 docker volumes 文件映射
背景在做区块链日志模块时,如果容器运行,需要把日志文件映射到宿主机上以方便查看。下面介绍一下我的实现方式。实现通过docker-compose配置文件volumes参数配置文件示例: volumes: - /var/run/:/host/var/run/ - ./channel-artifacts:/var/hyperledger/configs
2017-11-01 11:05:35
14261
原创 golang time.Format坑
在重构fabric1.0日志模块时,以日志作为文件名字,遇到一个格式化的坑:fName = w.fileNameOnly + fmt.Sprintf(".%s%s", logTime.Format("2006-01-02 15:04:05"), w.suffix)发现必须采用”2006-01-02 15:04:05”,否则出错;后来查了一下代码,发现这个是golang诞生的时间。。。。
2017-10-26 17:35:46
2726
1
原创 fabric0.6交易处理流程及调用关系分析
本文主要分析fabric0.6交易从发送到处理,送到共识模块的流程及主要函数的调用关系。见下图:
2017-08-19 16:05:29
15609
原创 误删/usr/lib/x86_64-linux-gnu动态库文件修复
问题在阿里云上部署区块链时,因为缺少一些动态库,想偷懒从另外一个服务器上直接copy动态库/usr/lib/x86_64-linux-gnu/,结果先删除本地的/usr/lib/x86_64-linux-gnu/,结果造成好多命令用不了,例如scp等;一些程序也因为缺少动态库而没法运行。解决思路想了一些办法基本都不能用例如scp,ftp,wget等远程拷贝命令都不能用。在只能要重装系统时突然柳暗花明
2017-08-17 19:46:32
29195
原创 Linux下模拟恶劣网络环境
背景在做区块链互联网环境下交易测试时发现,不同网络环境对交易的执行有很大的影响;网络差的时候交易会丢失,卡住等,网络好或者局域网的时候则正常。因此需要一个模拟恶劣网络环境的工具。 本文介绍一个Linux下的为traffic control和netem工具。 其中,Netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联
2017-08-15 16:41:52
1966
原创 x509: certificate has expired or is not yet valid错误解决
x509: certificate has expired or is not yet valid错误解决
2017-08-02 10:39:40
41063
3
原创 golang gRPC使用
gRPC官方文档gRPC官方文档,该文档详细地讲述了gRPC的相关概念和各个语言的使用方法:如C++、Java、go、python、Ruby等。 详细请见:http://grpc.mydoc.io/?t=58008使用示例定义protocol buffer,生成go代码package helloworld;option java_package = "com.example.pfmsg";opt
2017-07-25 11:07:41
15987
原创 hyperledger fabric0.6简析之peer start
入口src: peer/main.go...mainCmd.AddCommand(version.Cmd())mainCmd.AddCommand(node.Cmd())mainCmd.AddCommand(network.Cmd())mainCmd.AddCommand(chaincode.Cmd())...if mainCmd.Execute() != nil { o
2017-07-24 17:45:01
819
原创 linux日志转储:logrotate
背景:日志文件在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,磁盘空间被消耗很快;操作单个过大日志文件也十分困难,可能会打不开等。因此需要管理日志文件,Linux系统中有一个自带的日志管理文件工具:logrotate. logrotate工具对于防止因庞大的日志文件而耗尽存储空间是十分有用的。配置完毕后,进程是全自动的,可以长时间在不需要人为干预下运行。Logr
2017-07-21 11:41:04
17341
原创 fabric调试:go pprof查看内存
运行pprof1、代码开启pprofimport _ "net/http/pprof" if viper.GetBool("peer.profile.enabled") { go func() { profileListenAddress := viper.GetString("peer.profile.listenAddress")
2017-07-20 15:38:19
1920
原创 区块链学习知识模块
1.Bitcoin,Ethereum,HyperLedger Fabric的区块链相关机制与原理;2.共识算法,主要有PoW,PoS,DPoS,PBFT,Paxos,Raft等;3.GoLang,C++等主流区块链系统开发语言;4.NoSQL数据库的原理与使用,尤其是KV型数据库:LevelDB,RocksDB等;5.linux操作系统,Docker容器技术的原理,部署和使用优化;
2017-07-15 10:13:38
16170
转载 Git使用
Git使用教程可参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2017-07-13 11:16:01
226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅