自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星星点灯的博客

怕什么真理无穷,进一寸有一寸的欢喜

  • 博客(49)
  • 收藏
  • 关注

原创 关于gitlab 使用用户名与密码登陆的方法

关于gitlab 使用用户名与密码登陆的方法

2023-02-28 21:29:16 1700

原创 长安链编译 undefined: pkcs11.ObjectHandle 问题

长安链编译 undefined: pkcs11.ObjectHandle 问题

2023-02-17 14:26:07 319

原创 go 编译 build constraints exclude all Go files in ...

go 编译 build constraints exclude all Go files in

2023-01-12 22:20:05 2369

原创 rust-analyzer failed to load workspace 问题处理

rust-analyzer failed to load workspace

2023-01-08 00:38:14 2914

原创 解决ubuntu 下载软件E: Sub-process /usr/bin/dpkg returned an error code (1)

cd /var/lib/dpkg/sudo mv info/ info_bak # 现将info文件夹更名sudo mkdir info # 再新建一个新的info文件夹sudo apt-get update # 更新sudo apt-get -f install # 修复sudo mv info/* info_bak/ # 执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全...

2021-08-14 20:47:25 145

原创 chainmaker tinygo 编译错误

本人的环境是macos下面是社区提供的run 命令。docker run -it -v /Users/gopath/src/github.com:/home chainmaker-go-contract bash在我的笔记本下出现如下错误Unable to find image 'chainmaker-go-contract:latest' locallydocker: Error response from daemon: pull access denied for chainma.

2021-07-19 16:36:31 253

原创 解决 “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by ......

clone 了chainmaker v1.2.0 版本的代码后。根据提示进行编译,编译完以后报 "/lib64/libc.so.6: version `GLIBC_2.18' not found (required by ... ) 错误,这里是告诉我们缺少glibc_2.18. 执行如下命令安装即可。wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gztar -zxvf glibc-2.18.tar.gzmkdir buildcd

2021-07-19 14:55:10 4176 2

原创 linux nohup 加密码

nohup command(e.g nohup scp root@*.*.*.*:/mnt/peer1/ledgersData/stateLeveldb.tar.gz ./)--上面不要在最后加 &回车。终端会打印nohup: 忽略输入并把输出追加到"nohup.out"$ password:输入密码输入密码后回车 并ctrl+z$ bg 就可以了$ps -ef |grep scp 就可以看到我们的进程在后台执行了...

2021-07-13 21:20:29 1036

原创  go 项目中submodule and main module 冲突导致的错误记录

今天在进行项目开发的时候发现了一个错误,错误如下:从错误提示来看,是在说明引入的包与预期不符合。(其实从这里大概就能发现应该是同一个第三方包我们引用了两次,并且这两次引用我们使用了不同的版本)。解决方法就是找到我们引用不同包的地方,然后将包修改为一致的版本。...

2021-04-25 11:44:24 502

原创 读写锁,无锁,并发单线程与单线程的不同

上一篇博客我介绍了go-cache项目的实现和用法,因为go-cache属于线程安全的,所以大量使用了锁。基于这个前提我就想了解下,在无锁以及有锁,读写锁。下在并发与非并发的情况下会有怎样的性能表现。因为受限硬件环境的不同,所以不同的小伙伴测出来的结果可能不同,但我在这里主要是进行这几种情况的比较,所以只要在同一种环境下就好,话不多说我们先上代码。当前go version is 1.16func TestCache_Add(t *testing.T) { tc := New(NoExpirat.

2021-04-16 14:33:46 199

原创 go-cache学习与源码分析

github.com/patrickmn/go-cachego-cache是一款类似于memached 的key/value 缓存软件。它比较适用于单机执行的应用程序。go-cache实质上就是拥有过期时间并且线程安全的map,可以被多个goroutine安全访问。并别代码量也相对较少,今天我们一起对go-cache代码包进行学习。我们这里先上用法说明package mainimport ( "log" "time" "github.com.

2021-04-15 20:51:02 407

转载 go atomic.value 原理介绍

我们知道通过atomic.value 结构我们可以实现结构体的原子操作。但是在源码层级是如何实现对应的原子操作的,我们在这里进行介绍。本来是想自己写一篇博客的,后来发现已经有大神做了完整的介绍。我就不做重复性的工作。Go 语言标准库中 atomic.Value 的前世今生...

2021-03-13 14:42:14 523

原创 go interface 带来的内存逃逸现象

type I interface { F() int}type A struct{ x int y int}func (a *A) F() int { z := a.x + a.y return z}func test(){ //&A不会发生逃逸现象 0.272 ns/op //var a = &A{} //a.F() //&A不会发生逃逸现象 20.6 ns/op a = &A{} var i I = a i.F()}.

2021-03-08 13:54:20 606

原创 golang1.15.6 版本 map 源码笔记

当前我们基于golang 1.15.6 版本源码进行解析。关于map 的图形化记录大家可以查看惜暮大神的Golang map实践以及实现原理。我在这里就不在赘述了。接下来的部分我会重点关注map 源码细节性的内容。Map struct:// A header for a Go map.type hmap struct { // Note: the format of the hmap is also encoded in cmd/compile/internal/gc/reflect.go.

2021-01-16 17:25:35 273

原创 golang &^ 运算符

&^ 运算符0110 &^ 1011 = 01001011 &^ 1101 = 0010&^ 二元运算符的操作结果是“bit clear"a &^ b 的意思就是 清零a中,ab都为1的位

2021-01-14 15:28:43 462

原创 context 源码解析

package contextimport ( "errors" "internal/reflectlite" "sync" "sync/atomic" "time")//每个context 都要实现的接口type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{.

2020-12-09 18:09:29 324

转载 &^ 计算

解释:如果运算符右侧数值的第 i 位为1,那么计算结果中的第 i 位为0;如果运算符右侧数值的第 i 位为0,那么计算结果中的第 i 位为运算符左侧数值的第 i 位的值。func main() { x := 11 y := (1 << 0) | (1 << 3) //保证 z 中的第 0 位和第 3 位为 0 z := x &^ y​ fmt.Printf("x = %b\n", x) fmt.Println("\t...

2020-12-07 10:30:42 146

原创 docker 核心技术与实现原理博客阅读笔记

本文是我学习Docker 核心技术与实现原理的记录;docker 核心内容:docker 出现的目的:通过 Docker 我们可以将程序运行的环境也纳入到版本控制中,排除因为环境造成不同运行结果的可能。docker目前的组件较多,并且实现也非常复杂,我们这里只记载几个核心的组件内容。1:Namespaces命名空间(namespaces)是 Linux 为我们提供的用于分离进程树、网络接口、挂载点以及进程间通信等资源的方法。在日常使用 Linux 或者 macOS 时,我们并没有

2020-12-02 15:21:49 126

原创 fabric 范围查询与联合主键

首先我要说明一下联合主键查询和范围查询从内部讲没有区别,没有区别,没有区别。重要的事情说三遍。下面我们通过源码来看下为什么说联合主键与范围查询没有区别。1:我们先来看下范围查询的源码。// GetStateByRange documentation can be found in interfaces.gofunc (stub *ChaincodeStub) GetStateByRange(startKey, endKey string) (StateQueryIteratorInterfa

2020-11-09 17:50:45 675

翻译 Scaling Hyperledger Fabric Using Pipelined Execution and Sparse Peers(提升fabric 6倍性能的文章翻译)

本文章是记录我对hyperledger fabric pipelinedABSTRACT许多使用Hyperledger Fabric(允许使用的区块链平台)构建的区块链应用程序的概念证明,最近已经转化为生产。但是,由于网络使用量的稳定增长,Hyperledger Fabric提供的性能对于企业来说是至关重要的。因此,在本文中,我们研究了使用垂直扩展(即通过添加更多vCPU)和水平扩展(即通过添加更多节点)技术在Fabric网络中实现的性能。我们发现,使用这两种技术,网络扩展性都非常差。在垂直..

2020-10-27 18:35:13 922

原创 Golang 笔记之Plugin介绍

前言: 最近在学习fabric 2.1 版本源码,其中在endorserSupportImpl 结构中使用了Go的plugin 技术。所以这里准备记录下Go Plugin 是什么,怎么用。这里部分参考了https://www.jianshu.com/p/4ab799081a99的介绍(特记录并表示感谢)什么是Go PluginGolang是静态编译型语言,在编译时就将所有引用的包(库)全部加载打包到最终的可执行程序(或库文件)中,因此并不能在运行时动态加载其他共享库。Go Plug...

2020-10-22 14:47:04 954 1

原创 使用Go Test测试单个文件和具体方法

前置条件:1、文件名须以"_test.go"结尾2、方法名须以"Test"打头,并且形参为 (t *testing.T)测试整体命令go test -v **_test.go测试文件下的具体方法命令go test -v **_test.go -test.run Test**

2020-10-15 10:35:00 1297

原创 libsecp256k1/include/secp256k1.h No such file or directory 问题解决

在windows 环境下总是遇到libsecp256k1/include/secp256k1.h No such file or directory 问题,尤其是在使用govendor 的情况下,这里记录下解决方法。很简单把缺失的包复制到vendor 中。

2020-10-13 17:51:42 840

原创 connectex: No connection could be made because the target machine actively refused it.

关于阿里云服务器出现以下错误的原因:connectex: No connection could be made because the target machine actively refused it.出现以上错误的原因是因为对外暴露的接口无法对外访问。那么如果对应的端口确定是已经对外开启了那么其中的一个问题可能是package main import ( "fmt" "net/http" )

2020-09-23 11:02:16 42157 1

原创 Blurring the Lines between Blockchains andDatabase Systems: the Case of Hyperledger Fabric(翻译)

Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger FabricABSTRACT(摘要)在过去的几年里,市场上出现了不计其数的区块链系统,每个区块链系统都声称要以这样或那样的方式彻底改变分布式交易处理的方式。许多区块链特性,例如拜占庭容错,在现代环境中确实是有价值的补充。然而,尽管围绕着技术的炒作,区块链系统必须面对的许多挑战是基本的事务管理问题。这在很大程度上是与已经存在了几十年的

2020-09-17 18:01:37 1826 3

原创 fabricsharp 一个执行顺序验证区块链的交易处理视角

名词说明:悲观并发控制一个锁定系统,可以阻止用户以影响其他用户的方式修改数据。如果用户执行的操作导致应用了某个锁,只有这个锁的所有者释放该锁,其他用户才能执行与该锁冲突的操作。这种方法之所以称为悲观并发控制,是因为它主要用于数据争用激烈的环境中,以及发生并发冲突时用锁保护数据的成本低于回滚事务的成本的环境中。乐观并发控制 (检查是否重复更改同一个数据)在乐观并发控制中,用户读取数据时不锁定数据。当一个用户更新数据时,系统将进行检查,查看该用户读取数据后其他用户是否又更改了该数据。如果其他用户更新.

2020-08-07 14:43:22 4018 5

原创 fabric docker 中 出现/bin/sh: ./build: not found 错误处理

计划使用fabric 2.x 的externalBuilds 构建外部的链码服务,在这个过程中发现了,无法使用对应的二进制包,会出现/bin/sh: ./build: not found 错误,解决办法将build 文件开头的#!/bin/bash 修改为#!/bin/sh...

2020-07-13 16:16:33 1580

原创 fabric externalbuilders 脚本说明

#!/bin/bash# Copyright IBM Corp. All Rights Reserved.## SPDX-License-Identifier: Apache-2.0set -euo pipefail # set -e表示一旦脚本中有命令的返回值为非0,则脚本立即退出,后续命令不再执行;# set -o pipefail表示在管道连接的命令序列中,只要有任何一个命令返回非0值,则整个管道返回非0值,即使最后一个命令返回0.#set -u 就可以让脚本遇到错误时停止执行,.

2020-07-07 16:32:24 197

原创 linux 环境查看使用空间命令

查看当前目录使用的总空间大小du -h --max-depth=0查看当前目录下某文件使用空间大小du -h --max-depth=1 文件名其中,”--max-depth=“指定深入目录的层数(如果不使用该参数,则会循环列出当前目录下所有文件及文件夹使用的空间大小,文件多时会很乱):(1) --max-depth=0:查看当前目录使用的总空间大小;(2)--max-depth=1:查看当前目录使用总空间的大小以及当前目录下一级文件及文件夹各自使用的总空间大小;...

2020-07-06 17:07:43 204

原创 docker rmi 批量删除

使用grep和awk过滤得到镜像ID。(匹配镜像名称为image-b,标签为除了v1d0-7之外的其他行,获取第三列的ID)docker images | grep image-b | grep -v "v1d0-7" | awk '{print $3}'03bf2d052587578bdaf37f925735af使用docker rmi删除过滤得到的镜像:docker rmi $(docker images | grep image-b | grep -v "v1d0-7" |

2020-07-06 16:41:07 1080

原创 Go语言struct{}类型的channel 说明

简介在Go语言中,有一种特殊的struct{}类型的channel,它不能被写入任何数据,只有通过close()函数进行关闭操作,才能进行输出操作。struct类型的channel不占用任何内存!!!定义:var sig = make(chan struct{})如果我们尝试为struct{}类型的channel 传递数据则会出现死锁sign <- struct{}{}错误如下:fatal error: all goroutines are asleep - deadlock

2020-07-02 14:33:46 478

原创 一次使用golang 编译android sdk 的记录

我发现这个我们需要安装的依赖特别特别多下面记录下我们前期需要安装的东西(我是在linux 环境开发的)下面记录下我安装的包。1:golang 安装1.11 以上2:gomobile 安装并并编译命令go get golang.org/x/mobile3:android sdk 下载安装(这里需要安装java)4:android ndk 下载安装具体的安装方法后期会补上...

2020-06-30 11:23:53 731

原创 cgo 编译命令

将go 代码编译为dll命令go build -buildmode=c-shared -o exportgo.dll exportgo.go

2020-06-17 11:28:22 819

原创 can't load package: cannot find module providing package 错误解决

go: finding module for package github.com/fabric-sdk-sample/fabric-sdk-go/sync-modulecan't load package: cannot find module providing package github.com/fabric-sdk-sample/fabric-sdk-go/sync-module: module github.com/fabric-sdk-sample/fabric-sdk-go/sync-m.

2020-05-11 16:42:41 4112

原创 fabric 1.4 block.json

{ header: { number: '37', previous_hash:'b57d891702819c0e62dd7d405743b0663d19e49365d43c6420f281b43492e78d', data_hash:'c730c7f832a24f9906e5224205182a66f25ef92b766c02a...

2020-04-30 15:34:55 272

原创 fabric部分底层数据结构梳理

签名的提案信息,客户端发送给 peer 背书的数据结构SignedProposal|\_ProposalBytes| \_Proposal # 提案结构| \_Header # *common.Header <= Proposal.Header| \_ChannelHeader # []byte -> *common...

2020-04-30 15:33:58 1016

原创 gopherjs 错误记录

在windows 下进行gopherjs build 时出现如下错误?[31m/src/syscall/syscall_nonlinux.go:5:18: undeclared name: SYS_EXIT?[39m?[31m/src/syscall/syscall.go:53:39: too few arguments in call to Syscall?[39m错误原因是当前...

2020-04-21 15:23:28 214

原创 golang ubuntu下安装

一、通过apt-get安装1、安装sudo apt-get install golang2、设置GOPATH变量GOPATH是扩展库的目录,Go先搜索标准库目录,然后搜索GOPATH库目录,所有的非标准库都放在GOPATH下。以GOPATH为“/usr/local/go”目录为例子:(1)把export GOPATH=/opt/go加入到~/.bashrc(或者/etc/pro...

2020-02-13 13:04:11 249

原创 fabric-sdk-go v1.4 与fabric 1.4 链接指南

首先吐槽一下fabric-sdk-go 项目写的太复杂,无时无刻的闭包函数,太难以阅读了。再加上他的makefile 里面启动的是整个fabric 项目太复杂了。所以我在这里记录下我的项目部署流程。golang ,docker,docker-compose 的安装以及如何将当前用户添加到用户组,等有时间再补上.1.启动fabric网络实现我们从github 上拉取 fabricg...

2020-02-10 13:53:05 1368 1

原创 Go外部依赖包引用顺序

一 :vendorvendor概念最早是由Keith提出,用来存放依赖包。在版本1.5出现。vendor的层级搜索规则是:从引用文件所在的vendor路径下面搜索, 如果没有找到,那么从上层目录的vendor路径下面搜索, 直到src的vendor路径下面搜索。二 :modulesGo 1.11版本支持临时环境变量GO111MODULE,通过该环境变量来控制依赖包的管理...

2020-02-05 16:32:29 1573

空空如也

空空如也

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

TA关注的人

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