自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卢舍那

知行合一

  • 博客(77)
  • 资源 (2)
  • 收藏
  • 关注

原创 web3.0系列之分布式存储IPFS

web3.0主打去中心化,将数据归还于用户,目前行之有效的底层存储为分布式存储ipfs。这个协议通过将数据分成多段,进行多节点备份,然后通过hash聚合获取原始文件。有几个特点是:全世界分布式网络,分段存储、merkle-tree聚合,多备份,永久,难以攻击等。在web3.0中有望替代http协议,与区块链(不足以承载大数据量)结合构成web3.0的底层。...

2022-06-30 09:01:58 3169 1

原创 以太坊学习笔记(四)RPC接口开启

eth rpc api使用

2022-06-14 15:29:37 3570

原创 以太坊学习笔记(二):通过SDK调用以太坊合约

环境准备搭建以太坊链详细可参考之前博客以太坊学习笔记(一)1、创建创世块文件{ "config": { "chainId": 10001, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc" : {}, "coinbase" : "0x0000000000000000000000000000000000000000", "di

2022-03-10 21:06:02 8458

原创 以太坊学习笔记(三):cannot unmarshal hex string without 0x prefix

背景最近通过SDK调用以太坊合约,在部署合约时出现:chainID: 100012022/03/10 15:59:33 failed to deploy demo1: json: cannot unmarshal hex string without 0x prefix into Go struct field Header.miner of type common.Address解决思路主要尝试以下方法:1、将address前面加上0x,结果是不起作用2、换版本将引用的以太坊包换成1.

2022-03-10 17:29:00 8656

原创 Failed to connect to github.com port 443: Operation timed out

问题在git clone 时出现:Failed to connect to github.com port 443: Operation timed out错误解决主要是在/etc/hosts里把github.com域名与IP绑定。具体配置为:140.82.113.3 githuh.com199.232.69.194 github.global.ssl.fastly.net185.199.108.153 assets-cdn.github.com185.199.109.153 assets-c

2021-12-21 11:28:39 1952

原创 goland出现unresolved reference错误提示

问题goland编辑器在函数已经实现的情况下,提示unresolved reference解决方法执行 :file->Invalidate Caches / Restart

2021-06-10 10:54:50 1354

原创 Mac brew update出问题

问题在使用brew 安装软件时出现以下问题,最后通过更新homebrew镜像源,brew update成功后,安装软件成功,以下针对这些问题做些记录。一、Warning: Calling sha256 "digest" => :tag in a bottle block is deprecated!二、LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决方案针对问题一git -C /usr/loc

2021-05-19 10:52:47 1917

原创 /lib64/libc.so.6: version `GLIBC_2.18` not found

问题在编译程序时报错/lib64/libc.so.6: version `GLIBC_2.18' not found报错解决导致这个报错是因为glibc库版本过低,升级glibc即可解决1、下载glibc2.18版本2、编译安装cd /usr/localwget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gztar -xzvf glibc-2.18.tar.gzcd glibc-2.18mkdir -p build cd

2021-03-15 11:29:23 4473 4

原创 go mod指定版本

背景golang依赖包有时会因为版本问题,导致接口不匹配解决可以在go.mod中指定版本,例如:replace google.golang.org/grpc => google.golang.org/grpc v1.26.0

2021-01-21 20:05:17 7037

原创 mac安装MySQL

一、下载安装在https://dev.mysql.com/downloads/mysql/ 下载对应版本mysql,如果是.dmg则直接安装二、启动在苹果->系统偏好设置,最后一栏看到mysql确保在running状态安装目录在/usr/local/mysql,将/usr/local/mysql/bin添加到~/.bashrc环境变量中mysql -u root -p启动...

2021-01-07 11:27:54 96

原创 DAG技术提高区块链交易速度

区块由链式结构到DAG结构之前一篇文章也讲过区块链式结构和DAG结构的区别,DAG的区块可以并发出块,在保证交易全序的情况下能够提升TPS,但是对于联盟链来讲采用raft\pbft共识算法,经过共识后交易顺序即可确定,与区块是链式结构还是DAG结构无关,也就是说区块的DAG结构提升不了采用raft\pbft这类共识算法的交易速度。通过DAG对交易排序,交易并发执行DAG即一个无环的有向图称做有向无环图(Directed Acyclic Graph)。在一批交易中,可以先识别出每笔交易需要占用的互斥资源

2020-12-29 10:53:26 775

原创 Error: failed to create deliver client :orderer client failed to connect to orderer

问题描述在部署fabric时,peer create channel时报错如下:Error: failed to create deliver client :orderer client failed to connect to orderer.example.com:7050: failed to create new connection: context deadline exceeded问题解决一般来讲这是orderer服务启动有问题导致的网络连接无法建立,可以排查orderer是否正常

2020-11-09 15:31:29 5665 12

原创 docker\docker-compose安装

docker安装1、先卸载之前的 yum list installed |grep docker yum remove docker-ce docker-ce-cli containerd2、安装显示支持的版本:yum list docker --showduplicates | sort -r安装:yum install docker-ce-17.06.2.ce-1.el7.centos -y3、启动systemctl start dockerdocker-compose安装1、

2020-11-06 09:44:26 299

原创 pip源配置

背景公司内部虚拟机只能连接阿里云,需要将pip源更改步骤1、vim ~/.pip/pip.conf[global]index-url=https://mirros.aliyun.com/pypi/simple[install]trusted-host=mirrors.aliyun.com

2020-11-06 09:20:34 214

原创 centos升级kernel版本

背景为了解决启动docker,failed to write 0 to memory.swappiness的问题,需要升级内核版本。虚拟机是公司内部,只能连接阿里云。解决1、替换yum源1、将原来的yum源备份cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak2、创建新的Centos-Base.repo3、关掉其他的yum源路径 vim /etc/yum.repos.d/CentOS-Media.repo enabled = 04、yum m

2020-11-06 09:16:50 517

原创 启动container:failed to write 0 to memory.swappiness

问题描述在部署fabric,peer节点实例化chaincode container时报错:Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:430: container init caused \”process_linux.go:396: setting cgroup config for

2020-11-06 08:52:04 825

原创 linux环境变量PATH设置错误恢复

背景一个刚入职小弟,添加环境变量PATH时,之前的PATH没有加上,导致系统命令不能用解决环境变量可以理解为把一些可执行程序,添加为命令,从bash可以直接调用;如果bash下不能调用则从安装目录也可以执行,因此按照这个思路进行恢复1、/usr/bin/vim ~/.bashrc修改PATH,把系统命令添加export PATH=$PATH:/usr/bin:/usr/local/bin:/bin:/sbin2、locate source ~/.bashrc一开始source命令找了半天安装目录

2020-09-02 10:45:54 1479

原创 mac docker拉取镜像报错:net/http: TLS handshake timeout

问题docker拉取镜像报错:net/http: TLS handshake timeout解决配置docker镜像加速1、从阿里云获取镜像加速源,首先注册登录,容器镜像服务->镜像中心->镜像加速2、打开docker配置页面如下图:

2020-08-13 10:15:03 568

原创 vscode golint 报警太多

vscode golint报警太多解决降低golint检查规范1、在vscode设置go.lint选项添加:["-min_confidence=.8"]如图:

2020-08-11 10:46:42 1950 3

原创 go mod

go mod作用Go.mod是Golang1.11版本新引入的官方包管理工具用于记录依赖包具体版本的问题,方便依赖包的管理。与传统依赖区别传统go依赖包首先在vendor里找,如果vendor里没有依赖则从gopath/src里找,如果还没有则从goroot里找,如果还没有就报错了。传统go project建立在gopath/src下,使用go mod后则可以建立在任意目录下,依赖通过go.mod文件查找go mod使用方法1.首先将go的版本升级为1.11以上2.设置GGO111MODULE=

2020-07-20 17:27:47 252

原创 VScode相关配置

问题突然vscode一些插件功能失效,函数不能跳转等因为被墙,插件安装也失败解决1、检查插件安装,发现被墙插件安装失败设置代理,一个是阿里云,一个是七牛云,实测发现七牛的快些执行:go env -w GO111MODULE=“on”go env -w GOPROXY=“https://goproxy.cn,direct”go版本1.13以上2、安装插件,按照vscode提示的安装即可3、发现还是不能跳转设置 code->preferences->settings->

2020-05-26 15:42:32 402

原创 git常见报错

问题问题1error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54fatal: the remote end hung up unexpectedlyfatal: early EOFfatal: index-pack failed解决由于大文件造成的提交或者拉取失败;增大缓存设置为500Mgit config http.postBuffer 524288000git config https.post

2020-05-26 11:15:55 376 1

原创 树图区块链相关说明

背景最近在寻求提升区块链交易TPS的方案,注意到目前有采用DAG结构来实现出块并发的方案来实现提高交易TPS。这里发现Conflux项目的树图区块链采用的就是DAG结构,在这里把方案的出发点,解决之道进行相关阐述。相关阐述为何全序?所谓交易全序指的是交易在所有节点上的顺序是确定的、一致的。例如A有10个币,转给B 7个币,转给C 5个币,这两个交易如果顺序不确定则得到的结果也是不确定的,这...

2020-01-14 10:33:44 10632

原创 区块链底层网络调研

背景在做区块链项目时,大多落地金融机构,网络开通比较麻烦。现有区块链底层平台组成联盟链要求链上组织机构网络都需要打通,这里相对底层网络进行一些优化,初步想法是通过一些路由节点或是超级节点进行路由,也就是P2P网络中混合式架构。这里调研常见的区块链网络架构。比特币网络架构扩展比特币网络(extended bitcoin network):指代所有包含比特币P2P协议、矿池挖矿协议、Stratu...

2020-01-09 15:13:33 641

原创 再读PBFT算法

背景从事区块链相关研发,两三年了,共识这一块接触过pbft\kafka\raft。对pbft一开始从fabric0.6开始,论文也看了几遍,后来共识换成了kafka\raft。pbft就没有继续研究下去,最近接触一个区块链底层平台,采用pbft。因此这里又把论文读了一遍,总结一下心得体会,对一些比较难理解的地方进行梳理。PBFT算法为什么是3f+1?心得体会...

2020-01-07 11:00:23 734

原创 x509证书吊销相关调研

背景在做一个区块链项目时,区块链底层平台采用PBFT共识,没有配置块的概念,fabric有配置块约定链的权限。当删除一个节点时由于证书还没有吊销,被删除节点还可以自己启动加入区块链网络,这里实现证书吊销十分有必要。x509证书吊销什么是证书吊销证书吊销列表 (Certificate Revocation List ,简称: CRL) 是 PKI 系统中的一个结构化数据文件,该文件包含了证书...

2019-12-25 16:31:31 982

原创 基于fabric的联盟链管理项目

manageChain项目地址https://github.com/lushena/manageChain.git在建设联盟链时,发现更新联盟链组织成员不是太方便,例如增删链内成员;利用一些空余时间写了一个后端服务程序,通过SDK对区块链节点进行操作,目的是对联盟链进行管理,主要是创建,增删链内成员等,为区块链发展尽一些绵薄之力。一、目的与初衷1、基于hyperledger/fabric...

2019-12-19 20:49:49 9337

原创 fabric零知识证明

简介官网:https://hyperledger-fabric.readthedocs.io/en/release-1.3/idemix.htmlfabric1.3 发布idemix特性,该功能主要实现了零知识证明,即:匿名性、不可关联性。目前主要实现SDK端的零知识证明,也就是client可以采用idemix,peer、orderer验证,目前只有Java-sdk实现了该功能,其他sdk...

2019-09-23 15:37:06 9299

原创 fabric社区发展概况

前言官网:https://github.com/hyperledger/fabricfabric作为联盟链底层的基础设施已经发展几年,也陆续在一些场景中落地。在发展过程中,也在不断完善。从最早fabric0.6版本到现在1.4,1.X版本后面会停止更新,会切换到2.0版本。本文就从fabric发展历程,把几个版本主要的特性做一下总结,也可从中发现商业落地对社区的发展的一些推动。fabric主...

2019-07-30 11:22:42 10370

原创 以太坊学习笔记(一):基于POA的私有链搭建

简介这里以太坊的一些特性就不赘述,可以在官网进行查阅:https://www.ethereum.org/。下面主要介绍基于POA机制的环境的搭建来窥探以太坊的运行机制。源码下载及编译1、git clone https://github.com/ethereum/go-ethereum2、git checkout -b remotes/origin/release/1.8这里采用1.8这个...

2019-06-05 16:09:25 12096 1

原创 docker打开2375

在进行docker swarm进行管理集群节点时,需要打开端口。1、$ pwd/etc/docker创建daemon.json$ cat daemon.json{ "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]}2、cat /usr/lib/systemd/system/docker.servic...

2019-04-08 16:36:56 11699

原创 docker swarm简介

简介Docker Swarm 是一个为 IT 运维提供集群和调度能力的编排工具。官方文档:https://docs.docker.com/swarm/运行 Docker 的主机可以主动初始化一个 Swarm 集群或者加入一个已存在的 Swarm 集群,这样这个运行 Docker 的主机就成为一个 Swarm 集群的节点 (node) 。节点分为管理 (manager) 节点和工作 (work...

2019-04-03 18:49:37 10743

原创 fabric 国密库相关编译问题

背景在区块链中采用国密加密算法,涉及到c代码编译成动态库供golang调用的问题。要满足linux下可运行,Darwin下可运行。linux的相关编译已经在另一篇博文上记录过,这里主要总结mac下的相关问题。问题符号表未定义问题Undefined symbols for architecture x86_64: "_BIO_ctrl", referenced from: _...

2019-02-24 21:35:46 10353

原创 区块链项目:golang内存泄漏,goroutine泄漏排查

一、pprof的使用pprof的启动及操作import net/http/pprofgo func() { http.ListenAndServe("0.0.0.0:11181", nil) }()然后通过网页打开即可:ht

2019-02-24 21:34:28 13360

原创 golang coredump分析

背景最近在分析golang的一个内存泄漏问题。一般来讲,使用golang自带的pprof工具就可以分析内存的使用,协程情况,是否有block等情况。但是我们项目中调用了C库,导致C库的一些东西没法通过pprof来进行监控分析。实际上通过pprof来监控程序的话,内存是稳定的,但是占用Linux的内存是一直增长的,即RES一直增长,实际上程序是有泄漏的。怀疑是使用C库导致,所以通过coredump...

2018-10-12 11:12:44 19829

原创 ssh连接超时解决方法

ssh连接超时,主要有以下三种方法来解决:1.修改server的etc/ssh/sshd_config,添加下面两个选项: ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接 ClientAliveCountMax 3 #server发出请求后,client没有响应次数达到3,就自动断开连接,一般client...

2018-09-17 13:17:13 31692

原创 fabric 共识模块解读

本文主要分析fabric共识模块的流程,方便自己添加新的共识模块。主要涉及的函数和调用流程如下图所示:一般来讲,如果要添加新的共识算法,主要实现这个接口:type Chain interface { // NOTE: The kafka consenter has not been updated to perform the revalidation // che...

2018-09-13 13:16:41 12488 3

原创 fabric:gossip协议

gossip协议主要是一个P2P的网络传输协议。fabric主要通过此协议来进行区块的同步。具体地,leader的peer节点会从orderer把区块拿到,然后把区块同步到该组织的其它peer节点。anchor peer节点主要用来同步各组织间的信息。gossip通过不断地广播alive消息来判断哪些节点在线,这个信息用PKI ID和发送方的签名,来保证作恶节点冒充其它节点。这个机制大概过程是:c...

2018-08-21 18:28:20 11749

原创 区块链与merkle tree

Merkle TreeMerkle Tree 是由计算机科学家 Ralph Merkle 在很多年前提出的,并以他本人的名字来命名。通常也被称作Hash Tree,就是存储hash值的一棵树。Merkle树的叶子是数据块的hash值。非叶节点是其对应子节点串联字符串的hash。 merkle tree(变体例如 merkle patricia tree:MPT)广泛地应用于比特币,以太坊,f...

2018-08-16 19:41:20 12753

原创 docker stats show a wrong value of block I/O when using dd if=/dev/zero in a container

问题:在做对container监控时,查看磁盘的大小情况,发现docker stats的BLOCK I/O与用dd if=/dev/zero命令测试的结果有出入。docker stats解析:一般来说,对于docker的监控,有三种最主要的方式去获取性能指标,分别是:cgroup、docker命令行(docker stats)以及docker的API。对于cgroup方式,就是通过...

2018-08-09 18:31:14 1483

网络数据库课程

数据库开发入门,很好的一个教程,特别对新手有帮助

2012-12-02

stm32F103zet6原理图

stm32103zet原理图,里面有一些扩展应用

2012-12-02

空空如也

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

TA关注的人

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