从零开始学习 JD Chain(一)- 快速部署 JD Chain

此文章系列计划记录本人从零开始学习JD Chain的历程,因为是从零开始,理所当然会有许多理解不够深入的地方,还望各位同好及时指正错误,共同成长。不定期更新,但尽量坚持下去,分享文章也是想立个Flag,让大家监督我的学习进度。

JD Chain 是京东区块链开发团队自主研发的,专门为企业应用设计的区块链框架系统,适用多种通用业务场景。不同于超级账本(Hyperledger Fabric)生态和企业级以太坊联盟(Enterprise Ethereum AllianceEEA),JD Chain 拥有完全的自主知识产权和充分开放的开源协议(Apache-2.0 License)。在我大中华和美丽国在各个维度频频摩擦,连Docker这种应用广泛的开源项目都不再能愉快使用的当下,学习了解完全自主可控的开源项目,也算为加速内循环做出微薄贡献(此处应该有掌声^ ^)。

-------------这里是废话的分割线-------------------

为了帮助开发者快速部署,JD Chain 项目在部署脚本中内置了一个可视化管理工具,除了一些必要的配置修改外,大部分如快速实现JDChain的初始化和peer节点启动等区块链部署工作只需要在前端页面按照操作提示进行简单的点点点即可,减少用户的各种繁琐操作,简直是我这种懒人的福音。

部署模型

JD Chain 官网 提供了面向中小型企业和大型企业的两种不同部署模型。其中面向中小企业的最简部署模型为JD Chain可正常运行的最低配置,在硬件条件满足的情况下,可以支持亿级交易,通常用于Demo实验或小型应用,也正是下文采用的部署模型。最简部署模型需要部署一个客户端节点、一个网关节点和多个共识节点(共识节点数量依赖于共识算法,本次部署部署了四个共识节点)

image.png

操作步骤

image

安装、修改配置

http://ledger.jd.com下载安装包,其中jdchain-peer-1.2.1-xxx.zippeer节点压缩包,jdchain-gateway-1.2.1-xxx.zip为网关压缩包。

如果peer节点部署在不同的机器上,采用默认端口安装就可以;
如果peer节点部署在同一台机器上,需要修改管理工具和peer节点的默认端口,避免端口冲突导致服务无法启动。还需要做一些假设:

  1. 管理工具的端口定义为:8000/8001/8002/8003
  2. peer节点的启动端口定义为:7080/7081/7082/7083
  3. JDChain项目的安装路径为:/export/jdchain

对节点配置进行修改,具体修改如下(如果为不同机器部署,只需执行如下步骤1和步骤2):

  1. 切换路径 cd /export/jdchain
  2. 解压Peer节点安装包 unzip jdchain-peer-1.2.1.RELEASE.zip –d peerX
  3. 切换路径 cd /export/jdchain/peerX/bin
  4. 修改管理工具manager端口(如下图所示位置) vi manager-startup.sh
    image
  5. 修改peer启动端口和内存大小vi peer-startup.sh。本机多peer部署建议把内存配置改小一点避免内存不够用应用程序无法启动或者被系统kill,下图提示位置建议修改为:-Xmx512m -Xms512m
    image.png

启动管理工具

  1. 进入可执行脚本目录 cd /export/jdchain/peerX/bin
  2. 执行: sh manager-startup.sh
  3. 管理工具的后台日志默认存放在 jump.out 文件内
  4. 管理工具会启动一个UI操作界面方便部署,界面默认的访问端口为 8000。

创建公私钥

登录管理端UI界面,点击左侧菜单:公私钥管理->生成公私钥。在弹出的界面中填写相关信息:

image

OK! 创建完毕!公钥(以及公钥衍生的地址)将作为区块链上各个参与方节点或用户的数字身份(类比于邮箱账号),私钥作为区块链上各个参与方节点或用户的数字身份的密码(类比于邮箱密码,需要妥善保管)

创建数据账本

  1. 修改配置信息:点击左侧菜单:账本->初始化账本,选择一台机器作为协调方,其它的作为参与方。每个节点填写内容之后先不要点击“保存配置信息”按钮,都填写完成之后统一,先保存协调方,其它依次快速保存。

注意事项:

  • 参与方要使用协调方的邀请码;
  • 共识协议:目前为:Bftsmart
  • 密码算法:默认;
  • 参与方数量:包含协调方在内;
  • 共识节点信息:如果在同一台机器,一定要保证共识端口不同(共识会占用多个连续端口,步长建议设置为10,即:6300/6310/6320/6330);
  • 初始化共识地址:如果在同一台机器,一定要保证共识端口不同(共识会占用多个连续端口,步长建议设置为10,即:22000/22010/22020/22030);
  • peer节点公钥:选择上一步创建的公钥;
  • 数据库名称:在同一个机器上的名称不能重复。
  • 由于peer节点之间的通信设置了时延,一定要确保四个peer节点的配置都无误的前提下,在尽可能短的时间内同时点击界面下方的“保存配置信息”按钮。

协调方配置信息如下:


image

参与方配置信息如下:


image

四个参与方都点击“保存配置信息”后,配置信息会在四个参与方之间共享。界面如下:
image
  1. 账本初始化:点击界面下方的“开始”按钮,则启动四个参与方的初始化操作,初始化进度会在下方展示。最终展示界面如下:
    image

注意:一定要确保所有的账本初始化都完成之后,再进行后续操作。初始化完成表示创世区块已经创建。否则在启动节点过程中会出现报错。

  1. 启动peer节点:点击菜单 账本->查看账本,刚生成的账本会在内容区展示。点击其中的“启动节点”按钮,即可启动peer节点(见下图)。启动无误后,进度状态会展示为:已启动->已加载。
    image

安装、启动Gateway节点

  1. 确定路径 cd /export/jdchain
  2. 解压gateway节点安装包unzip jdchain-gateway-1.2.1.RELEASE.zip –d gw
  3. 管理端查看公私钥(即上文在管理端为每个节点创建的公私钥)
  4. 查看加密后的口令 cd peer0cd config/keysmore *.pwd
  5. 修改端口 、添加公私钥cd /export/jdchain/gw/configvi gateway.conf
  6. 脚本启动gateway: sh startup.sh
  7. 稍等片刻,如果没有修改默认端口配置,可通过http://localhost:18081页面访问区块链浏览器,界面如下:
    image
  8. 大功告成!

注意事项:

  1. 公私钥可以在管理工具的“公私钥管理”中获得,但私钥的解密密码(keys.default.privkey-password参数),需要通过登录后台才能查看,即上文中的第4步。
  2. 注意,公钥以3sn开头,私钥以177开头。
    image

划重点:以上基于JDChain1.2.1.RELEASE版本搭建,最新版本JDChain1.3.0.RELEASE版本已经发布,建议基于最新版本部署,部署过程完全一致。

参考链接:
https://zhuanlan.zhihu.com/p/102270006

JD Chain GitHub项目链接:https://github.com/blockchain-jd-com/jdchain,欢迎各位跟我一样先Star收藏关注起来,共同学习共同成长!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,270评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,489评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,630评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,906评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,928评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,718评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,442评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,345评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,802评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,984评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,117评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,810评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,462评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,011评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,139评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,377评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,060评论 2 355