扫码关注官方微信公众号

“区块链工程师大讲堂”之“第二期区块链实践” 在腾讯会议成功举办

2020-09-08


2020 年 8 月 1 日下午,“2020区块链技术创新与应用发展系列”之“区块链工程师大讲堂”第二期区块链实践在腾讯会议上顺利举办,分享会主要分为四小章节,每周定期分别由不同的专家进行系统的讲解。会议由清华大学互联网产业研究院与哈维社区共同主办,泰岳区块链承办,并得到了中关村区块链联盟以及“一点知道APP”全程直播,在线观看人数近数百人。

本次会议邀请了机群区块链分布式服务器运维工程师李峰,区块链底层高级工程师、P2P 通信协议研究专家马二川,区块链后端研发工程师吴保强,泰岳区块链技术架构师田明进行主题分享。下面,让我们回顾一下第二期四小章节的分享内容。

首先,由李峰围绕《环境部署,节点搭建,配置和启动》为主题进行分享和发言。

首先,李峰拿比特币、以太坊和泰岳联盟链为例,论述了如何寻找这些区块链的源代码和最新的版本,在所有版本中找到一个适合自己的版本之后,还需要准备一台云服务器。随后就是部署阶段,在计算机里,本质上有三种部署方式:

编译安装部署:将源代码变为机器可执行的代码文件

二进制部署:直接下载可执行文件

docker部署:运行 docker 镜像,启动 docker 容器

首先需要配置文件和启动脚本,阅读使用说明并进行操作,最后进行编译和选择签发证书等。

接下来由马二川以《CMD调用节点》为主题进行分享发言,并阐述如何创造属于自己的账户,获取账户信息和发送交易。

马二川谈到,首先是节点的准备,马二川使用了 Go 语言进行操作,暗转语言,下载区块链的代码,然后进行编译;最后开启 RPC。在这些准备工作完成之后,可以进行具体的账户创建。创建账户主要分为两个部分:编译 CLI 和生成账户。在编译完 CLI 工具之后,通过命令行来生成账户。账户生成后,会自动得到一个私钥(privkey),公钥(pubkey),和(address)。下面就是在操作过程中,生成的信息:

privkey: 09faf026b5eae3b092089102409fe1a0f881401a5b3ca349c3e2fe839db78817

pubkey:0468d86f49c8d888b82e1f15b05438ffaf87e1d8aa1c2c41c49e2eedd4de6050b582f11d7a790b29698e59dec2e146d7b478e4936d49ec48bbf5e56fe425a11873

Address: 0x710B261579F734d88d465D9dAD2C50E2d98c357e 成功创建账户之后,就可以查看账户的信息和发送交易。

随后吴保强以《区块链账户概念和Web3j通讯》为主题进行分享发言,他介绍了区块链账户概念,Web3j 通讯和区块链交互现状。

区块链账户概念

首先吴保强对比了区块链账户与传统银行账户的区别,传统银行系统的账户主要由银行卡卡号,用户的身份和秘钥组成。一个用户对应一个卡号,可以通过秘钥对该账号的资产进行操作。不同于传统银行账号,区块链账户包括一个私钥;在你拥有私钥的同时,不同区块链系统会通过特定的算法为用户生成一个独立的账户地址。值得说明的一点是,用户可以使用私钥通过特定的算法得到自己的账户信息,但是几乎不可能用账户地址反算出私钥信息。因为其具有不可逆的性质,所以大大保证了区块链的安全性。

比特币私钥公钥地址生成过程

用户需要保护好自己的私钥。在系统生成私钥的同时,会生成另外一组秘密钥,我们称之为助记词,例如:

hunt reason couple jaguar umbrella absent

jungle warrior renew photo achieve bleak

如是改变成汉语,大概会是如下的样子:

翻 灾 须 玉 郎 了

殖 霍 芽 泡 个 展

其被破译的几率也基本相当于 0。

Web3j通讯

web3j 是一个轻量级、高度模块化、响应式、类型安全的 Java 和 Android 类库提供丰富 API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。可以通过它进行以太坊区块链的开发,而无需为你的应用平台编写集成代码。

最后,田明以《区块链运行》为主题做分享并发言。

田明讲到,区块链基本的运行流程可以分为四个步骤:区块构建,区块挖矿,区块广播,和区块上链。本次分享田明重点介绍了其中三个部分:区块链构建及共识,区块广播,和区块上链。一个完整的区块链系统包含很多部分,其中拿泰岳联盟链为例,泰岳联盟链中包含应用层,对外接口层,共识和协议,网络层,数据层和存储层。本质上,我们也可以把区块链理解为是一个以密码学为基础的数据库。在区块构架中,一个区块包含区块头和区块主体两个部分。每个区块会在单位时间中,打包该时间内的所有交易信息,封装成一个区块并添加到区块链的网络中。同样,下一单位时间内,又会有另外一个新的区块被添加到网络中,每个区块相连,最后组成一个区块的链条一样的数据网络,我们称之为区块链。一般,一个新的区块被添加到网络上之后,下一个被添加到网络上的区块会验证前一个区块是否是可信的区块,一般被后面的 6 个区块验证之后,这个区块会永远地被写进这条区块链里,无法被篡改。每条区块链的第一个区块我们会成为创世区块,这个特殊的区块会被程序员特殊对待,有特殊的生成逻辑。区块创建的流程是:PBFT启动---MakeBlock---FetchFastBlock。

至此,第二期区块链分享会完成所有嘉宾的在线分享,会议取得圆满结束,让我们期待第三期:“区块链底层主网开发”的精彩呈现。


点击可查看《第三期:区块链底层主网开发》通知

区块链工程师公益大讲堂,旨在培养面向未来的新型职业的区块链工程师,内容总共分为五期,每月一期,每期四小章节,分别从“第一期:区块链基础,第二期:区块链实践,第三期:区块链底层主网开发,第四期:区块链 Dapp 应用开发,第五期:区块链 Dapp 应用,将通过这五期课程系统全面的探索和破解区块链技术在各产业中的应用,有效解决区块链技术发展过程中的难题,为国家培养区块链人才奠定基础。



供稿|项目部

编辑、图片|段文秀

审核、责编|杨帆