首页技术文章正文

回答小白的Go语言与区块链30问

更新时间:2018-08-16 来源:黑马程序员技术社区 浏览量:

1.什么是区块链?

区块链是一个放在非安全环境中的分布式数据库。而且区块链技术使得整个分布式的数据库永久不可篡改,所以存在区块链上的数据具有真实性、永久性、安全性。

如果互联网技术解决的是通讯问题,让每个人的距离更近!

区块链技术解决的是信任问题!让互联网的通信数据和网络的交流变得真实!


2.区块链目前的市场行情怎么样?

1534411522561_1.png

此图来自工信部发布的《中国区块链行业白皮书》,可以看到从13年到目前区块链的企业行情是显著上升的。


3.区块链开发工程师的薪资与未来前景怎么样?

2018将是区块链开发者的元年!区块链2018年第一季度数据,区块链从业者平均年薪达34.09万元,超过AI人工智能领域平均年薪,居薪酬排行榜首位

1534411540155_2.png

区块链岗位现状,平均月薪2.58万 有所提升


4.哪些城市有区块链岗位比较多?

1534411549608_3.png

截止18年上半年,去第三方数据统计,排名前十的区块链活跃城市:北京市、上海市、深圳市、杭州市、广州市、成都市、厦门市、重庆市、贵阳市。

区块链企业目前属于一线城市蓝海时期,预计未来2-3年与地方政府的扶植政策,二三线城市也会很快铺开区块链岗位与行业。


5.    哪里有好的区块链学习路线自学资源?

黑马程序员老师们精心整理的一套资源[视频-工具-书籍] (随时更新)

http://bbs.itheima.com/forum.php?mod=viewthread&tid=398217?tjlb


6.    区块链专业这么火,那么在大学里会不会学到?

中国首批知名高等院校已经在16年~18年陆续开始区块链相关专业,主要面向的是本科生和研究生。

1534411560999_4.png

而国外很多大学开设区块链相关专业更早,早在13年就开始开设了区块链学科。

1534411567218_5.png


7.    政府对区块链的态度是如何?

国家层面

2016 年 12 月

《国务院关于印发“十三五”国家信息化规划的通知》

中首次提及区块链并将其与量子通信、人工智能、虚拟现实、大数据认知分析、

无人驾驶交通工具等技术一起作为重点前沿技术。

2018 年 3 月

《关于加快推进工业转型升级建设现代化工业体系的指导意见》

提出积极 培育发展区块链等未来产业,打造世界级高端高新产业集群 。

2018 年 4 月

《河北雄安新区规划纲要》

强调重点发展信息技术产业,要求超前布局区块链、太赫兹、认知计算等技术研发及试验。

地方政府:

贵州:

2016 年 12 月

《贵阳市政府区块链发展和应用白皮书》

计划 5 年建成主权区块链应用示范区。

2017 年 2 月,

《贵州省数字经济发展规划(2017-2020 年)》

建设区块链数字资产交易平台,构建区块链应用标准体系等目标。

2017 年 6 月

贵阳市人民政府下发支持区块链发展和应用的试行政策措施,对区块链产业提供政策扶植。

广州:

2017 年 12 月

《广州市黄埔区广州开发区促进区块链产业发展办法》

政府扶植政策预计每年将增加 2 亿元左右的财政投入。

南京:

2017 年 2 月

《市政府办公厅关于印发“十三五”智慧南京发展规划的通知》

明确提出要使区块链等一批新技术形成突破并得以实际应用。

无锡:

2017 年 5 月

《区块链专业委员会暨物联网与区块链》

联合实验室成立。

2017 年 12 月

苏州高铁新城向社会开放首批 15 个区块链应用场景,并发布 9 条扶持政策, 吸引区块链企业和人才落户。

四川:

2017 年 11 月

《关于加快区块链产业培育及创新应用的意见》

提出到 2020 年,力争全市打造 2-5 个区块链产业基地,初步形成国内重要的区块链产业高地和创新应用 基地。

2018 年 4 月

成都市大数据协会区块链专业委员会成立

山东:

2017 年 6 月

《关于加快区块链产 业发展的意见(实行)》

力争到 2020 年,形成一套区块链可视化标准。

2017 年 12 月

青岛国际沙盒研究院在崂山区发布了

全球首个基于区块链的产业沙盒“泰山沙盒”。


8.    都有哪些区块链企业级项目已经落地,并且正在现实中使用?

区块链企业级落地产品有很多,下面介绍一些大企业领头在做的一些实体领域。

(一) 京东区块链防伪追溯平台

1534411586078_6.png

精准追溯到商品的存在性证明 特质。保证所有生产、物流、销售和售后信息都不可篡改。基于区块链平台完成交易,确认资产的权属和资产的真实性。线上线下零售的商品追溯与防伪, 保护品牌和消费者的权益。

(二)腾讯可信区块链TrustSQL

1534411591125_7.png
1534411596843_8.png

公益、正品追溯、租赁房源溯源、互助保险等,腾讯区块链+供应链金融解决方案

(三)安妮股份开发的版权区块链系统

微众银行联合广州仲裁委、杭州亦笔科技三方共同研发了基于区块链的仲裁链。

证据真实性、合法性、关联性 ,仲裁流程缩短到 7 天左右 。

(四)小米科技数据营销链

小米科技联手利欧数字打造,监听、出价、曝光、点击、后续行为日志等信息透明公正上链 。

(五) 应医药溯源用

上海三链信息科技有限公司开发了基于区块链技术的应医药溯源用,主要落 地在医药的溯源、追溯查询和医药溯源数据交易方面,

 

9. 区块链不是存在泡沫吗?什么是ICO,什么又是区块链的“币圈”和“链圈”?

首先,我们要清楚知道两件事,区块链相关领域分为两个圈子,“币圈”和“链圈”。

“币圈”本身和区块链技术无关系,是金融领域一种资本融资运作的方式,由于区块链系统有激励机制,使用某些区块链平台的用户会得到数字货币的奖励,从而资本运作就会用金融手段对数字货币的价值进行操作。“币圈”本身和区块链技术毫无关系。ICO则是公司通过发行这些数字货币而进行融资。

“链圈”则是以区块链技术为主的领域,主要是利用区块链的去中心化、共识、算法、加密、P2P通信等技术使得链上的数据不可篡改,同时增加了互联网上数据的真实性。解决了一些行业因为数据公信度导致的很多诟病!如:京东研发的 “京东区块链防伪溯源平台” 能够精准追溯到商品的存在性证明 特质。保证所有生产、物流、销售和售后信息都不可篡改。

基于区块链平台完成交易,确认资产的权属和资产的真实性。


10. 区块链上保存的数据,都是公开透明的?不可篡改的?那会不会暴露我们的个人隐私啊?岂不是这个世界以后将没有隐私?

首先确定的是,数据一旦存到区块链系统(人们通常简称数据“上链”),数据从技术逻辑上是不可能被修改的,任何人都没有权利和能力去修改。那么这个信息是否是泄露个人隐私呢。

答案是当然不会。区块链系统所要保存的东西也是有针对性的,区块链系统更像是我们的一个工具。我们希望将需要得到绝对公正的来保护我们用户权利的数据才会选择“上链”,比如:“电子合同”、“借款白条”、“版权”、“物流信息”等。这些数据如果从客观上都是不可篡改的,我们会更加信任互联网产品。当然我们没必要将我们的“隐私数据”上链啦,谁又会特意曝光自己的隐私呢?


11. 区块链和人工智能有啥关系,二者是竞争吗?

首先,区块链与人工智能没有一毛钱关系。而且二者不是竞争关系,相反二者却是相辅相成的。

人工智能是解放了生产力,而区块链是解决了生产关系。人工智能解决的是一个智能机器人专注于某项任务的能力,但是多个机器人在相互交换和共享数据也会出现机器人与机器人之间的不信任。而区块链的去中心化技术能够解决机器人与机器人之间的信任问题。可以让一群不相关的机器人团队相互合作。

目前真正的智能时代只是刚刚迈出第一只脚,就是人工智能。如果智能时代真正的站稳,还需要迈出第二只脚,那就是区块链。所以 智能时代=人工智能+区块链。

1534411611469_9.png

 

12. 学区块链研发岗位,都需要具备哪些技能?

1534411622360_10.jpg


13. Go语言是做什么的?

Go语言是一种简单、高效率的编程语言,主要做企业的服务器开发,区块链开发、网站开发、传统项目开发。(比如区块链数字货币,以太坊,LoL游戏服务器、王者荣耀游戏服务器、链家租房网、58同城、赶集网、阿里云、百度云,金融区块链系统等)

Go语言来自Google,是一个编程界的富二代,Google公司力挺Go语言。 

如今主流的以太坊,Fabric等区块链成熟开发框架也都是Go语言编写的。Go语言在区块链领域,深入能够开发区块链底层系统,浅出能够开发区块链上层应用开发。就像人工智能的主流语言是Python,而区块链的主流语言是Golang。
 

14. 什么是Golang、Go语言?

Golang(Go Language)是Go语言的英文名。他们是同一种语言的不同叫法,

Golang的中文发音(够浪) ^_^


15. Go语言与区块链 学完以后能具体从事哪方面工作?

Go语言与区块链学科可以从事区块链项目开发和企业服务器开发及游戏服务器开发。

(比如比特币,以太坊,LoL游戏服务器、王者荣耀游戏服务器、链家租房网、58同城、赶集网、阿里云、百度云,金融区块链系统等)。相关的职位有程序员、区块链软件工程师、项目经理、架构师和售前售后工程师、运维等相关工作等。 


16. Go语言的优势有哪些?

Go语言是目前市场薪资偏高的服务端系统开发语言。也是很多其他工程师所最青睐的语言。很多知名的互联网公司和大型公司后端的系统都在逐步向Go语言转型。

Go语言工程师普遍薪资高,市场人才稀缺,初级、中级、高级工程师目前市场都是紧缺状态,所以就业难度低,目前属于红利期。


1534411634813_11.png


17. 英语能力很差,是否影响学习Go语言?

Go语言的编程用到的常见英文关键字只有20多个,是所有语言关键字目前最少的一门语言。主要因为Go语言比较新,Go语言的创建者,考虑到了很多因为关键字带来的麻烦。

时间上编程语言所用的英文单词是可数的,通过一段周期的学习,每个人都会掌握常用的关键词。


18. Go语言与区块链涉及到的技术领域? 

Go语言与区块链 涉及到的领域有 区块链上层应用开发、区块链底层系统开发、高并发服务器、Web及微服务开发,分布式开发等。Go语言与区块链主打区块链底层系统,更加深入。

 

19. Go语言和Java都可以做web开发,他们有什么区别?

Java有常用的Web框架,如SpringMVC、struct2等,Go语言同样也有常用的Web框架,如Beego、Gin等。

Go语言和Java都可以作为web开发的佼佼者。Java的web开发更偏向于应用的广泛,而Go的Web开发更偏向于Web服务器的高性能。

所以一般中小型创业公司,喜欢用Java来搭建,对于大型互联网公司更喜欢用Go的高性能的Web框架来搭建,因为大型公司的服务器数量比较多,所以提高单个服务器的性能能够减少很多服务器的数量,从而节约金钱的成本。


20. 除了Go语言,学习区块链还需要从哪些知识进行储备?

(1)  编程语言:Golang

(2)  操作系统:Linux

(3)  开发领域:系统后端

如:[系统调用、脚本开发、文件操作、数据存储、网络编程(socket)、通信协议(TCP/IP、UDP、HTTP)、异步并发等]

(4)  安全领域:密码学

如:[Hash散列、对称加密-DES、3DES、AES、非对称加密-RSA、ECB、数字签名、证书-公钥、PKI、CA等]

(5)  区块链底层:区块链系统

如: [区块链构造、工作量证明、UTXO交易、持久化、地址与P2P网络]

(6)  区块链上层:智能合约DAPP

如:[以太坊、Solidity语言、以太坊开发框架Truffle和web3.0]

(7)  基础设施:Docker容器化集群

如:[Docker虚拟化-镜像容器、Kubernetes(k8s)-容器编排、管理、分布式理论、集群思想]

(8)  区块链框架

如:Hyperledger Fabric(超级账本联盟链)[ go sdk、 RESTful、 JS] 、EOS (C++ API)、Go Ethereum  (Go  、 Python ) 


21. 区块链技术每个模块的学习原因?

(1)Go编程体系(Go语言基础、Go与Linux服务器编程)

该阶段学习原因:

Go语言天生适合做并发服务器开发,学Go,不学服务器,Golang的知识体系会有一部分欠缺,在企业中如果找Golang开发工作没有竞争力.

该阶段解决问题:

编程基本功(生存底线)

(2)基于Go的Web服务器开发(前端开发、Web开发框架)

该阶段学习原因:

Web开发包括前端、数据库、Go的Web框架,如今的互联网时代,工程师掌握web已经是必备技能,Web方向有成熟的市场需求,掌握Web,在当今就业不会是问题。

该阶段解决问题:

掌握基本项目开发流程,掌握数据从前端到后端到存储整体工程思想搭建

(3)区块链基本知识:(密码学、区块链理论知识)

该阶段学习原因:

区块链编程基础、和信息安全密码学是进入区块链领域的必备技能。

该阶段解决问题:

区块链基本功(入行区块链)

(4)区块链系统开发(区块链公链开发、数字货币实现)

该阶段学习原因:

有技术底蕴的公司才会开这部分课程,企业在招区块链人才,了解此阶段开发者会加分。

该阶段解决问题:

区块链底层(竞争优势)

(5)区块链DAPP应用(以太坊智能合约、以太坊truffle框架与web3.jsDAPP开发、node.js全栈开发、IPFS去中心化分布式文件系统)

该阶段学习原因:

区块链应用开发课程、其中以太坊智能合约是必备技能,truffle框架、Web3.js 智能合约企业级框架,NodeJs和IPFS能让区块链应用体系更加丰富

该阶段解决问题:

区块链DAPP开发能力(创业公司需求大)

(6)区块链框架(Hyperledger Fabric联盟链)

该阶段学习原因:

Hyperledger Fabric联盟链 在中国传统公司居多,也是区块链目前开发最流行的区块链开发框架.

该阶段解决问题:

联盟链开发能力(中国传统公司需求大),如:政府/教育/医疗/国防等。

(7)大企业级分布式技能(Docker/k8s、Go与微服务)

该阶段学习原因:

如果把区块链系统或者的程序的量级变大,Docker虚拟化技术是区块链解决硬件成本的必备技能,Golang本身在微服务领域是强者。

该阶段解决问题:

大企业级分布式技能(进入知名企业必备)

(8)知名企业实战对接

该阶段学习原因:

知名企业区块链实战项目案例 

该阶段解决问题:

技术行业领先能力。

(9)源码分析

该阶段学习原因:

分析源码,可以养成自学新技术的能力,对于以后自我发展和自我学习能力提升显著。

该阶段解决问题:

自学能力养成


22. 黑马程序员区块链学科的课程阶段:

第一阶段:区块链主流语言-Go语言开发实战

获得成就:  具备企业基本的Go语言开发用人标准

第二阶段:区块链后端技术体系-Go语言高并发服务器开发

获得成就:  具备企业标准用人标准,具有游戏服务器开发能力

如(魔兽世界服务器,LOL服务器、王者荣耀服务器开发)

第三阶段:去中心化前端开发与web服务器开发

获得成就:  具备企业Web网站开发(如今日头条,京东电商等)

第四阶段:区块链密码学安全理论与开发

获得成就:  具备信息安全开发能力和区块链安全开发能力

为区块链搭建知识体系做铺垫。

第五阶段:区块链与智能合约开发

获得成就:  精通区块链理论基石,共识算法、智能合约

可以基于Go语言完成自定义的区块链系统

同时掌握以太坊常用框架Truffle、Web3.js等。

掌握DAPP开发能力(如基于区块链可信的商品竞价系统、如基于区块链可信的基于区块链可信的数字货币 比特币、以太币等)。

第六阶段:区块链分布式应用开发

获得成就:  具备分布式微服务解决方案开发能力(Docker、K8S等)具备分布式集群、微服务、区块链等综合场景解决方案能力。

第七阶段:联盟链与华为区块链底层系统框架开发

获得成就:  掌握企业主流联盟链框架Hyperledger Fabric与华为区块链平台应用。

第八阶段:Go与区块链面试强化

获得成就:  保证学员就业,会加上Go语言与区块链方向的常见数据结构和算法,在市场更加有竞争力。


23. 黑马程序员区块链教学案例有哪些(目前8大区块链教学案例)?

 

案例1-数字代币(黑马币)发布

1534412054649_12.jpg1534412059540_13.jpg

项目简介:

基于以太坊ERC20代币标准,通过编写智能合约发行属于自己的数字货币,通过web3接口,与前端进行交互,具有等转账功能。

项目特色:

1.以太坊Mist平台

2.数字货币发币

3.智能合约编写

4.Web3.js

 

案例2-以太坊云养猫游戏源码分析

1534412070493_14.jpg1534412093900_15.jpg
1534412114916_16.jpg
1534412121291_17.jpg


项目简介:

以太猫类似于电子宠物,猫奴们可以喂养照顾自己的猫咪。在以太猫平台上,用户可以花费以太坊购买猫咪,通过繁育它们来获得罕见的属性。猫咪品质的稀缺性,提高了其价值,它们可以在点对点的以太坊市场中再次出售。

以太坊区块链的不可篡改性和分布式结构确保不会出现一样的猫咪,每生成一只猫咪都会被嵌入以太坊网络中,因此它的所有权是公开确定的。

项目特色:

1、安全的加密资产

2、100%无法篡改

3、以太坊DAPP

4、Solidity语言合约编写

 

案例3-基于以太坊的博彩项目案例

1534412181495_18.png1534412187339_19.png


项目简介:

满足彩民博彩需求,让彩民能够轻松简单一键购票,通过区块链技术解决彩民和博彩公司两个角色间信任问题,让博彩项目公开透明。

项目特色:

1.微服务框架进行后台项目开发

2.restful服务

3.针对中心化彩票项目,给出去中心化的解决方案

4.solidity编写基于以太坊的智能合约

 

案例4-IPFS音乐电台应用

1534411769722_20.png1534411772331_21.png


项目简介:

满足彩民博彩需求,让彩民能够轻松简单一键购票,通过区块链技术解决彩民和博彩公司两个角色间信任问题,让博彩项目公开透明。

项目特色:

1.微服务框架进行后台项目开发

2.restful服务

3.针对中心化彩票项目,给出去中心化的解决方案

4.solidity编写基于以太坊的智能合约

 

案例5-区块链去中心化众筹项目案例

1534411780206_22.png

项目简介:

通过区块链技术规避各种众筹黑幕,让你的投资资金笔笔可溯源,笔笔可追回。

项目特色:

1.基于以太坊部署智能合约

2.solidity编写智能合约

3.mocha.js,web3.js,ganache.js框架使用

4.智能合约gas计算

5.以太坊工作原理

 

案例6-去中心化公平选举项目案例

1534411797379_23.png


项目简介:

区块链可以理解成一种分布式的去中心化的系统,它解决了互联网各个角色之间的信任问题,充分利用这种人人共享的信任系统可以极大的提升社会效率,无中间人、无中心化控制的程序需求会越来越多。本项目以美国总统选举系统为例演示去中心化App的开发。

项目特色:

1. solidity编写智能合约

2. 深入学习evm虚拟机工作流程

3. 熟练使用智能合约的相互调用

4. 掌握智能合约的自毁

5. 能够编写去中心化的选举系统

6. 能够实现代理投票的过程

 

案例7-民商认购征信平台案例

1534411810238_24.png


项目简介:

民商户合法采购,从非法收购、贩卖的每一个环节实施“全链条”打击,从根本禁止非法购买、贩卖犯罪行为。

项目特色:

1.hyperledger fabric架构和常见组件

2.hyperledger fabric集群平台搭建

3.hyperledger fabric智能合约链码开发

4.hyperledger fabric部署

 

案例8-Golang飞机大战游戏实战

1534412214621_25.jpg1534412222355_26.jpg


项目简介:

基于Golang语言图形化界面GTK完成飞机大战综合小游戏案例

项目特色:

1.Golang 基础语法

2.Golang 复杂结构slice、map、指针

3.Golang GTK图形化UI界面编程

4.物体碰撞检测、事件回调、interface{}抽象编程

 

24. 黑马程序员区块链项目有哪些(目前四大项目)?


大项目1-基于Beego框架RESTful协议电商平台

1534412232215_27.png
1534412241465_28.png


项目简介:

大型电子商务生鲜平台,包含用户中心、商品展示、购物车、订单、支付、评论、搜索等功能。

项目特色:

关系型数据库-mysql、no-sql缓存型数据库-redis、分布式文件系统fastDFS、前端开发Html5+js+Css高级、Beego框架(router、orm、model、controller)。

 

大项目2-以太坊商品竞价项目

1534412277122_29.png1534412284185_30.png


项目简介:

基于以太坊平台编写智能合约,解决电商网站商品秒杀机制、商品盲派、竞价等公平和合法性质。IPFS的合约的部署与商品的文件公正存储。

项目特色:

1、 IPFS去中心化分布式文件系统

2、 Truffle框架

3、Truffle部署在不同的环境中(develop环境、Ganache、私有链、ropsten网络等)

4、 单元测试编写

5、 内置项目介绍

6、Web3.js学习

 

大项目3-GoMirco+Docker/k8s分布式微服务架构项目

1534412293326_31.png1534412297529_32.png
1534412302716_33.png


项目简介:

基于Docker分布式容器,k8s作为容器编排搭建微服务基础设施。GoMicro搭建服务架构、Consul作为服务发现,其中采用RESTful协议与gRPC/Protobuf作为微服务间通信机制,解决大企业高并发分布式理论后端服务方案。

项目特色:

1.微服务的优势

2.docker容器构建微服务

3.protobuf微服务交互协议

4.gRPC远程调度机制

5.服务发现

6.基于go-micro微服务实战


大项目4-华为区块链平台开发

1534412312435_34.png1534412328123_35.png


25. 学习Go语言与区块链 课程需要用到的软件、工具(开发环境)、数据库有哪些?

软件:Go-1.10 ;

开发环境工具:LiteIDE 或者 Goland 或者Vim-go (这里要说明一点,工具只是使开发更加方便,但不是必须的,使用普通的notepad(记事本)也可以开发);

操作系统; Linux 作为高级课程部分, Windows作为入门课程部分

数据库: MySQL,Redis、FastDFS等。


26. Go语言与区块链为什么目前只在北京开班,其他地方会开设吗?

1534412335811_36.png

目前区块链岗位最多的地方是北京, 深圳、上海也在增长,我们现在已经北京、上海开设班级,预计之后深圳、广州、杭州都会开设。


27. Go语言与区块链的就业方向?

Go语言的特性,执行效率高,擅长网络编程,高并发,跨平台。

Go语言目前主要涉及的领域有:区块链系统开发、区块链应用开发,高并发服务器开发、分布式开发、微服务开发 和Web框架及应用开发。


28. 就业薪资大概是多少?

从最新的招聘岗位数量来看,go语言目前是稀缺的高新语种之一。

北京1-3年平均薪资在14k-25k.不算工作年限和工作地点的平均薪资是23k。

1534413239234_37.jpg


29. GO语言和C/C++区别?是否会取代C/C++?

一句话,没有任何语言会取代c/c++!

因为一切软件程序都是跑在操作系统上[windows.linux.mac.android.ios等],而这些操作系统本身就只能用一种语言实现,那就是c语言。没有操作系统,何来软件,更何来其他语言。

Go语言是否和c/c++语言冲突呢?不会,c语言更加偏重于系统底层,而go语言更加偏重于系统应用。虽然二者都是高性能语言,但是go语言更加适合网络通信开发。比如两台电脑传输数据,或者服务器接收大量的远程数据。

最主要go语言很简单。


30. 没有基础是否可以学go语言或者学习区块链?

Go语言与区块链的基础班课程会从go语言的基本语法讲解,课程设计完全面向无基础的小白,在windows上进行入门讲解,在就业班有了一定的基础,我们会在linux上进行讲解,逐步深入,循序渐进。


作者:黑马程序员Go语言与区块链培训学院
首发:http://www.itheima.com/special/gozly/index.html

 

分享到:
在线咨询 我要报名
和我们在线交谈!