如何手动使用ccenv image编译golang的chaincode image

准备golang chaincode源文件 本地创建目录: $ mkdir -p chaincode/input/src # used for chaincode source files $ mkdir -p chaincode/output # generate compile output chaincode 把chaincode所有源文件拷贝到chaincode/input/src目录下面。 后面我们会设置GOPATH=chaincode/input下面,所以这里有一级src的子目录。 ...阅读全文

简书 2020-11-10 03:32:46 CodingCode

毕业设计之 ---基于微服务框架的电影院订票系统

简介 今天来介绍一篇优秀毕业设计, 基于微服务框架的电影院订票系统 题目要求 在这里插入图片描述 技术方案 服务端:go-micro【微服务框架】 数据库:mysql 缓 存:redis 前 端:el & vue 服务器: centos 7 & nginx 本地环境:go1.9 容器:Docker 进程管理:supervisor 数据库备份:冷备份(rsync+mysqldump) 这里给一点建议如果是对某种技术没那么熟悉的话还是不建议选择较新技术的,毕竟这是毕设。 这里要说一点,对于大部分学校...阅读全文

简书 2020-11-09 20:40:43 DanChengStudio

Go语言都这么火了

# Go语言适合做什么 ## Go语言适合做什么教程 **[Go 语言](https://haicoder.net/golang/golang-tutorial.html)** 主要适合做服务器编程、分布式系统、数据库代理器、中间件、网络编程、数据库操作以及开发云平台等。 ## Go语言发展 ### Go语言发展 2007 年 9 月,Rob Pike 在 Google 分布式编译平台上进行 **[C++](https://haicoder.net/cpp/...阅读全文

Go语言中文网 2020-11-09 19:35:45 haicoder_ibai

又一道比较运算符相关的面试题让我明白基础很重要

来自公众号:新世界杂货铺比较运算不简单啊我们先看一下上一期的投票结果:首先,笔者自己选择了true,所以实际结果是41%的读者都选择了错误的答案。看到这个结果,笔者相信上一篇文章还是能够帮助到大家。经过千辛万苦终于明白了上一道面试题是咋回事儿,这个时候却见面试官微微一笑道:“下面的输出结果是什么”。type blankSt struct { a int _ string } bst1 := blankSt{1, "333"} bst2 := struct { a int _ string }{1...阅读全文

Segmentfault 2020-11-11 19:32:33 新世界杂货铺

Golang中Bit数组的实现

Go语言实现Bit数组常用方法Go语言里的集合一般会用map[T]bool这种形式来表示,T代表元素类型。集合用map类型来表示虽然非常灵活,但我们可以以一种更好的形式来表示它。例如在数据流分析领域,集合元素通常是一个非负整数,集合会包含很多元素,并且集合会经常进行并集、交集操作,这种情况下,bit数组会比map表现更加理想。一个bit数组通常会用一个无符号数或者称之为“字”的slice来表示,每一个元素的每一位都表示集合里的一个值。当集合的第i位被设置时,我们才说这个集合包含元素i。下面的这个...阅读全文

简书 2020-11-09 18:32:46 也许会了

微服务框架 Go-Micro 集成 Nacos 实战之服务注册与发现

相关背景知识 1. Go-Micro Go Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和事件驱动通信等。 它的设计哲学是「可插拔」的插件化架构,其核心专注于提供底层的接口定义和基础工具,这些底层接口可以兼容各种实现。例如 Go Micro 默认通过 consul 进行服务发现,通过 HTTP 协议进行通信,通过 protobuf 和 json 进行编解码,以便你可以基于这些开箱提供的组件快速启动,但是如果需要的话,你也可以通...阅读全文

简书 2020-11-09 16:33:10 码农奋斗之路

MIT6.824分布式系统课程 翻译&学习笔记(三)GFS

说明本系列文章是对大名鼎鼎的 MIT6.824分布式系统课程 的翻译补充和学习总结,算是自己一边学习一边记录了。如有疏漏错误,还请指正:)持续更新ing。。。翻译&补充论文The Google File SystemSanjay Ghemawat, Howard Gobioff, and Shun-Tak LeungSOSP 2003为什么我们需要读这篇论文?分布式存储是很重要的概念接口/语义 应该是什么样子的?内部是如何工作的?GFS论文覆盖了6.824中的很多主题:并行,容错,复制,一致性良...阅读全文

Segmentfault 2020-11-11 17:32:36 raesnow

Go 深入源码 —— select 与 channel

> Golang 通过 `select...case` 语句实现了对 `channel` 的多路复用以及非阻塞收发操作 本文将着重讲解以下问题: * 编译器对 `select` 语句的优化 * [`select` 如何随机选择 `case`](http://icebergu.com/archives/go-select-channel#%E5%A6%82%E4%BD%95%E9%9A%8F%E6%9C%BA%E9%80%89%E6%8B%A9-case) * [当多个 `channe...阅读全文

Go语言中文网 2020-11-09 16:27:37 Iceber

Go 深入源码 —— channel

> Don't communicate by sharing memory, share memory by communicating. **不要通过共享内存来通信,而要通过通信来实现内存共享。** ## 数据结构 我们可以把 Channel 看做是一个先进先出(FIFO)的数据队列,那么如何实现这种队列 **channel 的底层数据结构是一个 `*hchan`,在编译时期会将 make(chan int) 语句转换成 makechan 函数调用** ### hc...阅读全文

Go语言中文网 2020-11-09 16:27:02 Iceber

微服务框架 Go-Micro 集成 Nacos 实战之服务注册与发现

作者 | 张斌斌导读:本文主要介绍如何使用 Golang 生态中的微服务框架 Go-Micro(v2) 集成 Nacos 进行服务注册与发现。(Go-Micro 目前已经是 v3 版本,但由于某些原因项目已经更名为 nitro 具体原因大家可以去 github 中查看。)相关背景知识1. Go-MicroGo Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和事件驱动通信等。它的设计哲学是「可插拔」的插件化架构,其核心专注于提供底...阅读全文

Segmentfault 2020-11-11 17:32:36 阿里巴巴云原生

Go 与异步 IO - io_uring 的思考

> 本来准备写一篇详细关于 `io_uring` 的中文文章,不过在使用上官方的一些文章写的已经非常详细,简单的拿来[翻译](http://icebergu.com/archives/linux-iouring)感觉又失去了乐趣 于是便借鉴 [liburing](https://github.com/axboe/liburing),配合 Go 提供的并发机制实现了一个 golang 版本的异步 IO 库 —— [iouring-go](https://github.com/iceber/iou...阅读全文

Go语言中文网 2020-11-09 14:22:12 Iceber

网络流量威胁-恶意代码web RCE漏洞PCAP分析

1、web应用远程命令执行漏洞RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。比如我们常见的路由器、防火墙入侵检测等设备的web管理界面上,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标,提交后,后台会对该P地址进行一次ping测试,并返回测试结果,而,如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交意想不到的命令,从而...阅读全文

简书 2020-11-09 13:32:47 PCAPLAB

通过GitHub Action自动部署Maven项目

前言 要把自己的 JAVA 项目发布到 Maven 中央仓库上,这个过程非常的麻烦,而且由于 Maven 中央仓库的严谨性,每次发布都需要登录到Nexus网站手动进行流程确认,并不支持纯命令行式的部署,导致无法做到真正的CI/CD,为了弥补这一点,我抓包分析了一下Nexus API并且开发了一个Github Action(maven-nexus-release)用于自动的Close和Release,从而达到真正的全自动部署。 效果图 已经有发布 jar 包到中央仓库的老司机应该都明白发布 jar...阅读全文

简书 2020-11-09 12:32:47 mklee

【golang】GC详解

Golang从1.5开始引入了三色GC, 经过多次改进, 当前的1.9版本的GC停顿时间已经可以做到极短. 停顿时间的减少意味着"最大响应时间"的缩短, 这也让go更适合编写网络服务程序. 这篇文章将通过分析golang的源代码来讲解go中的三色GC的实现原理.这个系列分析的golang源代码是Google官方的实现的1.9.2版本, 不适用于其他版本和gccgo等其他实现, 运行环境是Ubuntu 16.04 LTS 64bit. 首先会讲解基础概念, 然后讲解分配器, 再讲解收集器的实现.基...阅读全文

Segmentfault 2020-11-11 15:32:34 去去1002

Go 官方进程诊断工具 gops 详解

在类 Unix 系统中,我们常常会使用 ps 命令来查看系统当前所运行的进程信息,该命令为我们提供了较大的帮助,能够快速的定位到某些进程的运行情况和状态。而在 Go 语言中,也有类似的命令工具,那就是 gops(Go Process Status),gops 是由 Google 官方出品的一个命令行工具,与 ps 命令的功能类似,能够查看并诊断当前系统中 Go 程序的运行状态及内部情况,在一些使用场景中具有较大的存在意义,属于常用工具,因此在本文中我们将对 gops 进行全面的使用和介绍。基本使...阅读全文

51CTO博客 2020-11-08 20:34:41 分布式实验

数据结构与算法系列之栈&队列(GO)

以下完整代码均可从这里获取栈栈的基本概念后进先出、先进后出就是典型的栈结构。栈可以理解成一种受了限制的线性表,插入和删除都只能从一端进行当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,就应该首选“栈”这种数据结构(浏览器的前进、后退功能)栈的实现栈主要有两种操作,入栈和出栈,这里通过数组(顺序栈)和链表(链式栈)两种方式实现栈顺序栈package arrayStack import "fmt" type Item interface {} type ItemStack...阅读全文

Segmentfault 2020-11-11 15:32:33 书旅

数据结构与算法系列之链表操作全集(三)(GO)

以下完整的代码,及测试代码均可从这里获取github删除单向链表倒数第n个结点方法一:快慢指针法思路删除倒数第N个结点,假设反过来看,要删除第N个节点。那么,一个指向头结点(头结点中也是一个数据结点)的指针向前移动N-1个结点后,指向的就是第N个结点现在再看删除倒数第N个结点,假设此时有两个指针(快指针fastPtr、慢指针lowPtr)均指向头结点,快指针fastPtr向后遍历N-1个结点之后,慢指针和快指针开始一起向后遍历,当快指针到达最后一个结点的时候,慢指针指向的位置,就是倒数第N个结点...阅读全文

Segmentfault 2020-11-11 14:32:39 书旅

Hugo 之旅

之前写了篇文章《博客迁移至 Hugo》,提了下使用 Typecho 多年后越发感受到运维的成本之高后,将博客迁移到了静态博客程序 Hugo 下。使用 Vercel + Github 可以免费搭建高性能博客,绑定域名还能自动帮忙创建 SSL 证书。当然偷懒的话也可以直接使用默认分配的二级域名。搭建 点击上面的按钮快速抵达创建页面,未登录的会需要登录,这块直接使用 Github 登录即可。登录后第一步会让你选择 Vercel 账号,这里直接选择 Personal Account 即可。之后会让你输入...阅读全文

Segmentfault 2020-11-11 14:32:38 公子

一篇快速入门操作系统的进程管理

1. 什么是进程进程即正在运行的程序的一个实例。当启动一个程序,程序会从磁盘被读取到内存,CPU 再从内存中读取指令,对其解码,然后执行指令(比如两数相加,访问内存,检查条件,跳转函数等)。完成这条指令后,CPU 继续重复上述操作。这样子就可以实现一个 CPU 可以对一个进程,以一对一的形式进行指令读取与执行。我们把操作系统做某件事,抽象成一种概念,称之为一个任务。一个进程可以对应一个任务,也可以对应多个任务。早期的计算机只有一个 CPU,多个任务需要运行怎么办?需要依次排队等待,串行执行,一个...阅读全文

Segmentfault 2020-11-11 14:32:38 YinTokey