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

[深圳] 优畅-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

兄弟连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

图解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

用 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 扣丁学堂

【北京】高薪招聘--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 周杰伦演唱会门票还有吗

以太坊智能合约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、对区块链技术有极大的兴...阅读全文

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

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

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

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