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

区块链矿池的分配模式

### 作者介绍 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

go tcp 编程

代码示例 服务端: package main import ( "fmt" "net" "strings" ) // 读取数据 func handleConnection(conn net.Conn) { for { buf := make([]byte, 1024) if _,err := conn.Read(buf);err == nil { result := strings.Replace(string(buf),"\n","",1) fmt.Println(result) }else{ fmt.Println(err) } } } func main() { /* Listen: 返回在一个本地网络地址laddr上监听的Listener。网络类型参数net必须是面向流的网络: "t...阅读全文

博文 2019-08-01 20:32:39 战神悟空

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、对区块链技术有极大的兴...阅读全文

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

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人们在谈论或使用“区块链”这个词时,有时候是指技术的商业应用,有时是指技术实现本身。 在《区块链的业务价值是通过数据共享降低信任成本》一文中,我论述了应用区块链技术的商业价值,有在多方参与的场景下更适合采用区块链技术,也提到了区块链的技术特征:(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

兄弟连区块链技术培训分享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语言之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语言基础并发模型使用 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[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 兄弟连区块链培训

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

岗位职责 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 链客

fmt.printf 为什么能输出整个缓冲数据?

> 我尝试使用 net 包的客户端接收服务端的数据。但是我发现 fmt.Printf 和 log.Printf 输出的完全不同。缓冲区我是故意设置为 2 的。我的假设传输的数据为: hello world 求大神指点!感激~ ``` buff := make([]byte, 2) for { count, err := this.conn.Read(buff) if err != nil { return } fmt.Printf("%s", buff[:count]) // hello world log.Printf("%s", buff[:count]) // he ll o wo rl d } ``` ...阅读全文

ARTS 第11周

ARTS 第11周分享 [TOC] Algorithm 发现自己的算法能力太差了,打算从最基础的数据结构学习算法,将自己的基础给打扎实, 实现一个单项循环队列 [思路] 一个队列包含有前节点,指向第一个元素;尾节点,指向最后一个元素;最大尺寸,记录能够存储的最大元素数量;以及一个数组用来存储实际的数据(在golang中更适合用slice实现) 初始头和尾指针都指向下标为0的元素 通过预留一个空位来区别空队列与满队列,否则将很难区分二者 空:rear = front 满:(rear+1+ maxSize - front)% maxSize == 0 [参考代码] type singleCircleArray struct { maxSize int front int rear int myA...阅读全文

博文 2019-06-17 00:32:39 陈卧虫

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

最近得到一个新概念,胖协议(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

我是如何从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 兄弟连区块链

区块链

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

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

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

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

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

小猿圈浅谈为什么区块链用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