Hyperledger Fabric协议的定制之protocol buffer

前言以前也研究过这个protobuf这一语言标准,这一google开发的用来网络协议指定的标准。这次再遇到这里就着研究fabric的机会深入的说明一下。用这个进行协议的指定是比较节约网络带宽,编解码方便。下面我们就从数据类型和编解码方式两个方面来加以说明。通过本文的阅读你将会发现,利用好protobuf有利于你提高程序编写的效率和减少协议指定的繁杂性。特别是如果你要设计的是一个网络系统的时候。1、protobuf的关键字和数据类型针对不同的程序语言(C++,java,golang)有不同的pro...阅读全文

简书 2020-04-30 03:32:47 刨根问底儿

2020 区块链 golang 版本(8)

封面 查询余额(UTXO) 上面代码实现 Alice 通过挖矿得到她的第一笔交易 12.5 比特币奖励,现在我们需要实现可以查询 Alice 余额(UTXO)的方法。 图 我们可以通过追踪 John 交易来计算其 UTXO,如图 蓝色表示交易输入 黄色和绿色表示交易输出,其中绿色表示没有被话费的输出 那么我们在统计某一个用户UTXO 不仅要看和他相关输出,还要看和他相关输入,以便确认某一笔输出是否被使用,如果被使用我们就可以跳过该输入对应输出,这里大家可能对输入和输出还不算理解,这里输入和输出可...阅读全文

简书 2020-04-30 03:32:46 zidea

go test依赖

同事的项目本地执行没有问题,线上跑go test的时候一直无法通过,build 失败。 最终定位原因: 环境需要安装gcc环境 打开golang的环境变量 CGO_ENABLED="1" 环境默认是打开了CGO的,但执行go test时会报gcc错误。为了不安装gcc环境,强制修改了这个变量(还尝试了半天修改的方法) 这是因为甚至是go test ./...时,有些报会使用到 “C混合编译”,需要注意这俩个关键因素。 go import Understanding Dependency Mana...阅读全文

简书 2020-04-30 03:32:46 戈壁堂

Golang 编译Mac、Linux、Windows多平台可执行程序

file Golang 支持在一个平台下生成多个平台运行包 编译之后直接可执行,使用起来非常方便 1.Mac Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go 2.Linux Linux下编译Mac, Windows平台的64位可执行程序: CGO_ENABL...阅读全文

简书 2020-04-30 03:32:45 开发者阿俊

Golang算法和数据结构

排序 2.选择排序 package main import "fmt" //从未排序数组中找到最小元素,将它和数组第1个元素交换,在剩下数组中找到最小元素,与第2个数组交换... func SelectSort(arr *[5]int) { n := len(arr) for i := 0; i < n-1; i++ { min_idx := i for j := i + 1; j < n; j++ { if arr[j] < arr[min_idx] { min_idx = j } } if ...阅读全文

简书 2020-04-30 03:32:44 DoneIsBetter

Consul核心概念及安装配置

简介: Consul是一个基于golang开发的服务网格解决方案。提供具有服务发现,配置及服务分段功能的控制层(Control Plane)。每个功能都可以根据需要分开使用。Consul需要一个数据层(Data Plane),支持代理和本地集成两种模式。Consul内置一个简单的代理可以直接使用另外还支持Envoy等第三方代理集成。 Consul在计算机网络中所处的地位: NetworkLayer.png 功能特性 1.服务发现 Consul客户端可以注册服务,其他客户端可以使用HTTP协议或D...阅读全文

简书 2020-04-30 03:32:43 写个代码容易么

go语言开发动态库

go build 可以指定buildmode。分为了多种模式。具体模式如下。 模式 说明(当前go版本 1.10.3) archive 编译成二进制文件。一般是静态库文件。 xx.a c-archive 编译成C归档文件。C可调用的静态库。xx.a。注意要编译成此类文件需要import C 并且要外部调用的函数要使用 “//export 函数名” 的方式在函数上方注释。否则函数默认不会被导出。 c-shared 编译成C共享库。同样需要 import “C” 和在函数上方注释 // export...阅读全文

简书 2020-04-30 03:32:42 笑吧小鸟

Go 中的内联优化

本文讨论 Go 编译器是如何实现内联的以及这种优化方法如何影响你的 Go 代码。 *请注意:*本文重点讨论 *gc*,实际上是 [golang.org](https://github.com/golang/go) 的 Go 编译器。讨论到的概念可以广泛用于其他 Go 编译器,如 gccgo 和 llgo,但它们在实现方式和功能上可能有所差异。 ## 内联是什么? 内联就是把简短的函数在调用它的地方展开。在计算机发展历程的早期,这个优化是由程序员手动实现的。现在,内联已经成为编译...阅读全文

Go语言中文网 2020-04-29 21:01:10 lxbwolf

Golang 编译Mac、Linux、Windows多平台可执行程序

Golang 支持在一个平台下生成多个平台运行包 编译之后直接可执行,使用起来非常方便 1.MacMac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go 2.LinuxLinux下编译Mac, Windows平台的64位可执行程序: CGO_ENABLED=0 GOO...阅读全文

Segmentfault 2020-05-03 21:32:37 阿俊

leetcode-hot-(2/100)

2/100-两数相加 题目描述 go to leetcode 分析解答 从题目描述中,联想到CPU的加法器:每个链表代表一个数字,每个节点则表示一位数字。因此,我们可以模拟CPU,也设立一个进位标志位carry。对于合并后的新节点,节点的值value = 对应位置两个节点的value和 + carry func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { // 1.for each reverse-list l1, l2: // n...阅读全文

Segmentfault 2020-05-03 09:32:34 zhangshaos

基于Golang的微信支付SDK,支持微信商户支付/商户分账/服务商支付/服务商分账

微信支付 SDK For Golang 支持微信商户支付/商户分账/服务商支付/服务商分账 查看线上文档 安装包 go get -u github.com/wleven/wxpay 查看文档 // 执行命令 godoc -http:=8888 -play // 浏览器打开文档 http://127.0.0.1:8888/pkg/github.com/wleven/wxpay/ 支付环境初始化 var WxPay = pay.WxPay{ // 支付初始化参数 } // WxPay 支付环境 ty...阅读全文

Segmentfault 2020-05-02 09:32:34 黑白配

记Python “用户环境”的一次完美应用

首发于个人公众号:《Python编程时光》 我的博客原文:python.iswbm.com/en/latest/c… 我的 Github:github.com/iswbm/Pytho… 在之前写过一篇关于虚拟环境使用的文章 :Python 虚拟环境使用指南. 但是还没有好好的介绍一下 Python 的用户环境,原因是自己一直没遇到要使用 用户环境 的使用场景,所以就一直懒得写。 恰巧这两天,自己遇到了一个使用用户环境的体验可以完爆虚拟环境的案例,就拿出来分享一下。 1. 我的使用背景 公司有数以...阅读全文

4-29

I use this app so often. every day more than two hours. but that's a good situation. I was think. this app company must broken. when?maybe that's shount not to be worry. but it will be broken. definitely. so my diary will disappear. it's matter? I ca...阅读全文

简书 2020-04-29 13:32:48 蛐蛐儿阳

记Python “用户环境”的一次完美应用

首发于个人公众号:《Python编程时光》我的博客原文:http://python.iswbm.com/en/la...我的 Github:https://github.com/iswbm/Pyth... 在之前写过一篇关于虚拟环境使用的文章 :Python 虚拟环境使用指南. 但是还没有好好的介绍一下 Python 的用户环境,原因是自己一直没遇到要使用 用户环境 的使用场景,所以就一直懒得写。 恰巧这两天,自己遇到了一个使用用户环境的体验可以完爆虚拟环境的案例,就拿出来分享一下。 1. 我的...阅读全文

Segmentfault 2020-05-01 23:32:34 Python编程时光

golang构建web服务入门教程-环境部署(一)

golang 作为新时代的编程语言已经越来越流程,我们今天开始就一步一步构建一个能应用到生产环境的web服务; **第一步:** 下载golang环境,目前最新版本到了1.14,我们不要太冒进,使用1.13版本即可; 下载环境: 国内镜像地址:https://studygolang.com/dl 如果用的是 windows 64位选择对应版本即可 ![01.png](https://static.studygolang.com/200429/5dc...阅读全文

Go语言中文网 2020-04-29 13:12:23 zhucheer

Golang中使用Date进行日期格式化(沿用Java风格)

Github https://github.com/noogo/date Date Date是一个基于time包装的一个日期包,通过此包可以快速创建日期、获取时间戳、毫秒数及最重要的日期格式化,另外你还可以继续使用time包下的所有函数(除time.Foramt(string)外)你可以通过以下方法快速创建一个Date对象: Now() WithTime(t time.Time) WithTimestamp(timestamp int64) WithMillisecond(millisecond...阅读全文

Segmentfault 2020-05-01 17:32:34 Keson

ast分析

AST 许多自动化代码生成工具都离不开语法树分析。 ast.File结构 type File struct { Doc *CommentGroup // associated documentation; or nil Package token.Pos // position of "package" keyword Name *Ident // go文件的包名 Decls []Decl // 最外层的声明 Scope *Scope // package scope (this file on...阅读全文

Segmentfault 2020-05-01 13:32:35 WayytWang