Go语言中文网 为您找到相关结果 437

100行代码,带你编写一个go语言版的数据库客户端

GoLang,习惯被人成为go语言,是目前后端程序员比较喜欢的一款语言,在区块链行业内,go语言更被称为是第一编程语言。go语言的优势有很多,比如内存回收、高并发、语法简洁、开发效率和运行效率都高等。本文通过一个例子,给大家介绍如何用go语言来实现一个访问数据库(mysql)的客户端,也就是我们经常用到的那种命令行窗口! 在go语言中为我们提供了sql操作的api,需要引用包:database/sql,不过如果要使用mysql,还需要引用包(驱动包):github.com/go-sql-driver/mysql ,而且这个包在引用的时候要求是匿名引用,也就是说database/sql在实现时需要借助驱动包的内容。在实现我们的小目标之前,我们先要分析一下都需要做哪些事情。 首先我们要做数据库的...阅读全文

博文 2019-12-17 18:32:46 柏链项目学院P叔

【翻译】Hyperledger Fabric v1.1 中的系统链码

Hyperledger Fabric 交易流 Hyperledger Fabric v1.1提供了几个特殊的链码来执行某些特殊的任务,这些链码被称为系统链码 (System Chaincode)。本文的目的是简述这些链码的实现、功能和用法。与用户链码类似,系统链码也实现了 Init() 和 Invoke() 方法。Fabric中一共有五种合约: Configuration System Chaincode (CSCC) -- core/scc/cscc/configure.go Life Cycle System Chaincode (LSCC) -- core/scc/lscc/lscc.go Query System Chaincode (QSCC) -- core/scc/qscc/q...阅读全文

博文 2018-08-09 17:35:02 John_Xuxu

Fabric1.4基础搭建+票据示例

Fabric已经发布到1.4LTS版本,各个版本对比如下:来自:超级账本解读 https://hyperledger.mochain.info/Fabric v1.1版本主要的新特性包括: Fabric CA的CRL 区块以及交易的事件推送 增加了所有组建间的双向TLS通信 Node.js Chaincode链码的支持 Chaincode API新增了creator identity 性能相对v1.0有了明显的提升Fabric v1.2开始有了比较大的feature开始出现: Private Data Collections:这个特性不得不说在隐私保护上解决了不少项目的痛点,也减少了许多项目为了隐私保护在业务层做的复杂设计。 Service Discovery:服务发现这个特性,使得客户端拥...阅读全文

博文 2019-04-03 09:34:39 磨链社区

EthBox以太坊开发套件,一键安装部署以太坊开发环境

`EthBox`是汇智网为了方便以太坊开发学习者快速安装本地开发环境而制作的开发套件,可以一键安装以下必备开发工具: - nodejs:8.11.2 - git:2.17.1.2 - geth:1.8.10 - ganache-cli:6.1.0 - truffle:4.1.11 `EthBox`即支持采用仿真器进行快速开发验证,也支持使用标准 节点软件搭建私链测试,或接入公链进行部署。 `EthBox`的当前版本是0.0.1,目前仅适用于windows操作系统。 - [EthBox下载地址 - 百度云盘](https://pan.baidu.com/s/1sjqciE0CsAHj2Qnm5f51KA) - [EthBox使用说明](http://blog...阅读全文

主题 2018-06-07 17:42:13 hubwiz

Hyperledger Fabric 命令详解之 down

./bash.sh down a@ubuntu:~/hyfa/fabric-samples/first-network$ sudo ./byfn.sh down [sudo] password for a: Stopping with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] y proceeding ... 停止客户端 Stopping cli ... done 停止节点,peer和orderer Stopping peer0.org1.example.com ... done Stopping peer1.org1.example.com...阅读全文

博文 2018-08-06 11:34:51 kakushao

Go 每日一库之 gentleman

简介 gentleman是一个功能齐全、插件驱动的 HTTP 客户端。gentleman以扩展性为原则,可以基于内置的或第三方插件创建具有丰富特性的、可复用的 HTTP 客户端。相比标准库net/http,gentleman更灵活、易用。 快速使用 先安装: $ go get gopkg.in/h2non/gentleman.v2 后使用: package mainimport ( "fmt" "gopkg.in/h2non/gentleman.v2")func main() { cli := gentleman.New() cli.URL("https://dog.ceo") req := cli.Request() req.Path("/api/breeds/image/random")...阅读全文

博文 2020-04-08 23:32:45 darjun

如何发送和接收 SMS: 用 Go 语言实现 GSM 协议

当开发者出于验证或者通知的目的想要为应用程序添加 短消息服务 组件时,通常会使用像 [Twilio](https://www.twilio.com/docs/sms/api) 提供的 RESTful API,但是 API 之下到底发生了什么呢? 在这篇文章,您将了解 [通用计算机协议(UCP)](https://wiki.wireshark.org/UCP) 是什么以及如何使用 Go 语言通过这个协议直接与 [短消息服务中心(SMSC)](https://en.wikipedia.org/wiki/Short_Message_service_center) 通信来发送和接收 [SMS](https://en.wikipedia.org/wiki/SMS). ## 术语 ### MT 信息 运...阅读全文

博文 2019-01-26 20:50:13 jettyhan

配置一个独立的 SFTP 服务器

SFTPGo 是一个全功能和高度可配置的 SFTP 服务器软件,这是 XXX 上作者对这个软件的介绍。Full featured and highly configurable SFTP server software项目地址:https://XXX.com/drakkan/sftpgo整体使用下来也名副其实,符合我的需求。但是因为官网上安装引导文档比较含糊,就记录一下自己折腾的过程。以下的操作过程均基于一个全新安装的 Ubuntu 18.04.2 LTS (Bionic Beaver) 操作系统,按道理 Debian 也适用。因为我自己只想配置一个独立的 SFTP 服务器,利用 SFTPGo 来协助管理账号,所以没有使用 MySQL / PostreSQL 之类的数据库,而选用了 SQLi...阅读全文

博文 2019-12-27 21:33:09 云翔怡长花想容

制作自己的docker镜像并发布到k8s

本篇主要讲述如何将自己的程序生成docker镜像,并且发布到k8s环境的简单步骤。在这之前你需要了解基本的docker使用,基本的k8s概念和命令。 Step1 编写代码为了方便使用之前一篇的代码,将KV值put到ETC集群。具体代码如下: package main import ( "fmt" "io/ioutil" "log" "time" "crypto/tls" "crypto/x509" "go.etcd.io/etcd/clientv3" "golang.org/x/net/context" ) var ( dialTimeout = 5 * time.Second requestTimeout = 4 * time.Second endpoints = []string{"ht...阅读全文

博文 2019-10-10 18:02:40 麦穗儿

利用 jcli 管理 Jenkins

文地址:https://jenkins.io/zh/blog/2019/08/30/jenkins-cli/ 作为一名开发者,我通常像下面那样使用 Jenkins: 查找与我当前工作相关的任务 触发任务构建 检查构建日志 有时候,我可能需要检查插件更新中心,安装新的插件,或者更新一个已有的插件。再或者,希望从本地上传一个插件。所有的这些情况,其实都没有必要 访问 UI 界面甚至是浏览器。我更倾向于使用命令行(CLI)来完成大部分的工作。例如:我可以使用 kubectl 来管理我的 Kubernets 集群, 创建或者修改 Kubernetes 资源。因此,我开始思考,“为什么不用命令行来管理 Jenkins 呢”? 什么要创造新的轮子? 首先,我几乎都已经忘记了那个早已存在的命令行,用 Ja...阅读全文

博文 2019-09-27 08:02:40 aside section ._1OhGeD

手把手教大家写一个刷简书阅读量的小程序

本人是很不喜欢作弊的,但是我不作弊,不代表其他人不作弊,为了公平起见,我们也要作弊,除非官方把作弊渠道给封锁了。这里我教你们用golang(谷歌开发的计算机程序语言)来开发这个小程序,我尽量写的让小白都可以看懂。 第一步,安装go语言开发环境 1.在这里下载go语言安装包,https://golang.google.cn/dl/,对应自己的系统下载。双击安装,安装之后就可以编译解析go语言了,给这里的文科生们多说一句,我们的电脑运行的是01010的二进制代码,安装了这个之后,就可以把我们的写的代码执行,如下的伪代码。 if n > 2 { dosomething } 2.下载计算机语言编辑器,https://www.sublimetext.com/,对应自己的系统下载安装。 第二步,编码 下...阅读全文

博文 2019-10-03 00:32:44 aside section ._1OhGeD

PHP编程中的并发

PHP编程中的并发 周末去北京面了两个公司,认识了几位技术牛人,面试中聊了很多,感觉收获颇丰。认识到了自己的不足之处,也坚定了自己对计算机学习的信心。本文是对其中一道面试题的总结。 面试中有一个问题没有很好的回答出来,题目为:并发3个http请求,只要其中一个请求有结果,就返回,并中断其他两个。 当时考虑的内容有些偏离题目原意, 一直在考虑如何中断http请求,大概是在 client->recv() 之前去判断结果是否已经产生,所以回答的是用 socket 去发送一个 http 请求,把 socket 加入 libevent 循环监听,在callback中判断是否已经得到结果,如果已经得到结果,就直接 return。 后来自己越说越觉得不对,既然已经recv到结果,就不能算是中断http请求...阅读全文

博文 2017-02-09 08:09:44 一堆好人卡

使用React Native创建以太坊钱包,实现转账等功能

之前想用React Native开发一版以太坊钱包app,但在生成账户那块遇见了问题,没有crypto等nodejs包,react native是运行在JavaScriptCore环境里面,是没有buffer, crypto 跟 stream这些库的,所以为了解决,就跟同事开发了基于golang的web3go,然后使用gomoble工具编译成ios需要的framework以及android需要的jar aar,完美解决问题 演示 dapp-demo-1.png dapp-demo-2.png 安装web3go git clone https://github.com/bcl-chain/web3.go.git 使用gomobile编译成framework,jar,aar // generat...阅读全文

博文 2019-07-26 15:42:37 EAST东_059c

系统链码

1. 名词解释及源码路径 Hyperledger Fabric v1.4提供了各种称为系统链码的特殊链码,用于执行某些特权任务。本文的目标是提供Fabric中各种系统链代码的实现,功能和用法的指示。与用户链码一样,系统链码也实现了Init和Invoke函数。Fabric有五个系统链码,如下所示: Configuration System Chaincode (CSCC) -- core/scc/cscc/configure.go Life Cycle System Chaincode (LSCC) -- core/scc/lscc/lscc.go Query System Chaincode (QSCC) -- core/scc/qscc/query.go Endorser System C...阅读全文

博文 2019-06-05 11:32:53 天地一小儒

​​区块链持久化--golang实现区块链系列之三

本篇使用boltdb的简易数据库将区块链的数据持久化到一个文件中。boltdb是kv形式保存的。 下面代码: package main import ( "github.com/boltdb/bolt" "os" ) const dbfile = "blockchain.db" const blockBucket = "block_demo" const lastHashKey = "genesis" type BlockChian struct { //blocks []*Block db *bolt.DB lastHash []byte } func NewBlockChain() *BlockChian { //return &Blo ckChian{[]*Block{NewGenes...阅读全文

博文 2018-10-12 00:34:41 若与

Libra转账好简单

准备运行文档中的命令,需要满足以下条件:你运行的是Linux(基于Red Hat或Debian)或macOS系统。你可以稳定地连接到互联网。你的系统已经安装 git。如果使用 Mac,请确定已经安装好 Homebrew。如果使用 Linux,请确定已经安装好 yum 或者 apt-get。提交交易的步骤在这个例子中,我们将下载必要的Libra组件并在两个用户之间执行一个交易:A(Alice)和B(Bob)。执行以下步骤将交易提交到Libra testnet上的验证者节点:克隆并编译 Libra Core.编译客户端并连接到测试网络.创建测试账户.充Libra币到测试账户中.发起转账.克隆并编译 Libra Core在终端里找一个合适的目录下执行:git clone https://githu...阅读全文

博文 2019-06-22 12:51:32 LeverLibis

干货|0基础,开启COS公链本地化运行

最为领先的内容公链,COS公链的代码全部开源免费。开源地址:https://github.com/coschain/ “没有基础知识,不用担心!零基础,开启COS公链本地化运行。” 本文从源代码编译开始,带领大家一步步搭建一个可运行的环境,直到可以正常运行COS公链并出块。 考虑到可能出现的编译错误,我们也提供了一个能正常运行本地链的 docker。不过,对于那些想要深入理解本地链的编译和运行原理的开发者来说,我们强烈建议从源码开始编译哦~ 第一步:获取源代码 从 github 上获取 master 分支的代码 git clone git@github.com:coschain/contentos-go.git 第二步: 编译 Go 的版本 内容公链 Contentos 的主要开发语言是 g...阅读全文

博文 2019-10-10 18:32:42 内容链Contentos

Question about string and []string. Might require append()? Help me simplify this.

<p>I have a segment of code that is dealing with strings and string slices. I have an external go file that is used entirely for config purposes, and am attempting to pull in the elements of a string slice from it to the main source file. The code I want to simplify is:</p> <pre><code> args := []string{&#34;-dmS&#34...阅读全文

Angular2+ 使用 Protocol Buffers

just do it 最近在写一个web IM 项目,虽然本人主打golang后端,但是部分前端还是需要自己解决。因为这是一个IM系统,所以不考虑使用json来传送数据,改用protocol buffers ,优点见官网。由于前端不太熟练,经常被Angular坑,包括这次,花费我一个下午时间来解决Angular2+ 使用 Protocol Buffers的问题。 灵感来源:Using protocol buffers with Node.js + Swagger + Angular 进入正题,本机环境 Linux ubuntu 1. 定义一个简单的 .proto 文件 具体的protocol buffers 的.proto文件定义见官网,下面展现一个简单的小例子: // Protocol.p...阅读全文

博文 2019-01-24 02:34:40 旅行时序

2019-06-03

# buy & sell system build manual## 一. 软件版本要求| 软件 | 版本 || ----- | :-----: || golang | 1.9.7 || docker-ce | 18.09.3 || docker-compose | 1.14.0 || fabric(image) | 1.1.0 |## 二. 操作系统和硬件配置要求| 操作系统 | 版本 | CPU(c) | 内存(G) | 磁盘(G) | 编号 | 用途 || ------- | :--: | :--: | :--: | :--: | :---: | :--: || CentOS | 7+ | >=2 | >=8 | >=100 | A | 安装组织节点(Org) || CentOS | ...阅读全文

博文 2020-05-08 23:32:44 欧耶90

兄弟连区块链入门教程以太坊源码分析cmd包分析

兄弟连区块链教程以太坊源码分析cmd包分析。 cmd包概述 geth 主要Ethereum CLI客户端。它是Ethereum网络(eth主网,测试网络或私有网)的入口点,使用此命令可以使节点作为full node(默认),或者archive node(保留所有历史状态)或light node(检索数据实时)运行。 其他进程可以通过暴露在HTTP,WebSocket和/或IPC传输之上的JSON RPC端点作为通向Ethereum网络的网关使用。 geth --help或者CLI Wiki page查看更多信息。 abigen 一个源代码生成器,它将Ethereum智能合约定义(代码) 转换 为易于使用的,编译时类型安全的Go package。 如果合约字节码也available的话,它可以...阅读全文

博文 2018-10-18 14:34:43 兄弟连区块链培训

Windows 下 tusd 编译安装全流程

文链接:https://github.com/Dream4ever... 项目简介 tus/tusd,这是项目官网,该项目是一个后端服务,用于接收从前端页面所上传的文件。搭配前端 JS 库 transloadit/uppy,即可实现完整的文件上传功能。 tusd 这个库的一大亮点,是可以实现文件的断点续传。 项目克隆 需已在 Windows 上安装 Go 进入 $GOPATH\src 目录,$GOPATH 通常位于 C:\Users\XXX\go。如果没有的话,就新建对应目录,路径里的 XXX 是当前用户名。 执行下面的命令,将项目克隆至当前目录中。 git clone github.com/tus/tusd 第一个坑:注意上面的克隆地址和 GitHub 官网给出的不一样,如果用的是官网给出...阅读全文

博文 2019-07-30 16:32:45 samsara0511

Go语言打造以太坊智能合约测试框架(level1)

传送门: 柏链项目学院 Go语言打造以太坊智能合约测试框架 前言 这是什么? 这是一个基于go语言编写的,自动化测试以太坊智能合约的开发框架,使用此框架,可以自动化的部署合约,自动测试合约内的功能函数。你也发现了,本框架模拟的是truffle框架,但是完全是基于go语言编写,而且以太坊的客户端需要使用私链或者测试链。 可以学到什么? go语言访问以太坊 使用solc编译器编译合约 自动化部署合约 abi文件解读 go语言与智能合约调用 golang模版编程 golang处理toml配置文件 shell脚本awk语言的运用 go与命令行调用 本课程是指导开发者如何通过go语言来实现这样一个测试框架。 动起手来 环境准备 go语言开发环境 以太坊客户端-geth solc编译器 go语言环境安装...阅读全文

博文 2019-03-21 14:34:46 柏链项目学院P叔

golang server epoll client 使用连接池 15万+ qps

epoll 加连接池 前几天看了epoll 使用,今天写了一个测试脚本,测试一下epoll加连接池的性能 50万个请求,连接池使用2000连接,发送 "test" 服务端接受后 转成大写返回,处理完所有的请求耗时3.731506996s,性能很强大(注意:需要在linux环境下测试) 为什么要使用连接池? 拿数据库举例,频繁的建立、关闭连接,会极大的降低mysql的性能,因为建立连接,释放连接引起的大量性能开销。 连接池技术带来的优势: 1、资源重用 由于tcp得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。 2、更快的系统响应速度 连接池在初始化后运行中。对于业务请求处理而言,...阅读全文

博文 2019-07-11 23:32:39 单龙攀

Hyperledger Fabric命令详解之 up

sudo ./byfn.sh up a@ubuntu:~/hyfa/fabric-samples/first-network$ sudo ./byfn.sh up > 创建网络,peer,orderer,cli Starting with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' secondsContinue? [Y/n] y 执行中。。。 proceeding ... 2018-07-10 01:55:17.481 UTC [main] main -> INFO 001 Exiting..... LOCAL_VERSION=1.1.0 DOCKER_IMAGE_VERSION=1.1....阅读全文

博文 2018-08-06 11:34:51 kakushao

Go http.Flusher 在实际项目中的应用

最近在使用 Docker Go SDK 做开发的时候,参考了官方的示例代码: package main import ( "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "golang.org/x/net/context" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) } reader, err := cli.ImagePul...阅读全文

博文 2019-11-22 01:03:11 xjtuhit

Golang公链开发004-通过命令行操作区块链

目录 flag基本使用 os.Args基本使用 flag与os.Args组合使用 通过命令行添加/查询区块 测试代码与测试结果 一. flag基本使用 通常我们在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。在 go 标准库中提供了一个包:flag,方便进行命令行解析。 1.导入flag包 import ( "flag" ) 2.使用示例 //定义一个字符串flag,flag名为printchain,默认值为:hello BTC world,参数说明: 输出所有的区块信息 flagString := flag.String("printchain", "hello BTC world", "输出所有的区块...阅读全文

博文 2018-07-25 15:35:56 暗黑魔君

go-redis-parser(高效的Redis解析工具,支持查找大 key)

go-redis-parser,项目地址:https://github.com/8090Lamber... 一个简单、安全的Redis 解析器。了解到目前存在的 parser,大部分都是单进程解析完成后,再统一输出,拉长了整体的执行时间,决定自己重写一个。它的特点是:离线即用,不必连接线上服务,并且利用 golang 语言本身的协程,实现边解析边写文件内容,非常高效。简单介绍下这个工具: Feature 支持Redis从2.8版本至5.0版本的,除了 module外的所有数据类型。包括: String Hash List Set SortedSed Stream(敲黑板,重点重点重点,重要的事情说三遍) Other 导出 server 所有 key/values,而且会找出现有各类型的 bi...阅读全文

博文 2019-09-30 18:32:46 lambert

Redis中查找大key

首发于 https://segmentfault.com/a/11... redis-cli提供的方法 注意以下所有试验基于redis 5.0.3版本 redis-cli 提供一个bigkeys参数,可以扫描redis中的大key --bigkeys Sample Redis keys looking for big keys. 执行之后输出如下所示: bogon:sqlite didi$ redis-cli --bigkeys # Scanning the entire keyspace to find biggest keys as well as # average sizes per key type. You can use -i 0.1 to sleep 0.1 sec # pe...阅读全文

博文 2019-02-18 17:34:45 erpeng_ustb

Fabric-v-1.4基础环境搭建+票据应用示例

Fabric已经发布到1.4LTS版本,各个版本对比如下:来自:超级账本解读 https://hyperledger.mochain.info/Fabric v1.1版本主要的新特性包括: Fabric CA的CRL 区块以及交易的事件推送 增加了所有组建间的双向TLS通信 Node.js Chaincode链码的支持 Chaincode API新增了creator identity 性能相对v1.0有了明显的提升Fabric v1.2开始有了比较大的feature开始出现: Private Data Collections:这个特性不得不说在隐私保护上解决了不少项目的痛点,也减少了许多项目为了隐私保护在业务层做的复杂设计。 Service Discovery:服务发现这个特性,使得客户端拥...阅读全文

博文 2019-04-03 15:34:45 磨链社区

Heperledger fabric v1.3.0阿里云环境配置及运行e2e案例

如何使用阿里云服务器部署fabric, 其实大部分流程和物理机相同,但还是有不同的地方的 1. 创建云服务器 申请云服务器的时候,我们是在阿里云申请的按需, 系统选择的是ubuntu 16.04,注意最低配置是4G的, 否则在运行e2e案例的时候kafka启动不起来. image.png 2.安装go 可以先下载好go的包, 然后拷贝到云服务器上 浏览器下载go包: https://golang.org/doc/install?download=go1.11.4.linux-amd64.tar.gz 拷贝: $ scp go1.11.3.linux-amd64.tar.gz root@47.105.93.246:/root 进入到云服务器: $ ssh root@47.105.93.246 ...阅读全文

博文 2019-01-10 22:34:42 小李飞刀无情剑

Go 网络编程(二) (TCP)

svr: package main import ( "fmt" "net" "os" "time" ) func checkError(err error) { if err != nil { fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error()) os.Exit(1) } } func main() { service := ":10086" tcpAddr, err := net.ResolveTCPAddr("tcp4", service) checkError(err) fmt.Fprintf(os.Stdout, "tcpaddr : %s\n", tcpAddr.String()) listen, err := net.Li...阅读全文

博文 2017-05-15 10:00:19 痞子汤

Where to put global config files for a Go program? (bonus points for not using a makefile)

<p>Hi, I&#39;m building a small <a href="https://github.com/cdiener/govitae">Go program</a> to generate resumes that requires some template files in order to generate its output. Right now I use a somewhat ugly way which extracts the GOPATH from the environment and looks for the templates in the project directory. Howe...阅读全文

用 Go 构建一个区块链 -- Part 6: 交易(2)

翻译的系列文章我已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了。如果想直接运行代码,也可以 clone GitHub 上的教程仓库,进入 src 目录执行 make 即可。 引言 在这个系列文章的一开始,我们就提到了,区块链是一个分布式数据库。不过在之前的文章中,我们选择性地跳过了“分布式”这个部分,而是将注意力都放到了“数据库”部分。到目前为止,我们几乎已经实现了一个区块链数据库的所有元素。今天,我们将会分析之前跳过的一些机制。而在下一篇文章中,我们将会开始讨论区块链的分布式特性。 之前的系列文章: 基本原型 工作量证明 持久化和命令行接口 交易(1) 地址 本文的代码实现变化很大,请点击 这里 查看所有的代...阅读全文

博文 2017-11-12 13:04:46 liuchengxu

go语言圣经,关于第八章并发最后一节的chat.go有些点不太懂,求教

```go // Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan. // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ // See page 254. // Chat is a server that lets clients chat with each other. package main import ( "bufio" "fmt" "log" "net" ) type client chan<- string // an outgoing message chan...阅读全文

Go:关于 Cobra 的想法

!["Golang之旅"插图,来自 Go Gopher 的 Renee French 创作](https://raw.githubusercontent.com/studygolang/gctt-images2/master/go-thoughts-about-cobra/A%20Journey%20With%20Go.png) Cobra 是 Golang 生态系统中最着名的项目之一。它简单,高效,并得到 Go 社区的大力支持。让我们来深入探索一下。 ## 设计 Cobra 中的 `Command` 是一个具有名称,使用描述和运行逻辑函数的结构体: ```go cmd := &cobra.Command{ Run: runGreet, Use: `greet`, Short: "Greet...阅读全文

博文 2019-09-16 08:24:46 TomatoAres

fabric peer 调试环境搭建

fabric peer 本地运行 配置单 peer, 单 order, 单cli 测试环境,方便调试 peer 1. 修改配置 1.1 修改配置文件 configtx.yaml 删除所有 关于 Org2 的选项 crypto-config.ymal PeerOrgs.Template.Count 改为 1 1.2 修改 docker-compose-cli.yml 删除 peer1.org1.example.com, peer1.org2.example.com, peer0.org2.example.com 等容器(以及依赖) 只留 orderer.example.com, cli 两个容器的配置 cli 的配置添加extra_host, 到时候将域名指向宿主机 extra_hosts: ...阅读全文

博文 2019-10-16 15:33:05 aside section ._1OhGeD

可移植像素图格式 PPM,灰度图格式 PGM,位图格式 PBM 的介绍 -- 视频和图像编程基础之一

可移植像素图格式 PPM,灰度图格式 PGM,位图格式 PBM 的介绍 简介 可移植像素图格式(PPM),可移植灰度图格式(PGM)和可移植位图格式(PBM)是便于跨平台的图像格式。有时候也被统称为 PNM 格式 文件格式描述 这三种格式其实是一样的描述方法,只不过 PBM 是单色,PGM 是灰度图,PPM 使用 RGB 颜色。每个文件的开头两个字节(ASCII 码)作为文件描述符,指出具体格式和编码形式。 Type Magic number Extension Colors ASCII Binary Portable BitMap P1 P4 .pbm 0–1 (white & black) Portable GrayMap P2 P5 .pgm 0–255 (gray scale) Po...阅读全文

博文 2018-09-18 17:34:41 harriszh