自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 fastjson的使用

json是一种跨语言、跨前后端的标准数据交换格式。fastjson是一个java语言编写的高性能且功能完善的JSON库。fastjson 常用 APIfastjson API 入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final J

2020-10-17 15:20:23 177

原创 环签名、群签名、DAA协议原理

环签名:https://www.21ic.com/article/740371.html群签名:https://blog.youkuaiyun.com/zhang_hui_cs/article/details/8965338群签名中用到的知识签名:https://blog.youkuaiyun.com/zhang_hui_cs/article/details/8964830知识签名的安全性如下:群签名的原理解析:群签名中,y是隐藏的,实现了群签名的匿名性,r随机数实现了签名的无关联性,无法识别两个签名是否由同一个人签

2020-05-21 17:44:45 1041

原创 fabric密码服务提供bccsp包

bccsp即blockchain cryptographic service providerbccsp接口如下,即bccsp实例将提供密钥生成、加解密、签名生成和验证、哈希生成等功能。// BCCSP is the blockchain cryptographic service provider that offers// the implementation of cryptograp...

2020-05-05 01:56:57 540

原创 fabric成员服务提供MSP源码解读1:接口介绍

位置:github.com\hyperledger\fabric\msp\msp.goMSP的作用是为客户端或peer节点提供身份证书或匿名身份证书,客户端需要使用证书进行交易签名,背书节点需要使用证书进行交易提案响应签名,fabric框架将msp功能进行组件抽象,可以自定义MSP实现逻辑,而不影响其他部分的代码。成员服务提供者MSP提供以下接口:1、身份的反序列化接口IdentityDes...

2020-05-04 02:49:25 742

原创 Go语言学习:从文件格式化读写

遇到的问题:md5哈希得到的值是16字节的值,是无法与字符编码对应的,使用ioutil.writefile写到文件里出现得到的文件是乱码的问题。原因:ioutil.writefile默认[]byte数组是以utf-8编码的字符数组。go语言默认utf-8编码,string类型转[]byte类型:“abc黄” →616263e9bb84(61即97,黄占三个字节)测试:ioutil.Readf...

2020-04-19 00:16:02 621

原创 fabric2.0 fabtoken相关

1、使用UTXO(交易+ouputIndex)的记账模式,每个用户其实只有一个公钥,但是这个公钥可以是多个交易的输出。使用自己的某个UTXO转账给别人,(交易ID,输出index1)是自己的找零地址,(交易ID)则是对方的UTXO。所以一个用户可能拥有多个UTXO,如果有多个人给一个用户转账,该用户应该就有多个id和对应余额。2、转账是不用指定输出地址,只要指定收款用户名,输出地址就是自己的证书...

2020-04-09 00:05:16 287

转载 通过golang context实现请求超时控制和goroutine生命周期控制

原文链接:https://blog.youkuaiyun.com/qq180782842/article/details/88942602通过golang context实现请求超时控制和goroutine生命周期控制下例中:lazyHander负责请求参数处理和context的初始化:客户端发送超时参数,采用WithTimeout来控制context在指定时间内关闭其管道,若所有子进程中均声明了正确的...

2020-04-06 23:27:31 1093

原创 centos7配置静态ip,systemctl restart network重启网络报错Job for network.service failed because the control proc

配置静态ip:vim /etc/sysconfig/network-scripts/ifcfg-ens33修改BOOTPROTO=static下方添加IPADDR=静态IP地址GATEWAY=默认网关NETMASK=255.255.255.0DNS1=8.8.8.8保存之后执行systemctl restart network结果报错了Job for network.ser...

2020-04-06 03:50:49 2793

原创 SGX技术应用探索

随着云服务的广泛使用,云安全问题成为云技术领域的研究问题之一,主要包括通信安全、存储安全和计算安全。通信安全和存储安全都可以通过加密等方案解决,而运行安全的解决方案主要是通过虚拟机,在不同的虚拟机中进行不同用户的计算,通过虚拟机的隔离实现不同用户运行程序的隔离以及服务器资源的划分(一个物理服务器多个虚拟机机多个云服务器),但是虚拟机的运行消耗大量的CPU性能,降低CPU的利用率。docker容器实...

2020-03-15 14:39:52 836

原创 golang context包

Context是接口,实现的方法:Deadline() (deadline time.Time, ok bool)Done() <-chan struct{}Err() errorValue(key interface{}) interface{}Value() returns the value associated with this context for key, or n...

2020-03-15 00:45:30 84

原创 docker swarm的使用以及实现负载均衡

-------------------------创建集群------------------------------创建Swarm集群[root@manager43 ~]# docker swarm init --advertise-addr 192.168.31.43查看集群的相关信息[root@manager43 ~]# docker info上面的命令执行后 找到Swarm的关...

2020-03-11 00:55:09 1083

转载 JAVA基础学习: Collections.sort()及Arrays.sort()中Lambda表达式

Java8 Collections.sort()及Arrays.sort()中Lambda表达式及增强版Comparator的使用//2. Java8,使用Lambda表达式的基本排序Collections.sort(userList,(User user1, User user2) ->user1.getAge().compareTo(user2.getAge())); //...

2020-02-24 16:38:52 1015

翻译 fabric2.0官方文档翻译:使用Identity Mixer的MSP实现

https://hyperledger-fabric.readthedocs.io/en/release-2.0/idemix.html

2020-02-23 23:02:38 843

翻译 fabric2.0官方文档翻译:成员服务MSP

上篇文章Membership主要是一些解释性工作:介绍了MSP的结构以及以及MSP中每个文件的作用等,那我们就知道了本地MSP和通道MSP两个概念。本文档则提供有关MSP的设置和一些好的使用实践的具体细节。MSP的结构MSP的默认实现,需要指定一组参数以允许身份(证书)验证和签名验证。这些参数包括:自签名的根CA证书列表(X.509证书)中间CA列表(X.509证书),中间CA是可选参...

2020-02-23 00:08:55 706

翻译 fabric2.0官方文档翻译:成员资格Membership

原文地址:https://hyperledger-fabric.readthedocs.io/en/release-2.0/membership/membership.html成员资格服务提供商(MSP)发挥作用的地方: 它通过列出MSP包含的成员的身份或通过标识哪些根CA和中间CA被授权为信任域(例如组织)颁发成员证书。或者(通常是这样)通过将两者结合使用。通过定义网络或通道包含的MSP可以...

2020-02-21 22:27:14 557

翻译 fabric2.0官方文档翻译:peer节点可插拔的交易背书及验证机制

原文档地址:https://hyperledger-fabric.readthedocs.io/en/release-2.0/pluggable_endorsement_and_validation.html一个交易提交到记账节点后,记账节点在更改世界状态之前对交易作以下验证:验证交易签名验证背书签名验证背书签名集是否符合背书策略但是在有些实际使用中需要自定义验证规则,比如下...

2020-02-21 02:08:34 1280

原创 JAVA基础入门学习:常用的容器类

JAVA的容器—List,Map,SetCollection是最基本的集合接口,有两个子接口List和Set的,List一定是有序的,因此包含一些指定索引位置的方法;Set不一定有序,Set接口不包含需要索引进行操作的方法,当然其实现类可以自己增加。Collection 接口├List 接口│├LinkedList 类│├ArrayList 类│└Vector 类│ └Stack 类...

2020-02-07 20:19:34 204

原创 程序运行。动态链接库、静态链接库

.cpp程序编译运行的步骤:预处理器:处理预处理命令 .i编译器:把预处理完的文件进行一系列词法分析、语法分析、语义分析、及优化后生产相应的汇编代码文件 .asm汇编器 :汇编器是将汇编代码转变成机器可以执行的指令,每一个汇编语句几乎都对应一条机器指令,生成 .obj文件链接器:链接就是一个找符号的过程 → .exe文件链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件...

2020-01-14 17:06:02 357

原创 go语言创建http服务器

概念:ServeMux是一个HTTP请求路由器(或多路复用器,Multiplexor)。它将每个传入的请求的URL与已注册的pattern列表相匹配,并调用与URL最接近的pattern对应的Handler。Handler,处理器,负责输出HTTP响应的头和正文。任何满足了http.Handler接口的对象都可作为一个处理器。Handler接口只需实现一个方法:ServeHTTP(http....

2019-12-19 15:50:24 711

原创 网络编程之套接字socket

socket主要用于实现4.2BSD上的进程间通信。套接字主要有2种类型:Unix domain socket和IP socket。socket层只是在应用层和传输层之间的一个抽象接口层,socket主要有两种类型,一种是Unix Domain Socket,一种是Inet Socket。前一种主要用于本地主机的进程间通信,不经过网络层,开销更小,后一种可以用于同个主机或者网络上不同主机的通信,...

2019-12-18 21:05:38 172

原创 代码:如何优雅地判断 函数参数是否在可选值中的一个

func ListenTCP(network string, laddr *TCPAddr) (*TCPListener, error) { // 使用switch,参数属于可选值时则继续往下执行,否则返回错误 switch network { case "tcp", "tcp4", "tcp6": default: return nil, &OpError{Op: "list...

2019-12-18 13:21:33 171

原创 beego中的中间件实现及go中的修饰器

这里说的中间件是指在接收到用户消息,先进行一系列的预处理,再交给实际的http.Handler去处理。beego通过修饰器的方式实现pipeline的中间件。// MiddleWare function for http.Handlertype MiddleWare func(http.Handler) http.Handler// Run beego application.func ...

2019-12-17 20:20:12 3159 2

原创 json反序列化到interface类型后,再转换成具体类型

expected := model.Item{ Url: "https://", Id: "1470740797", Profile: model.Profile{ NickName: "乌雲下的黑玫瑰", Marriage: "离异", Age: 35, StarSign: "魔羯座(12.22-01.19)", Height: 155...

2019-10-05 16:11:09 1740

原创 Docker Toolbox安装,运行启动脚本报错“looks like something went wrong in step ‘looking for vboxmanage.exe’”

原因:安装时弹出安装Oracle VM VirtualBox的请求,没有同意。Docker Toolbox是一个工具集,主要包含如下内容:1、Docker CLI 客户端,用来运行docker引擎创建镜像和容器2、Docker Machine. 可以让你在windows的命令行中运行docker引擎命令3、Docker Compose. 用来运行docker-compose命令4、Kit...

2019-09-28 22:12:13 961

原创 go实现基数排序算法

go实现基数排序算法package radiximport "fmt"func RadixSort(seq []int) { // figures:位数,都是大于等于0的数 var max = 0 for _, s := range seq { if s > max { max = s } } var maxFigures = 1 for max/10 &...

2019-09-27 22:19:58 254

原创 爬虫

控制fetch的速度var rateLimiter = time.Tick(1000 * time.Microsecond)func Fetch(url string) ([]byte, error) { <- rateLimiter ... }和done channel原理一样,变量接收到数据才会往下执行...

2019-09-18 23:42:08 70

原创 分布式系统的一致性算法(共识算法)

参考 https://blog.youkuaiyun.com/u013679744/article/details/79222103分布式系统多个节点之间的两种通讯模型:共享内存、消息传递。Paxos算法是基于消息传递的。Paxos的前提假设是不存在拜占庭将军问题,即:信道是安全的(信道可靠),发出的信号不会被篡改,否则该算法就不可靠。如何保证消息没被篡改:数字签名等、Paxos能达成一致的原因:过...

2019-09-08 19:58:54 568

原创 golang:一些小细节

小写字母开头的函数是文件级别的,同个包内的其他文件中也不可用?

2019-07-23 18:27:55 139

原创 golang:函数变量的递归调用

使用函数变量的好处:与外部函数共享数据,相比分成几个独立函数,减少数据参数的传递。函数变量的递归调用例子:根据先决条件规则,对数据进行排序(有向无环图的排序)package mainimport "fmt"func main() { var prereqs map[string][]string prereqs = map[string][]string{ "...

2019-07-19 21:14:57 731

原创 golang:匿名函数作为返回值

匿名函数作为返回值package mainimport "fmt"func squares() func() int { var x int fmt.Println("11", x) return func () int { fmt.Println("22", x) x += 2 return x*x }}func mai...

2019-07-19 18:03:19 1666

转载 golang strings 包

原创完整版:https://blog.youkuaiyun.com/chenbaoke/article/details/40318423func Count(s, sep string) intfunc Contains(s, substr string) bool // Contains 判断字符串 s 中是否包含子串 substr // 如果 substr 为空,则返回 truefunc...

2019-06-07 18:14:11 116

空空如也

空空如也

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

TA关注的人

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