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

看清区块链

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 虽然说比特币系统于2009年推出,但区块链技术自2015年才兴起,到今天也就两年多一点的时间。 比特币系统是把多种技术组合创新,实现了一个防止篡改、防止欺诈的多方记账机制,构建起一个平等、协作、信任的价值传输网络。而区块链技术从比特币系统中被挖掘出来,经过二次创新和发展,瞄准的是解决现实场景中的问题。 当前区块链构想的运行环境与现实世界之间还存在一个鸿沟。现实中很难找到像比特币一样封闭的体系,产生在网络中、流转在网络中、消失在网络中。它既不接收外部世界的输入,也不对外部世界产生输出。每10分钟产生一个区块,生成一定数量的新比特币,流转不定数量的旧比特币,就像一个数字货币游戏一样。现实中不管是跨境汇款,还是票据流转...阅读全文

博文 2019-09-12 17:32:45 链客

golang[35]-区块链-私钥公钥生成

1234567891011121314151617181920212223242526272829303132//生成私钥和公钥func newKeyPair() (ecdsa.PrivateKey,[]byte){ //生成椭圆曲线, secp256r1 曲线。 比特币当中的曲线是secp256k1 curve :=elliptic.P256() private,err :=ecdsa.GenerateKey(curve,rand.Reader) if err !=nil{ fmt.Println("error") } pubkey :=append(private.PublicKey.X.Bytes(),private.PublicKey.Y.Bytes()...) return *pr...阅读全文

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

GOLang + NodeJS 环境配置 /usr/local

安装路径均为/usr/local 一、Ubuntu 配置nodejs 环境 export NODE_HOME=/usr/local/node export NODE_PATH=$NODE_HOME/lib/node_modules export PATH=$PATH:$NODE_HOME/bin 注: npm安装出错,改用cnpn: npm install -g cnpm --registry=https://registry.npm.taobao.org 二、Linux配go环境 1、在home目录下新建工作目录work ,work下新建src 、pkg 、bin 三个目录 2、配置: # 1、配置go运行环境 export GOROOT=/usr/local/go export PATH...阅读全文

博文 2018-03-19 14:33:04 在水一方发盐人

Golang的分代GC(Garbage Collection)

前言 Go语言的垃圾回收(Garbage Collection,以下简称GC)机制是并发三色标记,是一种不移动的标记-清扫 GC算法。在2018年的一次演讲 中,官方公布了尝试使用分代GC的想法。截止目前(2019年4月份),分代GC扔处于试验的状态,没有具体的发布时间。 go官方代码库,目前共有10个commit,本文主要讲解Go分代GC的实现思路以及现有的一些问题,后面可能详细讲解一下代码。 标记-清扫 GC算法 标记-清扫GC算法首先会从一些固定的root节点开始,对于Go语言来说就是全局指针和 goroutine 栈上的指针,根据这些root节点进行递归标记。当标记完成后,所有被标记的对象就都是存活的,其余的对象即是可以清扫的。 file 分代GC算法 分代GC是基于这样一个假设:大...阅读全文

博文 2019-04-06 01:34:39 Leonard_Wang

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

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

博文 2018-12-14 00:35:43 jonson_jackson

如何选型企业级DLT平台?【分布账本技术】

企业分布账本技术(Distributed Ledger Technology)需要解决5个方面的挑战:数据隐私性、技术正当性、可伸缩性、最终一致性和互操作性。本文将对企业以太坊(Quorum)、Hyperledger Fabric和Corda就这些环节进行比较。 在这里插入图片描述 如果希望快速掌握区块链应用的开发,推荐汇智网的区块链应用开发系列教程, 内容涵盖比特币、以太坊、eos、超级账本fabric和tendermint等多种区块链,以及 java、go、c#、nodejs、python、php、dart等多种开发语言。 1、数据隐私性 应该说绝大多数机构都不会愿意与市场中的对手分享其竞争优势。如果竞争对手可以访问区块链上的企业私有数据,那么相信绝大多数企业都不会选择这种区块链技术。因...阅读全文

博文 2019-08-18 05:32:43 ezpod

Go语言与区块链——阶段性学习建议

2019年Go语言与区块链 链接: https://pan.baidu.com/s/1rtstZKws3t9L8bcFZmUd3Q 提取码: gx1r 阶段一:区块链主流语言:Go语言开发实战 本阶段需要掌握Linux和Windows双系统开发环境,建立面向对象思维,能对问题进行抽象归类。掌握基础的并发理论。 主要内容包括有:Go语言介绍及开发环境搭、基础类型、运算符、流程控制、函数、工程管理、复合类型、面向对象编程、异常处理、文本文件处理、案例:开发实战。 阶段二:区块链后端技术体系:Go语言高并发服务器开发 区块链知识体系,是后端编程的知识体系。以太坊,瑞波币,比特币目前主流的区块链成型项目多数都是选择Go语言和C++语言实现,所以搭建后端服务编程知识体系才是打好区块链开发的首选基石,对...阅读全文

博文 2019-05-23 21:35:09 自学号

[译] 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 06:00:02 shenjiaxu

以太坊开发(二十八)在Windows服务器上使用Geth同步以太坊主网区块

1.前言 使用Geth同步以太坊主网区块的文章已经很多了,这篇文章不会讲的太详细了。 我们将在Windows Server 2012 R2安装Geth,启动节点同步区块,并且使用JSON RPC方式查看节点和同步情况。 2. 安装Geth 2.1 安装Go 首先需要安装Go语言环境。下载地址:https://golang.org/dl/。 下载windows版本然后安装,我在D盘根目录下新建了一个文件夹go,然后指定安装在此文件夹中。系统会默认设置好环境变量。 检查是否成功安装: PS C:\Users\Administrator> go version go version go1.11 windows/amd64 2.2 安装Geth 下载地址:https://geth.ethereum...阅读全文

博文 2018-10-18 16:34:45 yuyangray

超级账本08--区块链应用开发

简介 数字货币曾是区块链技术的唯一应用场景 对智能合约的支持突破了场景限制, 丰富了区块链应用的适用范围, 可以支持多行业、大规模的商业应用 区块链应用 区块链应用: 一般由若干部署在区块链网络中的智能合约, 以及调用这些智能合约的应用程序组成 用户专注于与业务本身相关的应用程序 智能合约则封装了与区块链账本直接交互的相关过程, 被应用程序调用 智能合约开发 智能合约本质上是为了对上层业务逻辑进行支持且直接与账本结构打交道, 处于核心位置. 所以设计得当可以简化上层应用开发的过程 应用程序开发 应用程序通过调用智能合约提供的方法接口实现业务逻辑, 可以使用JavaScript、Python、Go、Java等主流语言进行开发 链码的原理 链码延伸自智能合约的概念, 支持使用主流高级编程语言实现...阅读全文

博文 2018-07-23 14:34:51 陆地潜水鱼

golang[47]-区块链-比特币交易

比特币的交易第一笔交易比较特殊,他是coinbase交易,矿工的收益。金额每4年减少一半,从2009年一开始一个区块奖励50BTC、后来减少为了25个BTC、一直到18年 12.5BTC。总共有2100万BTC。交易和我们的银行的转账非常不同,比特币中没有记录账户的信息、而是交易的信息。go实现交易 demo123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101...阅读全文

博文 2018-12-14 23:36:00 jonson_jackson

北京招聘GO/区块链开发工程师

(熟悉Go语言或者研究区块链方向择其一亦可) 岗位描述: 1.负责基于区块链技术联盟链、私有链的架构设计与核心代码开发 2.持续跟进区块链技术在数字货币、智能合约等方向的发展,及相关技术的研究 3.积极探索区块链技术在金融方向新的落地场景,为公司业务发展提供持续支撑 岗位要求: 1.掌握Bitcoin,Ethereum,HyperLedger Fabric等主流区块链技术相关机制与原理; 2.熟练掌握Go,Java,C++等主流区块链系统开发语言至少一种,Go优先,参与过区块链开发社区并贡献源码者优先; 3.了解一些主流NoSQL数据库的原理与使用,尤其是KV型数据库,包括不限于LevelDB,RocksDB等; 4.熟悉Linux操作系统,熟练掌握Docker容器技术的原...阅读全文

你想深度拥抱区块链吗,都是什么开发语言呢?

区块链技术虽然出来也有段时间了,但是都是从一些基本的概念去了解,去学习,用原有的开发语言去理解区块链的相应的技术点,并没有真正的使用区块链开发语言去开发。去深入了解区块链的知识及原理呢?那我们怎么选择或者学习区块链的开发语言呢?因为各种语言有自己的擅长的地方,所以我们肯定要选择一种比较适合的语言。 我们来了解一下当前区块链中使用的语言有那些呢?都有什么实际的运用。C++开发语言(比特币、公正通、瑞波ripple),GO开发语言(以太坊、IBM),Solidity开发语言(以太坊)。 首先我们来看C++,C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时...阅读全文

博文 2019-05-18 11:34:38 搬砖人1314

[深圳] 优畅-ULINE 招聘区块链开发工程师 15-25K

### 技能要求: 1.负责基于区块链(Blockchain)、以太坊(Ethereum)、EOS 的互联网金融产品的设计和研发,含后端协议、基础架构、系统服务及其相关客户端; 2.开发、实现和改进加密协议,设计安全协议和架构; 3.负责研究区块链、以太坊以及EOS的底层协议,运行机制和底层实现等; 4.负责对研发项目进行完善的安全模块设计与开发。 ### 岗位要求: 1.计算机相关专业学历; 2.熟练掌握一门或多门GoLang,Ruby,Python,C++ 等主流区块链系统开发语言,参与各个区块链开发社区并贡献源码者优先; 3.了解一些主流NoSQL数据库的原理与使用,尤其是KV型数据库,包括不限于LevelDB,RocksDB等; 4.熟悉linux操作系统; ...阅读全文

兄弟连区块链教程区块链信息安全3椭圆曲线加解密及签名算法的技术原理一

区块链教程区块链信息安全3椭圆曲线加解密及签名算法的技术原理一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 # 椭圆曲线加解密及签名算法的技术原理及其Go语言实现 椭圆曲线加密算法,即:Elliptic Curve Cryptography,简称ECC,是基于椭圆曲线数学理论实现的一种非对称加密算法。 相比RSA,ECC优势是可以使用更短的密钥,来实现与RSA相当或更高的安全。 据研究,160位ECC加密安全性相当于1024位RSA加密,210位ECC加密安全性相当于2048位RSA加密。 椭圆曲线在密码学中的使用,是1985年由Neal Koblitz和...阅读全文

博文 2018-11-09 13:51:31 ITXDL

Golang——json数据处理

今天让官方文档虐了几条街。 需要能够对JSON数据进行编码,将内部的中文字符串转成Unicode编码。编码这种东西接触也不少了,随便搜一下就能解决。果断去搜了一下。本文所有编码 rs := []rune("golang中文unicode编码") j := "" html := "" for _, r := range rs { rint := int(r) if rint < 128 { j += string(r) html += string(r) } else { j += "\\u" + strconv.FormatInt(int64(rint), 16) // json html += "&#" + strconv.Itoa(int(r)) + ";" // 网页 } } fmt....阅读全文

兄弟连Go语言培训清华尹成带你实战GO案例(53)Go数值

兄弟连Go语言培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌名师团队精心打造,历时半年时间共同研发而出。 兄弟连Go语言培训清华尹成带你实战GO案例(53)Go数值 Go数值 Go有很多种数据类型,包括字符串类型,整型,浮点型,布尔型等等,这里有几个基础的例子。 packagemain import"fmt" funcmain(){ //字符串可以使用"+"连接 fmt.Println("go"+"lang") //整型和浮点型 fmt.Println("1+1=",1+1) fmt.Println("7.0/3.0=",7.0/3.0) //布尔型的几种操作符 fmt.P...阅读全文

博文 2018-07-31 11:34:49 兄弟连区块链培训

完成比完美更重要?仅知道这句话可不够

导读 都说完成比完美更重要! 软件开发模式经过多年的演化,从传统的瀑布开发模型升级到了敏捷开发模型。 而到了互联网时代,迭代再次加快,产品直接是在互联网上生长。 然而,做产品总是要先出一个版本,再不断迭代,那从0到1的第一步应该怎么走?后续的迭代又应该如何演进呢? 重点笔记 迭代就是小步快跑,把最内核的部分先放出来,不断优化、小范围试错。 版本规划能力是产品经理的重要能力。 判断一个产品经理是否厉害,很重要的一条就是判断他设计的产品第一个版本有多简单、直接、切中要点,能不能直指人心。 产品复杂是因为产品经理不自信,只能从附加功能中找心理安慰。 产品设计应该找到内核,小步快迭代,而不是憋大招。 迭代中,重要的是次序,前一个动作是后一个动作的预动作。 迭代的价值: 对外部,可以快速得到用户的反馈...阅读全文

博文 2018-09-21 23:34:39 海之方

区块链兼容以太坊智能合约

链客,专为开发者而生,有问必答!此文章来自[区块链技术社区](https://www.liankexing.com),未经允许拒绝转载。 引言随着区块链技术以及应用的普及,越来越多的区块链出现在大众视野中。由于区块链技术的开源特性,任何公司和个人都可以方便快捷的获取最新的区块链核心技术,通过对这些技术的选择和整合,最后开发和搭建满足特定业务需求的区块链产品。以太坊作为目前区块链2.0的杰出代表被作为诸多区块链项目开发的基础,甚至有人统计100个区块链项目中有94个是基于以太坊,而以太坊社区更是有25万的开发者在活跃着,因此以太坊成为大家争相研究和进行区块链开发的典型。EVM作为以太坊中重要的组件,其运行着以太坊上至关重要的智能合约,由于以太坊庞大的社区和经济环境,作为一个新出现的区块链兼容以...阅读全文

博文 2019-08-19 20:02:48 链客区块链技术问答社区

Blockchain 区块链基于go-ethereum实现的dpos共识算法

## Dpos Go Ethereum Dpos Go Ethereum is a project base on [go-ethereum](https://github.com/ethereum/go-ethereum). It's a product when I have learning go-ethereum. Up to now, I write a Dpos consensus algorithm. I use header extra to wrap Dpos related information. Because nlp cannot encode complex type, therefore I chose json struct. Although it'...阅读全文

开源项目 2021-02-04 22:27:54 mingjingc

用go来做嵌入式开发-交叉编译和自动版本号

# 用go来做嵌入式开发-交叉编译和自动版本号 * 嵌入式硬件平台一般是采用arm或者mips等非x86架构,因此需要在编译程序的时候指定目标机器平台 * 有时候需要在go程序中自动生成版本号和编译日期信息,这个在c和c++中很方便实现有__TIME__和__DATE__宏可以实现,那么在go中如何来实现自动插入编译时间和日期啦? ## 多平台教程编译脚本 * arm平台 ``` @echo off set GOARCH=arm set GOOS=linux set CGO_ENABLED=0 set dd=%date:~8,2% set mm=%date:~5,2% set yy=%date:~0,4% set Tss=%TIME:~6,2% set Tmm=%TIME:~3,2% set...阅读全文

博文 2019-06-30 10:47:13 byteman

图解golang内存分配

前言 我们知道所有程序运行都需要使用内存,而内存的管理和分配又是非常重要的,它决定了你的程序能不能在有限的资源内跑的更快。可以设想一下,如果你自己来设计的一个内存分配的规则,会遇到什么问题呢?如果你有了一大块内存你要怎么去合理的分配和使用呢?今天我们通过几张图来看看golang中的内存分配是怎样的。 前置知识:对golang的GPM模型有所了解,对GC有一定的了解,有助于你理解下面的内容。 想一想 我们首先来想一下,如果我们自己来分配内存的时候可能会遇到什么问题。 我想要512G,你能给吗? 操作系统的内存不是你想要多少就给你多少的。比如我跟操作系统说我要512G内存,你赶紧给我,不给我我就掐死你,如果你是操作系统,是不是立马就想把我给结束了? 能随便分割吗? 如果我拿到一块内存,挺大的,你...阅读全文

博文 2019-11-09 16:32:51 更多精彩内容Go内存分配机制总结adrian920Go内存分配机制-TCMalloc链人成长chainerup(十一)golang 内存分析杰克慢图解Golang的内存分配RyuGou图解Go语言内存分配ddu_sw

为什么区块链编写都用GO语言?CX将是一次革新!

载:https://mp.weixin.qq.com/s/wG2uQJxzP5uZLHM8r9Ac_w所有链圈的朋友都该有的常识:Go语言现被用来做去中心化系统(decentralised system)。 当然,其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。长期项目中的易维护代码Go语言很简单。并且每次你中途休息(cessation)之后回到代码中时,它没有那么多诡异的错误(quirk)来浪费你的时间。再加上,它所需要的学习量很少,因为它的语法比较大众,开发者的学习曲线很平缓,这样的特性本身就很吸引开发者。这也导致(facilitate)出现Bug的几率很低。所以整个开发过程显得如此简单快速。一般来讲,代码量越多,项目越难维护。而一个区块链系统需要的代码...阅读全文

博文 2018-11-08 00:34:41 一一个个

轻松学习区块链5 - 工作量证明POW

## MiniBC区块链V004 - 工作量证明POW # #### 共识算法 在整个区块链工作过程中,会有很多的机器加入其中,每一台机器成为一个节点,它们互相协作,来共同维护区块链的安全和数据的一致。其中,生成新的区块就是一项很重要的工作。因为新的区块里面包含很多新产生的重要数据,比如交易信息等。为了让这项工作有序和可控,通常会在所有节点上通过竞争选出一个节点,由这个胜出的节点负责打包新产生的数据,并通知和传播给其它节点。 通过竞争选择优胜者的机制称为共识算法,目前主流加密货币引入了很多共识算法,比如pow, pos, dpos, pbft等等。象比特币就是采用了pow算法,也就是工作量证明。 #### 工作量证明 工作量证明 (Proof Of Work,简称POW),就是用来确认你做过...阅读全文

博文 2019-05-20 13:03:46 wangshizebin

拜占庭容错系统简介

拜占庭容错系统简介 原始的拜占庭容错系统由于需要展示理论上的可行性而缺乏实用性。另外,算法的复杂度也是随节点的增加而呈指数级增加。实用拜占庭容错系统(Practical Byzantine Fault Tolerance, PBFT)降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别,使拜占庭协议在分布式系统中应用成为可能。 什么是实用拜占庭容错系统 实用拜占庭容错系统是一类“状态机”拜占庭系统(这里的状态机可以理解为“系统状态”,以区块链记账为例,系统每新增一个区块,账本就更新到一个新的状态。前面讲过,拜占庭容错系统是一个强一致性协议,每次记账后系统都会达成新的状态。),要求系统所有节点共同维护一个状态,所有节点采取的行动一致。 实用拜占庭容错系统需要运行三类基本协议: 一致性协议:...阅读全文

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

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

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

博文 2019-05-19 23:12:23 wangshizebin

DockOne技术分享(三十):Docker 1.9新特性解读

【编者的话】11月4日,Docker 1.9 正式发布。其中Docker Swarm 和多跨主机网络正式可在生产环境使用,Docker Engine 提供了全新的存储卷管理系统,Docker Compose 对更多环境提供了更好的支持。所有的这些都为大规模部署生产环境下的分布式应用打下了坚实的基础。本文详细分析了Docker 1.9的种种新特性。 @Container大会,专为一线开发者和运维工程师设计的顶级容器技术会议。 1. 新特性简介十一月四号,Docker对1.9进行了发布,新的发行版中添加了很多有趣的特性,下面我就对新的发行版中的新特性做一个简单的介绍。 跨主机网络:新的网络设备可以支持用户创建基于多个主机的虚拟网络,使容器间可以跨网络通信。持久化存储:Docker 1.9 包含一...阅读全文

博文 2017-06-25 15:01:20 xlgao

记一次golang 问题的处理

使用简化版本的http post请求会带来一个很莫名其妙的error :EOF 这里有一些解法: 将简化版 的http post改为,client.Do(request),并将request.Close设置为true。 client := &http.Client{} req, err := http.NewRequest(method, url, httpBody) // NOTE this !! req.Close = true req.Header.Set("Content-Type", "application/json") req.SetBasicAuth("user", "pass") resp, err := client.Do(req) if err != nil { // ...阅读全文

博文 2016-02-18 21:00:02 xyzhaopeng

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

翻译的系列文章我已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了。如果想直接运行代码,也可以 clone GitHub 上的教程仓库,进入 src 目录执行 make 即可。 引言 交易(transaction)是比特币的核心所在,而区块链的唯一目的,也正是为了能够安全可靠地存储交易。在区块链中,交易一旦被创建,就没有任何人能够再去修改或是删除它。在今天的文章中,我们将会开始实现交易这个部分。不过,由于交易是很大的话题,我会把它分为两部分来讲:在今天这个部分,我们会实现交易的通用机制。在第二部分,我们会继续讨论它的一些细节。 此外,由于代码实现变化很大,就不在文章中罗列所有代码了,这里 可以看到所有的改动。 没有...阅读全文

博文 2017-11-13 11:04:40 liuchengxu

兄弟连Go语言培训区块链共识算法(1)分布式一致性算法Raft

兄弟连Go语言培训培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌名师团队精心打造,历时半年时间共同研发而出。 # 分布式一致性算法Raft Paxos自1990年提出以后,相当长时间内几乎已成为分布式一致性算法的代名词。 但因其难以理解和实现,目前知名实现仅有Chubby、Zookeeper、libpaxos几种,其中Zookeeper使用的ZAB对Paxos做了大量改进。 为此,2013年斯坦福的Diego Ongaro、John Ousterhout,提出了新的更易理解和实现的一致性算法,即Raft。 Raft和Paxos均只要保证n/2+1节点正常,即可服务。相比Pa...阅读全文

博文 2018-07-31 08:40:55 XDLGo

年薪30-100W急聘“GO语言工程师、区块链开发工程师、区块链架构师、区域链首席技术官”

有兴趣的技术大牛,可以加本人微信:13826118650,此岗位均属紧急职位,只要您有实力,薪资一定能超过您的期望值。欢迎随时来聊。 工作地点:广州琶州(办公环境优美、交通便利)、中午午餐 区块链平台架构师 岗位职能: 1.负责对区块链产品解决方案架构进行设计,并参与区块链技术的前瞻性技术预研; 2.负责研究Hyperledger fabric的加密技术、共识算法和底层实现; 3.参与各个区块链开发社区并贡献源码者优先;参与公司区块链底层核心模块和架构的开发; 4.参与区块链技术在行业应用中的衔接与落地。 任职要求: 1.本科及以上学历,计算机、软件等相关专业,5年以上产品架构或研发工作经验; 2.对区块链产品有深入了解,精通至少一种Hyperledger、以太坊、比...阅读全文

扣丁学堂区块链2.0技术以太坊私有链搭建和geth客户端使用

在2018年相信大多数都了解过区块链开发技术,它分为三个架构:1.0、2.0、3.0,今天我们讲的是区块链2.0技术以太坊私有链搭建和geth客户端使用的详细介绍。 ​ geth客户端的安装 使用安装包安装 sudoapt-getinstallsoftware-properties-common sudoadd-apt-repository-yppa:ethereum/ethereum sudoapt-getupdate sudoapt-getinstallethereum 使用源码编译,搭建golang的环境 1、先把go语言安装包下载下来wget 2.执行sudotar-C/usr/local/-xzfgo1.8.3.linux-amd64.tar.gz解压 3.vim~/.bashrc...阅读全文

博文 2018-07-18 14:34:58 扣丁学堂

emacs 中go的自动补全

之前一直使用的是 gocode (https://github.com/nsf/gocode ), 后来项目不维护了让用 https://github.com/mdempsky/gocode, 然后这个项目又不维护了,让用 https://github.com/stamblerre/gocode, 然后这个项目也不维护了,都一齐推荐使用 gopls. gopls 的介绍见 https://github.com/golang/tools/blob/master/gopls/README.md, 从地址中看出,这是一个 golang 官方tools 库中的项目。应该以后不会再换了。不过从介绍上看,还处在 alpha 阶段,尚不稳定。2020 年上半年会发布稳定版。 gopls 是官方的 Lang...阅读全文

博文 2020-05-16 21:33:08 圣斗士皮皮

【北京】高薪招聘--go语言开发--区块链底层方向

**本岗位薪酬高,有期权,诚邀各位GO语言高手、区块链爱好者加入** 985学校毕业,本科及以上学历,计算机编程等相关专业,年龄在25-36岁之间 岗位要求: 1.掌握Bitcoin,Ethereum,HyperLedger Fabric等主流区块链技术相关机制与原理; 2.熟练掌握Go,Java,C++等主流区块链系统开发语言至少一种,Go优先,参与过区块链开发社区并贡献源码者优先; 3.了解一些主流NoSQL数据库的原理与使用,尤其是KV型数据库,包括不限于LevelDB,RocksDB等; 4.熟悉Linux操作系统,熟练掌握Docker容器技术的原理,部署和使用优化; 5.熟悉数字加密算法,安全协议,分布式计算...阅读全文

猎头岗位--高薪诚聘GO语言--区块链底层开发方向

**本岗位薪酬高,有期权,诚邀各位GO语言高手、区块链爱好者加入** 岗位要求: 1.985学校毕业,本科及以上学历,计算机编程等相关专业,年龄在25-36岁之间; 2.掌握Bitcoin,Ethereum,HyperLedger Fabric等主流区块链技术相关机制与原理; 3.熟练掌握Go,Java,C++等主流区块链系统开发语言至少一种,Go优先,参与过区块链开发社区并贡献源码者优先; 4.了解一些主流NoSQL数据库的原理与使用,尤其是KV型数据库,包括不限于LevelDB,RocksDB等; 5.熟悉Linux操作系统,熟练掌握Docker容器技术的原理,部署和使用优化; 6.熟悉数字加密算法,安全协议,分布式计算。 **欢迎各位...阅读全文

智能合约笔记(2)区块链概念2

上一篇文章提到过账户分为两种,外部账户和合约账户.外部账户的名字应该是外部拥有账户,这里简称为外部账户.该账户和银行的账户几乎是同一个概念,由人控制,并且没有观念任何代码.而合约账户的存储是代码控制的. 合约账户存储代码,外部账户却没有,这是区别之一.外部账户请求交易,合约账户响应交易,这是区别之二.这是我目前了解到的区别.对我而言,外部账户有点像客户端,合约账户像服务端的感觉.但是不能混为一谈. 钥匙文件是定义外部账户用的,有一个公钥和私钥.账户的地址最后20个字节就是公钥,而私钥和地址都被编码在一个钥匙文件中.钥匙文件是json格式. 每个账户都由一块持久化存储区域,以键值对的形式存储.,无论是key还是value长度都是256.第一个存储区是内存,第二个存储区被称为栈. 既然账户能存储...阅读全文

博文 2018-12-06 02:34:42 周杰伦演唱会门票还有吗

Jetbrains 全系列产品2019.2.* 最新免费使用方法(golang,phpstorm)

## Jetbrains 系列产品2019.2.*最新破解激活方法 最近jetbrains产品激活码被封的厉害。某宝买来的码现在都已用不了,卖家已不再更新新激活码!说是卖家在 **服刑** ???我估计是卖家跑路了,不会再继续更新激活码了!无意中发现网上有人免费提供了一个本地注册的破解文件, 下载地址 https://sn9.us/file/259249-417852471 ![title](https://raw.githubusercontent.com/xsnote/note-images/master/note/2020/01/10/1578635707905-1578635708009.png) ### 下面以golang的IDE举例来学习如何本地文件注册ide #### 一、先从...阅读全文

博文 2020-01-15 11:47:19 duzhenxun

以太坊智能合约Demo

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力。智能合约其实是“执行合约条款的计算机交易协议”。区块链上的所有用户都可以看到基于区块链的智能合约。 维基上说智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约概念于1994年由Nick Szabo首次提出。智能合同的目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。 由于区块链上的所有...阅读全文

博文 2019-09-20 11:32:49 链客

区块链概念 That You Must Know 第四期(4)

第四期 简介go语言下挖矿难度的代码实现(4) 卡酷少Wechat:13260325501 之前的都讲完了,因为代码太多导致文章比较长。所以新增了一片。在这最后的最后,我们将把挖矿的过程最终展示在大家面前。建议大家也将代码在goland里实际跑一跑,会更有感觉。 挖矿难度的代码实现 话不多说,直接给代码实现。 /* 代码逻辑: 第一步:导库 第二步:声明并将各项值初始化,共5个数据:blockId(区块id),preHash,timeStamp(区块诞生时间),data,nounce(不明白为什么需要这些数据的同学可以找回第四期(2)篇看一下) 第三步:声明并创建一个哈希对象,shaObj 第四步:迭代调用函数isValidHashDifficulty来判断哈希值有效与否。迭代中将nounc...阅读全文

博文 2018-05-11 00:34:36 kakushao

区块链矿池的分配模式

### 作者介绍 JouyPub 技术经理 某互联网公司 ### 产生背景   当下各种以挖矿来获得收益的币种,随着时间的推移,挖矿的难度也越来越大,如果仍然靠单机去挖矿,几乎已经不可能了,所以就有矿池。例如按照当前的算力(20EH/s),一个20TH/s的矿机,挖到一个区块的时间为19年,也就是说如果单机挖矿需要19年才能获得奖励,这其中还不包括机器损耗、难度增大等因素,所以只有大家加入到一个矿池,共享自己的算力,爆块后,根据不同的分配模式,奖励再分配给个人。这种挖矿模式可以让个人的收益更加稳定,对于矿池而言,也会收取一些交易手续费。 顺便我们来算下现在挖矿多少天能回本。以蚂蚁矿机为例,每台的算力大概为20TH/s,功率1700W,成本取5000元,全网算力取20EH/s,当前爆块奖励为1...阅读全文

博文 2018-09-22 00:19:26 chongdongshequ

用 Go 构建一个区块链 -- Part 1: 基本原型

引言 区块链是 21 世纪最具革命性的技术之一,它仍然处于不断成长的阶段,而且还有很多潜力尚未显现出来。 本质上,区块链只是一个分布式数据库而已。 不过,使它独一无二的是它是一个公开的数据库,而不是一个私人数据库,也就是说,每个使用它的人都有一个完整或部分的副本。 只有经过其他数据库管理员的同意,才能向数据库中添加新的记录。 此外,正是区块链,才使得加密货币和智能合约成为现实。 在本系列文章中,我们将基于一个简单的区块链实现,构建简化版的加密货币。 区块 让我们从 “区块链” 中的 “区块” 谈起。在区块链中,存储有效信息的是区块。比如,比特币的区块存储了比特币交易,这也是所有加密货币的本质。除此以外,区块还包含了一些技术信息,比如版本,当前时间戳和前一个区块的哈希。 在本文中,我们并不会实...阅读全文

博文 2017-09-23 14:34:52 simple_the_best

Golang区块链开发001-初始化区块链

一. 代码结构Block.go :定义区块结构与方法BlockChain.go :定义区块链结构与方法help.go :将常用代码块进行封装,形成帮助库main.go:测试代码二.定义区块结构与方法package BLC import ( "time" "strconv" "bytes" "crypto/sha256" ) //定义区块 type Block struct { //1.区块高度,也就是区块的编号,第几个区块 Height int64 //2.上一个区块的Hash值 PreBlockHash []byte //3.交易数据(最终都属于transaction 事务) Data []byte //4.创建时间的时间戳 TimeStamp int64 //5.当前区块的Hash值 H...阅读全文

博文 2018-07-25 14:35:58 暗黑魔君

轻松学习区块链2 - 简单区块链的实现

## MiniBC区块链V001 - 简单区块链的实现 # #### 区块 我们从“区块链”的“区块”部分开始。区块是区块链中最基本的数据结构,在区块链中,区块存储了有价值信息。例如,比特币区块存储了交易数据,除此之外,区块中还包含其它信息:版本号,当前时间和前一个块的哈希值等。我们把bitcoin的区块定义稍作简化,作为MiniBC的区块定义: type Block struct { Version int32 //协议版本号 HashPrevBlock []byte //上一个区块的hash值,长度为32个字节 Time int32 //时间戳,从1970.01.01 00:00:00到当前时间的秒数 Bits int32 //工作量证明(POW)的难度 Nonce int32 //要找...阅读全文

博文 2019-05-19 23:11:07 wangshizebin

兄弟连区块链培训分享Go语言-写并发注意事项

“区块链是一门集合密码学、共识算法、智能合约、超级账本等多门技术的复杂性综合学科。”尹正表示,区块链培训机构的师资质量及其对区块链行业的认知水平参差不齐,普通消费者也无从考究。 Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。写go语言并发需要注意的几点:1. golang 1.2版本 goroutine的runtime.GOMAXPROCS 如果没有被定义,默认是1,从1.5之后改为默认是runtime.CpuNum(),go底层其实是并发GOMAXP...阅读全文

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

以太坊本地开发环境搭建

本文所搭建的环境是在 Mac 上的开发环境,其他操作系统上与此非常相似,依然有参考价值。 作为一枚区块链开发工程师,本地的开发环境是必不可少的。我们首先看看需要哪些工具: go-ethereum solc Ethereum Wallet 这些工具的安装在官方文档上都有非常详细的讲解,这边就不多赘述了。 目录结构 下文中的文件均已该目录为当前路径。 先新建好如下初始目录, . ├── data └── genesis.json genesis.json:初始化私有链的配置文件。 data:存放区块链数据的目录。 配置文件 以太坊支持自定义创世区块,要运行私有链那么就必须定义自己的创世区块。创世区块的信息就写在 genesis.json 中,内容如下: { "config": { "chainI...阅读全文

博文 2018-05-09 22:34:36 Stephen

兄弟连区块链技术培训分享Go语言之处理Json数组

互联网二十多年,已到十字路口。区块链出现前的互联网被称为古典互联网,而应用区块链技术的互联网才进入了后互联网时代。作为一项新兴的技术,区块链无疑正处于风口浪尖之上,其发展前景于普通大众而言也终将是利好。但目前由于区块链技术处于发展早期阶段,存在技术成熟度、落地应用场景有限等问题,兄弟连教育建议用户在选择专业Go语言+区块链培训机构前应进行仔细考量与辨别。今天遇到个接口需要处理一个json的map类型的数组,开始想法是用simple—json里的Array读取数组,然后遍历数组取出每个map,然后读取对应的值,在进行后续操作,貌似很简单的工作,却遇到了一个陷阱。Json格式类似下边:{"code":0,"request_id": xxxx,"code_msg":"","body":[{ "de...阅读全文

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

区块链技术

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 第一章:区块链基本知识 1.区块链概念 顾名思义,“区块链”是一个链表,这个链表由所有人共同维护和认可。 1.1.什么是区块链 区块链(Block chain)是一种分布式共享数据库(数据分布式储存和记录),利用去中心化和去信任方式集体维护一本数据薄的可靠性的技术方案。 如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。 1.2.区块链的特点 区块结构有两个非常重要的特点: l每个区块的块头包含了前一区块的交易信息的压缩值,因此从创始块到当前区块形成了链条。 l每个区块主体上的交易记录是前一区块创建后、该区块创建前发生的所...阅读全文

博文 2019-09-12 18:02:37 链客

区块链应用于物联网:一种应用于物联网的,可扩展访问管理的体系结构

Title:区块链应用于物联网:一种应用于物联网的,可扩展访问管理的体系结构 Abstract:物联网正在从它的婴儿期走出去,进入完全的成熟期,并且它正在使自己成为未来互联网的一员。对于部署在全球数十亿的设备的管理能力,是其中一个技术挑战。虽然物联网中已经出现访问管理技术,但是这些技术都基于集中式框架,这种框架引进了一些新的全球管理设备的技术限制。在这篇论文中,我们提出了在物联网中对于仲裁角色(仲裁规则?)和权限的一个体系结构(新框架)。这个新体系结构是一个针对物联网的完全分布式的访问控制系统,它基于区块链技术。这个体系结构被一个概念实现的验证所支持(?)并且在现实的物联网场景中被评估。结果显示,区块链技术可以在特定的可扩展物联网场景中被用作访问管理技术。 Index Terms:访问控制,...阅读全文

博文 2019-02-08 18:47:28 1500250103

三马投资,上市公司,深圳南山区诚聘区块链研发工程师,go语言工程师各一名

区块链研发工程师 职位描述: 1、负责研究区块链协议、运行机制、底层实现、算法等; 2、负责基于区块链的产品的设计和研发; 3、负责跟踪互联网领域区块链技术的发展,并应用于实际研发产品中。 任职要求: 1、本科及以上学历,至少2年以上区块链相关开发经验优先 2、精通 Golang,C++任意一种开发语言; 3、熟悉区块链平台产品,如 Bitcoin,Ethereum,Hyperledger 等,深入理解区块链核心技术; 4、理解主流共识算法,包括不限于 PoW,PoS,DPoS,PBFT,Paxos,Raft 等; 5、熟悉数据结构和算法,对密码学,安全协议和加密算法有研究; 6、有分布式,点对点网络协议或应用开发经验优先; 7、对区块链技术有极大的兴...阅读全文