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

区块链技术的本质是分布式数据库

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人们在谈论或使用“区块链”这个词时,有时候是指技术的商业应用,有时是指技术实现本身。 在《区块链的业务价值是通过数据共享降低信任成本》一文中,我论述了应用区块链技术的商业价值,有在多方参与的场景下更适合采用区块链技术,也提到了区块链的技术特征:(1)多副本、(2)可靠记录、(3)不可篡改、(4)多方透明几个特性,上述特性总结下来,采用区块链技术后,应用技术架构如下图所示,可以看出,区块链技术对应用而言,就是一个分布式数据库(估计看到我这个结论,很多砖就要拍过来了,请大家拍砖的同时继续看),我...阅读全文

博文 2019-09-27 17:02:45 链客

介绍几个分片技术的采纳者

撰稿人: 卡酷少 kakushao 在区块链所面临的诸多问题中,区块交易的处理速度,和区块链之间的互通性都极大程度的限制了区块链的应用空间。要实现更快的交易确认速度,拓宽区块链向外连接的桥梁,测链和分片都将是实现其作为价值网络体系的关键方案。 本文将依托结合现有区块链,来介绍和对比几种测链跨链方案。 Ethereum Sharding 根据V神的设想,以太坊的分片技术,就是在网络分区的基础上,并行地架构一条或多条分片链,并将交易在所属分片链上,也就是主链外进行确认,并在固定间隔时间将分片区块头与主链同步。这样可以有效地分散主链请求的压力。 在此我们就不在做过多解释,本公众号之前有一篇关于以太坊分片技术的介绍,详情请点击跳转链接。 以太坊的分片方案解析 阿希链 -- “测链、多链与跨链技术” ...阅读全文

博文 2018-12-19 18:34:45 kakushao

使用BSN一天学会区块链开发-golang篇

作者:时跃堂,曹国波《使用BSN 一天学会区块链开发》系列文章可以帮助具有一定开发经验的开发者,在不需要学习区块链开发语言的情况下,在区块链服务网络(BSN)上完成区块链应用的开发。本文主要介绍用户如何通过链下业务系统使用golang语言与链上数据进行交互而进行的相关操作流程说明,但在说明链下业务系统与链上进行数据交互之前,首先对用户如何在区块链服务门户注册、应用发布服务、应用服务参与以及应用管理进行一一说明。注册和登录打开区块链服务网络网址:www.bsnbase.com, 点击登录页面中的【内测申请】按钮进入内测申请页: 根据页面中的提示填写内测申请信息并提交内测申请,内测申请用户分为个人用户和企业用户两种,申请人应根据自己的用户类型任选一种进行申请, 内测申请提交后需等待系统审核,待系...阅读全文

博文 2019-12-10 17:33:13 区块链服务网络BSN

如何编写一个企业级区块链Hyperledger Fabric开源框架

Convector(a.k.a Convector Smart Contracts)是为企业区块链框架构建的JavaScript开发框架。它增强了开发体验,同时帮助开发人员创建更强大,更安全的智能合约系统。它通过链代码和后端一直到前端,允许开发人员以库的形式重用相同的代码库。它基于模型/控制器模式,支持Hyperledger Fabric,并沿着Fabric精心设计的模式本地运行。 这篇博客文章介绍了该项目的历史,并重点介绍了沿途开发的挑战和解决方案。 当我们开始研究Tellus时,一切都开始了,Tellus是一个无代码交易设计师,用于在Hyperledger Fabric区块链上运行。那时我们有一堆Golang智能合约。 我们对开发者体验(DX)的第一印象并不是那么好。有两种方法:init...阅读全文

博文 2019-04-25 20:34:40 tualala

golang[38]-区块链- 生成比特币地址

生成比特币地址123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293package mainimport ( "crypto/sha256" "golang.org/x/crypto/ripemd160" "fmt" "math/big" "encoding/hex")//base58编码var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUV...阅读全文

博文 2018-12-13 00:35:46 jonson_jackson

杨晓峰:开发者其实不太需要关注 Java 收不收费

作为继 Java 8 之后的第一个 LTS 版本,Java 11 的发布引起了广泛关注,一方面是因为这个版本带来了一些重要的新特性,比如热议的 ZGC、HTTP/2 Client、Flight Recorder 等,在内存管理与 JVM 诊断/Profiling 等方面都有很强的能力突破。 另一方面是因为 Oracle 针对 Java 的一系列动作,比如宣布变更版本迭代周期、修改了商业支持方式,推出订阅模式、在两种不同的 License 下提供 JDK ****发布版……这持续性的变化让大家不断困惑,开发者不知道还能不能愉快地免费使用 Java,也不清楚接下来将会面对一些什么。 虽然 Oracle 官方有解释,并且也有 30 几位 Java 社区领袖与专家联名发表了一篇文章,详细分析了 Ja...阅读全文

博文 2019-03-21 00:34:40 开发之家

兄弟连区块链技术培训分享Go语言笔记-控制流

Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。 兄弟连Go语言+区块链培训课程共计22周学习时长,划分为9个学习阶段,即区块链主流语言-Go语言开发实战、区块链后端技术体系-Go语言高并发和服务器开发、Go开发区块链公链(区块链密码学、分布式编程、共识算法、基本概念,Golan公链开发)、eth与智能合约与DAPP开发、区块链分布式应用开发、区块链系统框架开发-超级账本与区块链3.0EOS、Go与区块链面试强化和高级企业级项目实战。控制语句条件语句条件语句不需要使用括号将条件包含起来(...阅读全文

博文 2018-08-28 14:35:30 兄弟连区块链培训

Go语言版HelloWorld

Go语言版HelloWorld 作者:雨水,日期:2016-04-01 CSDN博客: http://blog.csdn.net/gobitan 摘要:Go语言是Google2009年发布的一门全新语言,可以在不损失应用程序性能的情况下降低代码的复杂性。现在应用越来越广泛,很多游戏服务器已经在用go语言写,另外著名的docker容器也是go语言写的。 Go语言环境搭建 注:以ubuntu14.04为例,下面两种方式选一种即可 apt-get方式 dennis@ubuntu14:~$ sudo apt-get install gccgo-go 下载安装包方式 $ wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.g...阅读全文

博文 2016-04-02 01:00:04 gobitan

兄弟连区块链技术培训分享Go语言之defer的执行

互联网二十多年,已到十字路口。区块链出现前的互联网被称为古典互联网,而应用区块链技术的互联网才进入了后互联网时代。作为一项新兴的技术,区块链无疑正处于风口浪尖之上,其发展前景于普通大众而言也终将是利好。但目前由于区块链技术处于发展早期阶段,存在技术成熟度、落地应用场景有限等问题,兄弟连教育建议用户在选择专业Go语言+区块链培训机构前应进行仔细考量与辨别。golang中defer的执行大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用defer延迟关闭改资源,以免引起内存泄漏。例如:func do() (ok bool) { file,_ := os.Open("c:\a.txt") defer file.Cl...阅读全文

博文 2018-08-27 15:35:22 兄弟连区块链培训

[译] Go 1.7 中程序结构的解析

Go 1.7终于发布了,这个版本的一大特色是引入了一个新的基于SSA的编译器! SSA是一个描述低层次的操作集合的方法,比如隐射到系统底层操作的加载和存储操作。而SSA的特殊之处在于它有无限数量的寄存器。它本身不是特别有趣,除了它启用了一类很容易理解的优化传值这一点以外,因为这个特性使得编译速度更快,编译出的二进制文件更小。Go的新版本发布说明实现正在成熟,并且开始利用llvm(wider world of compiler technology)中的技术和实践。 新的基于SSA后端除了带来的性能提升,还提供了一系列的新工具允许开发者与SSA机制交互。这个工具输出了SSA过程语句,优化传值,和Go特有的汇编。当使用go工具来反汇编时,可以通过设置GOSSAFUNC环境变量为函数名,比如: $...阅读全文

博文 2016-08-23 04:00:07 shenjiaxu

兄弟连区块链培训Go语言基础并发模型使用 select

随着区块链引发的“颠覆风暴”,大量区块链培训机构应运而生。但在鱼龙混杂的培训圈内,要想找到真正符合标准的课程体系与专属区块链领域的专业授课讲师简直是沧海一粟。兄弟连教育指出,是时候做出行动改变并颠覆传统培训机构运营思维,并提醒大众用户,应理性选择区块链培训机构。作为一种现代语言,go语言实现了对并发的原生支持。select 语句的行为为了便于理解,我们首先给出一个代码片段:// https://talks.golang.org/2012/concurrency.slide#32select {case v1 := <-c1:fmt.Printf("received %v from c1\n", v1)case v2 := <-c2:fmt.Printf("received %v from c...阅读全文

博文 2018-08-17 15:36:32 兄弟连区块链培训

golang-区块链学习01

前言 区块链技术现在也是IT界的网红了,做点技术学习,不搞点跟区块链沾边的都好意思出去跟别人打招呼了。现在学习go语言刚好也蹭一波区块链的热度。 概要 golang知识点: 1、golang结构体使用 2、常用api使用,如bytes.Join、sha256.sum256、strconv.FormatInt等等,学习数组、切片的应用 区块链简化说明: 1、简化的区块对象Block包含四个成员,TimeStamp(时间戳)、PreBlockHash(上一个区块的哈希值)、Data(存储的数据内容)、Hash(自己区块的哈希值) 2、简化的区块链对象,包含一个区块想的数组Blocks 编码模拟区块链的构造创建 1、创建一个golang工程项目,目录结构如下: 目录结构 说明: bin目录存放编译...阅读全文

博文 2018-08-07 01:34:53 embedsky

使用BSN一天学会区块链开发-golang篇

作者: 时跃堂,曹国波 《使用BSN 一天学会区块链开发》系列文章可以帮助具有一定开发经验的开发者,在不需要学习区块链开发语言的情况下,在区块链服务网络(BSN)上完成区块链应用的开发。本文主要介绍用户如何通过链下业务系统使用golang语言与链上数据进行交互而进行的相关操作流程说明,但在说明链下业务系统与链上进行数据交互之前,首先对用户如何在区块链服务门户注册、应用发布服务、应用服务参与以及应用管理进行一一说明。注册和登录打开区块链服务网络网址:www.bsnbase.com, 点击登录页面中的【内测申请】按钮进入内测申请页:根据页面中的提示填写内测申请信息并提交内测申请,内测申请用户分为 个人用户和 企业用户两种,申请人应根据自己的用户类型任选一种进行申请, 内测申请提交后需等待系统审核...阅读全文

博文 2019-12-11 16:34:46 wx5da979d83cf0a

区块链开发中使用最流行的编程语言

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答! 区块链开发中使用最流行的编程语言我们目前正处于一个新兴行业——区块链的发展中。区块链技术在很大程度上还处于萌芽阶段,然而,这种颠覆性的技术已经成功地席卷了全球,并经历了近年来前所未有的繁荣。许多资金充足的项目现在都渴望构建自己的区块链网络,并在其上部署分散式的应用程序,因此缺乏有能力的区块链开发人员。随着数十亿美元的资金流入这一领域,区块链开发商的薪酬和需求不断上升,各项目竞相竞标,以吸引市场上剩下的最优秀区块链人才。这种淘金热可能会让一些开发人员想知道,他们是否具备深入这个行业所需的条件,特别是在这个新行业中最受欢迎的编程语言是什么中。几乎所有流行的编程语言都在区块链行业中使用,但是,由于某些区块链项目和应用...阅读全文

博文 2019-04-16 09:34:41 链客区块链技术问答社区

区块链概况:什么是区块链

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。 wikipedia 给出的定义为: A blockchain —originally, block chain —is a distributed database that maintains a continuously-growing list of data records hardened against tampering and revision. It consists of data structure blocks—which hold exclusively data in initial blockchain implement...阅读全文

博文 2019-09-26 16:33:14 链客

比特币核心概念及算法

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 bitcoin项目地址位于github仓库,当前各种“币”,基本都是从抄写bitcoin代码开始起步的。想要深度研究,从看源码开始不可避免。 P2P:电骡、迅雷、BT,在中国网络影视的发展让大家对P2P很熟悉,可能已经没有人记得比特币实际上是第一批P2P的实践者。所有交易记录在全网通过P2P的方式广播,每个人都保存一份完整的交易记录。所以也叫去中心化。 去中心化:bitcoin的去中心化是指的账本去中心化,每个人都拥有完整的交易记录。因此不会出现人为修改某一个账本就导致财产丢失的情况。 在这种模式下,想有效的修改以前的交易记录,就需要有工作量证明(POW)。理论上修改之前的区块必须做到51%的联网机器都认可才可能...阅读全文

博文 2019-09-18 16:32:42 链客

golang[45]-区块链-挖矿困难度

##比特币挖矿困难度比特币的挖矿困难度 = 目标hash / 创世hash比特币挖矿的计算12345678910111213141516/**计算挖矿difficulty */func CalculateDifficulty(strTargetHash string) string { strGeniusBlockHash := "00000000ffff0000000000000000000000000000000000000000000000000000" // 创世块编号 var biGeniusHash big.Int var biTargetHash big.Int biGeniusHash.SetString(strGeniusBlockHash, 16) biTargetHas...阅读全文

博文 2018-12-13 23:35:58 jonson_jackson

兄弟连Go语言+区块链培训以太坊源码分析(18)以太坊交易执行分析

兄弟连Go语言+区块链培训学院院长尹成资深区块链技术专家:毕业于清华大学,曾担任Google算法工程师,微软区块链领域全球最具价值专家,微软Tech.Ed大会金牌讲师。精通C/C++、Python、Go语言、Sicikit-Learn与TensorFlow。拥有15年编程经验与5年的教学经验,资深软件架构师,Intel软件技术专家,著名技术专家,具备多年的世界顶尖IT公司微软谷歌的工作经验。具备多年的软件编程经验与讲师授课经历,并在人机交互、教育、信息安全、广告、区块链系统开发诸多产品。具备深厚的项目管理经验以及研发经验,拥有两项人工智能发明专利,与开发电子货币部署到微软WindowsAzure的实战经验。教学讲解深入浅出,使学员能够做到学以致用。#以太坊交易执行分析在这里,将其整体串起来,...阅读全文

博文 2018-07-16 16:34:58 Delete_88c3

ChainDesk:基于 Fabric-SDK-Go 的Web项目实战之-环境搭建-项目引言

作者:ChainDesk韩小东目标1.明确项目的所需环境及实现目的2.构建基于 Fabric-SDK-Go 项目的所需环境任务实现10.1.1 引言此项目是一个使用 Hyperledger Fabric 平台作为网络环境底层,在业务层利用 fabric-sdk-go 相关API实现对链码的调用,并且使用GoWeb实现的一个Web应用示例程序。为了提高应用程序的可扩展性及可维护性,我们使用了基于 MVC 的架构模式,对项目进行分层设计。此应用示例是为了帮助读者能够快速掌握基于 fabric-sdk-go 的开发方式与技巧,所以我们的链码业务只是简单的实现了对分类账本状态的读写操作。10.1.1.1 说明在之前的内容中,我们详细的介绍了 Hyperledger Fabric 的系统架构及相关的组...阅读全文

博文 2019-01-15 16:34:42 ChainDesk

区块链Fabric环境搭建

前言 区块链这段时间大火,国家大力倡导发展区块链技术,作为IT从业者也需要紧跟潮流技术,了解这区块链背后的技术,以及怎么在区块链上面去开发。本文先介绍怎么去搭建一个Fabric环境。 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。 以上是区块链的官方定义,简单地说,区块链就是一种去中心化的分布式账本数据库。 区块链目前大致分为三种类型:公有链,私有链,联盟链。 区块链分类.png 就应用场景而言,联盟链算是应用场景比较多的一种区块链,联盟链中的佼佼者当属于 HyperLedger Fabric(超级账本)框架。下面就开始介绍下怎么去搭建一个Fabric环境。 本文的环境搭建是基于内网 CentOS Linux ...阅读全文

博文 2020-01-08 19:32:43 maoruiily

比特币区块的产生速度为何被设定为10分钟?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 众所周知,比特币的block产生速度被设定为了10分钟,按着官方wiki所说,每一个节点需要一些时间来确认block(<10mins),但为什么是10分钟呢?和网络延迟有关系吗?和hash方程的难度有关系吗? 本期《晓说区块链》,陈晓东先生(维基链首席技术官)将围绕这些话题,为大家解读。 网友:为什么比特币的block产生速度被设定为10分钟? 和网络延迟有关系么?按着官方wiki所说, 每个节点需要一些时间来确认block(<10mins),但是为什么要10分钟?和hash方程的难度有关么? 陈晓东:比特币选择10分钟来产生区块,也就是1/600 BPS (Blocks/Sec),这个是根据具体设计而制定的, ...阅读全文

博文 2019-09-18 16:32:41 链客

Golang 简介及配置

Go 是 2009 年发布的一种简单的并行开发,且跨平台的类 C 语言。由于其强大的并行性,很适合用于网络开发中。 来自其网站的介绍: Go 编程语言是一个使得程序员更加有效率的开源项目。 Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。 Go 编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。 windows 下 Go 环境配置 1)二进制文件配置 在官网 Go:https://golang.org/dl/ 下载 .zip 文件;目前稳定版为 go1.4.2 版,最新版本为 go1.5beta3。 解压缩到指点盘,如 C:\ 盘; 确...阅读全文

博文 2016-04-16 10:00:01 abc123man

golang[41]-区块链-默克尔树构建

大自然的启示Banyan树的启示:印度banyan树,最大的一颗可以长到1万平方米以上。其如此巨大的秘密就在于其枝干也会产生根,起到支撑,从而作为附属树干,继续生成分支。大自然给人太多启示……Merkle TreeMerkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树是一种数据结构,Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。Merkle树是使区块链发挥作用的基本组成部分。虽然理论上可以在没有Merkle树的情况下制作区块链,但只需创建直接包含每个事务的巨型块头,这样做会带来巨大的可扩展性挑战,可以说无可置疑地使用区块链的能力超出了所有范围,从长远来看,功能强大的电脑。...阅读全文

博文 2019-02-21 15:36:08 jonson_jackson

兄弟连区块链教程btcpool矿池源码分析nmcauxmaker模块解析

兄弟连区块链教程btcpool矿池源码分析nmcauxmaker模块解析,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。# btcpool矿池-nmcauxmaker模块解析## nmcauxmaker命令使用```shellnmcauxmaker -c nmcauxmaker.cfg -l log_nmcauxmaker#-c指定nmcauxmaker配置文件#-l指定日志目录```## nmcauxmaker.cfg配置文件```nmcauxmaker = {//rpc调用间隔(秒)rpcinterval = 10;//最近一次rpc调用时间写入文件fil...阅读全文

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

使用scratch构建最小化Go程序的docker image

由于Golang编译之后的文件是二进制,而scratch是docker最基础的空image,所以可以使用scratch来构建Go程序的docker image,使得最终构建的image最小化. 构建image过程分为两步: 在Go基础image中build. 将build好的二进制文件拷贝到scratch image中。 无需cgo的程序 对于无需cgo交叉编译的程序,使用scratch来作为最终运行的基础image非常合适。 首先,选择合适版本的golang基础image来build,这里没有必要选择更小的golang alpine,build过程中pull一般会有缓存所以pull速度差别不大,此外alpine中没有git和ssl,我们在构建image过程中都有可能用到,况且alpine也...阅读全文

招聘区块链的大小咖,欢迎来撩,坐标杭州

岗位职责 1.从事区块链产品的设计与研发工作,研究区块链的协议,运行机制和底层实现等; 2.搭建基于区块链的底层架构,实现公链、侧链、私链等多种逻辑,供应用层调度使用。 3.组织制定和实施技术决策和技术方案,组织架构设计与升级优化; 4.指导项目团队成员的日常开发工作,解决开发中的技术问题; 职位要求 1.熟悉比特币、以太坊、Fabric等的区块链相关机制与原理 2.理解各类主流的共识算法,包括不限于PoW,PoS,DPoS,PBFT,Paxos,Raft等 3.熟练掌握GoLang或C/C 开发语言 4.熟练掌握主流编程语言如Node.js, Python 5.熟悉linux操作系统,熟练掌握Docker容器技术的原理,部署和使用优化 6.熟悉TCP/IP...阅读全文

一文读懂公有链、私有链、联盟链

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链中公有链、私有链、联盟链都是区块链技术的一个细分,而技术仅仅是一种工具,怎么在不同的场景应用好不同的工具才是技术进步的关键。 公有链是什么? 公有链(publicblockchain)是指全世界任何人都可读取、发送交易且能获得有效确认的共识区块链。 公链的安全由工作量证明机制(pow)或权益证明机制(pos)等方式负责维护。他们是以经济奖励和加 密数字验证相结合的方式存在的,并遵循这一定的原则: 每个人从中可获得的经济奖励,与对共识过程作出的贡献成正比。 这些区块链通常被称为是“完全去中心化”的。 私有链是什么? 私有链是什么?(Token-less blockchain)。完全私有的区块链,是指其写入权限...阅读全文

博文 2019-09-19 15:02:57 链客

区块链的新概念“胖协议”

最近得到一个新概念,胖协议(Fat Protocols)。(胖协议可以理解为基础链)胖协议的概念来自于Fat Protocols,翻译版见文章末尾。从这个角度看过去,或许我们能更清楚互联网和区块链之间的区别。 图1-互联网生态 vs 区块链生态。我们经常用到的App,但凡跟网络沾边,就都离不开协议。说到协议,除了经常看到的http:/(HTTP协议),经常听到的IP地址(IP协议),其他我们知道的并不多。其实,网络上每个消息的发送与接收,都离不开协议。协议就像人们约定成俗的语言,没有协议,电脑之间无法通讯,网络也就不复存在。就好像你说A语,我说B语,大家谁也听不懂谁。 协议如此重要,可它却是价值最小的。但也不奇怪,因为那都是瘦协议,薄薄的一层,只约定了软件应该如何通讯。比如微信,发送消息使用...阅读全文

博文 2017-07-29 18:06:23 大硕简书

golang[46]-区块链-比特币真实挖矿过程实现

比特币真实挖矿过程实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149...阅读全文

博文 2018-12-13 23:35:59 jonson_jackson

致 Go 团队的一封公开信 —— 关于 try

> polaris 注:目前关于 try 的提案被否决了,具体见:https://studygolang.com/articles/22043 *“一旦语言变得足够复杂,在其中编程更像是从无限多的特性海洋中划出一个子集,其中大部分都是我们永远不会学到的。一旦语言像是有无限多的特性,为其添加更多特性的成本就不再明显。”* - *[Mark Miler](https://medium.com/@erights/the-tragedy-of-the-common-lisp-why-large-languages-explode-4e83096239b9)* 新的关于 `try` 的提议是对语言的补充,它引入了第二种错误处理机制。它是根据 [2018 年 Go 语言调查](https://blog....阅读全文

博文 2019-07-27 20:10:14 polaris

我是如何从Java转型为Go区块链工程师

我是如何从Java转型为Go区块链工程师 本文来自于一个比原链核心开发的陈述 前言 本人在加入比原链之前一直是做Java开发的,当初看到Go还有点犹豫,还怕过不了面试,结果是否掌握一门语言的考量确实没那么高,我顺利入职比原链,并在半个月内很快掌握Go并能够进行核心项目的开发。Java语言在较大的成熟项目上具有优势,但是在区块链开发中确实会有很多短处,比如在协程处理上,还有Java语言本身不够灵活等等,当然选择使用Go主要是因为其在区块链的流行程度。 区块链的流行语言 在区块链公链的开发圈子里,我们找到了一些流行的编程语言,有C++、Golang、Python和最近新起的Rust等等。 稍微对比较有名的项目采用的编程语言做个统计,如下图: 老一代的公链,比如Bitcoin,Litcoin一般使...阅读全文

博文 2020-01-02 12:32:39 比原链Bytom

go实现区块链[4]-遍历区块链与数据库持久化(下)

遍历区块链blockchain.go完整代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136package mainimport ( "github...阅读全文

博文 2018-12-20 00:35:13 jonson_jackson

go实现区块链[3]-遍历区块链与数据库持久化

新建blockchain.go1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889package mainimport ( "github.com/boltdb/bolt" "log" "fmt")const dbFile = "blockchain.db"const blockBucket = "blocks"type Blockchain struct{ tip []byte //最近的一个区块的hash值...阅读全文

博文 2018-12-20 00:35:13 jonson_jackson

兄弟连区块链技术培训Fabric 1.0源代码分析(33) Peer #peer channel命令及子命令实现

兄弟连区块链技术培训Fabric 1.0源代码分析(33) Peer #peer channel命令及子命令实现# Fabric 1.0源代码笔记 之 Peer #peer channel命令及子命令实现## 1、peer channel create子命令实现(创建通道)### 1.1、初始化Orderer客户端```goconst ( EndorserRequired EndorserRequirement = true EndorserNotRequired EndorserRequirement = false OrdererRequired OrdererRequirement = true OrdererNotRequired OrdererRequirement = false...阅读全文

博文 2018-07-23 15:34:59 Delete_88c3

​​区块链持久化--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 若与

区块链教程Fabric1.0源代码分析Ledger(账本)二

区块链教程之Fabric1.0源代码分析Ledger(账本)二。 Fabric 1.0源代码笔记 之 Ledger(账本) 补充PeerLedger接口嵌入的commonledger.Ledger接口定义如下: type Ledger interface { GetBlockchainInfo() (*common.BlockchainInfo, error) //获取blockchain基本信息 GetBlockByNumber(blockNumber uint64) (*common.Block, error) //按给定高度获取Block,给定math.MaxUint64将获取最新Block GetBlocksIterator(startBlockNumber uint64) (Res...阅读全文

博文 2018-10-31 17:34:41 兄弟连区块链

快速产生一个随机字符串

目录 [−] 最通用的方案字节替换rune使用余数掩码掩码加强版SourceBenchmark代码其它提升 如何高效的产生一个随机字符串?这看似是一个简单的问题,但是icza却通过例子,逐步优化,实现了一个更高效的随机字符串的算法。这是来自的来自stackoverflow上的一个问题:How to generate a random string of a fixed length in Go?, 大家群策群力,提出了很好的方案和反馈,尤其是icza的回答。 本文翻译和整理自这条问答。 问题是这样的: 我想要一个Go实现的固定长度的随机字符串(包括大小写字母,但是没有数字),哪种方式最快最简单? 优化基于Paul Hankin提出的一种方案(第一种方案),也就是最基本最容易理解的一种方案, ...阅读全文

博文 2018-09-02 22:19:23 smallnest

aliyun sms 非官方sdk

由于没有注意到ali官方发布到新版的golang sdk for SMS service 快实现完成完成了才发现, 索性把它实现完成,只是没有补充足够的测试. 相比官方sdk, 个人认为实现要比官方版简洁,调用优雅, 可扩展性强于官方版. description: golang version short message sender underline with ali sms service ## Installation Use `go get` to install SDK ```sh $ go get -u github.com/guoapeng/gosms ``` ## Quick Examples Before you begin, you need to sign up fo...阅读全文

博文 2019-09-22 18:56:58 guoapeng

区块链

区块链技术起源于化名为“中本聪”(SatoshiNakamoto)的学者在 2008 年发表的奠基性论文《比特币: 一种点对点电子现金系统》。狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本...阅读全文

博文 2020-04-21 10:05:02 wjl2020

区块链创业,如何高效的找到区块链人才?

本文是笔者《区块链创业宝典:发币募资之36计》系列文章之一。该系列文章是基于笔者亲身实践及因投资数字货币而观察和总结的一些经验,旨在为区块链创业者在数字货币融资过程中提供一些帮助。如果觉得有用,欢迎分享。由于很多内容涉及十分关键的私密内容,不会公开发表,如有需要,请加入我的星球,还请谅解。第35计 如何高效的找到区块链人才区块链领域人才的价格都很贵,是区块链创业的重要成本之一,且由于人才稀缺,招人还特别不容易。在一个项目刚完成融资时,是项目方用人最急切的时候。一般来说,项目方这时有了钱,且投资人也有压力让其尽快做出东西来,所以这时用人需求最强。很多项目方在招区块链领域的人时并不顺利。对于如何高效的找到区块链人才,笔者分成三个部分来回答。第一部分,如何快速提高招聘区块链人才的技巧。笔者有如下一...阅读全文

博文 2018-09-14 10:34:50 lingxuanpku

阿里七层流量入口 Tengine硬件加速探索之路

摘要: Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等大型活动的洪峰流量,保障活动平稳度过呢?本文作者:王发康,花名毅松,负责集团主站统一接入层Tengine的开发与维护。 Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等大型活动的洪峰流量,保障活动平稳度过呢? 本文作者:王发康,花名毅松,负责集团主站统一接入层Tengine的开发与维护。今天分享的主题是《阿里七层流量入口Tengine硬件加速探索之路》。 ...阅读全文

Komodo IDE 11 for Mac(IDE集成开发工具) v11.1.0(91033)激活版

实用的IDE集成开发工具哪里有?komodo ide 11 mac破解版可以在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Python、Perl、PHP 和 Ruby。代码智能引擎非常可靠。提供了所有语言的多线程和多进程服务,同时支持代码折叠、跟踪变化、智能语法检测以及快速书签等实用型功能。Komodo IDE 11 for Mac下载扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。https://www.macdown.com/mac/3219.html Komodo IDE 11 for Mac下载破解教程1、Komodo...阅读全文

博文 2019-07-04 17:32:53 mac小小

小猿圈浅谈为什么区块链用go语言开发

去年很火的区块链大家还记得吗?相信有部分人还是了解的,区块链是用go语言开发作为基础语言的,这到底是为什么呢?其实go语言是常常备用来做中心化系统,其他公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。下面小猿圈老师就为你讲解一下为什么区块链用go语言开发。 我们在决定做Karachain的时候,考量(benchmark)了C,C++,Java,甚至NodeJs,我们也试着用一些算法来作为考量标准。而现在,我表示我们正在用Go来实现此目标,并且感觉不错。现在建造一个区块链,恰如当时建造一个操作系统,我们在建造像区块链平台这样复杂的东西时,把注意力放在了那些核心问题上。经过差不多4周的开发与探索,我们才发现这门奇妙的语言是如何优雅地解答了我们的难题。Go语言很简单。并且每...阅读全文

博文 2019-07-03 15:03:43 小霞_2d43

兄弟连区块链教程以太源码分析accounts账户管理分析

兄弟连区块链入门教程以太源码分析accounts账户管理分析,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。##数据结构分析ETH的账户管理定义在accounts/manager.go中,其数据结构为:```// Manager is an overarching account manager that can communicate with various// backends for signing transactions.type Manager struct {backends map[reflect.Type][]Backend // Inde...阅读全文

博文 2018-10-17 19:34:39 兄弟连区块链培训

兄弟连区块链入门教程以太坊源码分析fast sync算法一

兄弟连区块链入门教程以太坊源码分析fast sync算法一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。this PR aggregates a lot of small modifications to core, trie, eth and other packages to collectively implement the eth/63 fast synchronization algorithm. In short, geth --fast.这个提交请求包含了对core,trie,eth和其他一些package的微小的修改,来共同实现eth/63...阅读全文

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

兄弟连区块链教程以太坊源码分析core-genesis创世区块源码分析

genesis 是创世区块的意思. 一个区块链就是从同一个创世区块开始,通过规则形成的.不同的网络有不同的创世区块, 主网络和测试网路的创世区块是不同的. 这个模块根据传入的genesis的初始值和database,来设置genesis的状态,如果不存在创世区块,那么在database里面创建它。 数据结构 // Genesis specifies the header fields, state of a genesis block. It also defines hard// fork switch-over blocks through the chain configuration.// Genesis指定header的字段,起始块的状态。 它还通过配置来定义硬叉切换块。type ...阅读全文

博文 2018-10-19 11:34:47 兄弟连区块链培训

Go语言学习笔记01--区块链概述与go语言变量相关

1.区块链与go 区块链是一个时代的产物。涉及到很多核心词汇,例如: Google,肯·汤姆逊,丹尼斯·李琦,图灵,B,C,中心化,去中心化,区块 Google:go语言是Google公司开发的一款,快速,高效,集群化的语言 汤姆逊:B语言+C语言的创始人之一,后去Google任职,为Go语言的创始人 丹尼斯·李琦:B语言+C语言的创始人之一 图灵:现代计算机之父,传奇巨匠 中心化:信息“公证”,但存在安全风险。因为“公证”概念本身就不存在 去中心化:信息“公开”,将所有的信息加密后发送给每一个信息体, 保证信息安全不会因单一信息体崩溃导致信息失效 区块(block):其实就是一个消息体,包括:信息体双方,信息内容,信息时间等。 区块链(blocks):以时间为轴,将所有的区块链接成一个链条...阅读全文

博文 2018-11-28 14:04:59 FrankAdd

轻松学习区块链3 - KV数据库的实现和区块链数据的持久化

MiniBC区块链V002 - KV数据库的实现和区块链数据的持久化 KV数据库 虽然我们已经创建了一条非常简单的区块链,但是当程序关闭后,内存中的区块数据却没有保存下来。这使得我们无法重复使用一个区块链,也无法与其他人分享,我们需要将它存储在硬盘中。我们接下来的任务就是实现一个极小的KV数据库,用来保存区块链数据。像比特币bitcoin使用了leveldb数据库,也有些golang开发的区块链采用了BoltDB,它们都属于单机KV数据库。 KV数据库,也就是key/value数据库,这种数据库没有关系型数据库系统RDMBS(比如MySQL,Oracle,PostgreSQL等)的表(table)、行(row)、列(column)等概念。数据均以键/值(key/value)的方式进行存储,类...阅读全文

Go语言实现一个区块链

本文将逐步拆解实现区块链功能的几个步骤 你需要掌握的基本知识: 什么是区块链 sha256哈希加密算法 go语言基础,包括goroutine和channel的理解 准备工作 go get github.com/davecgh/go-spew/spew spew是一个非常好的打印输出工具,可以在终端输出struct和slice数据 go get github.com/gorilla/mux mux可以用来处理http请求,帮助我们快速搭建一个go服务器 go get github.com/joho/godotenv 这个包可以读取.env文件中的变量 .env文件需要在项目的根目录下,一般在main.go所在位置 一款给力的IDE,比如Goland 几个概念 挖矿,挖矿其实就是通过解决一类数学...阅读全文

博文 2019-07-17 19:32:38 Sunday

2018.9.11 从0到1,你准备好了吗?

最近两天又接到一个任务,给一家区块链公司招聘go开发的人才。于是便在一些社区发了招聘帖子,没多久就有人加我微信,立即通过了。对方是一位前端开发工程师,对区块链感兴趣,想转做区块链后端开发,对于这样的转行跳槽者,我觉得她是有勇气的。她跟我了解了区块链行业的人才需求以及薪酬情况,我也一一解答向她了。她还问了我一个问题:你们招区块链培训机构出来的人么?我说:这个和培训机构没关系的,主要看你自己的技术功底的,不过我个人觉得区块链培训机构,目前应该都不是很成熟的,不太建议你去,大部分不太靠谱。她还和我说,听培训机构说有很多hr跟他们要人。我第一感觉就是她被这些机构忽悠了,区块链技术处于起步阶段,大家都还在摸索,并没有完全成熟的模式,他们这些机构哪能一下子掌握呢?这些都是要靠实践才行的,不是去短时间培训...阅读全文