Corda DemoBench for V1.0

DemoBench 是一个独立的桌面应用程序,它能够是你轻松地配置和运行本地的 Corda 节点。这对于培训,演示及探索性实验有很大的帮助。

DemoBench 作为基于 Apache 2.0 licence 的开源软件被提供。其源代码可以在 Corda GitHub repo 中找到。

运行 DemoBench

配置节点

每一个节点都要有一个唯一的名称,使其在 network map service 中能够被识别出来。DemoBench 建议使用节点名字(node names),最近的城市(nearest cities)和本地端口(local port numbers)。
第一个节点将会用来作为 network map service,我们也将它配置成一个 notary 节点。所以在 Services 列表中只有 notary services 可选。对于后续的节点,你也可以选择 Corda 内置的任何 Services。
 点击 Start node 按钮使用你的配置来启动 Corda 节点。

运行节点

DemoBench 加载每一个新节点在一个终端模拟器(命令窗口)中。 View DatabaseLaunch ExplorerLaunch Web Server 按钮将会被变为不可用,直到节点完全启动完毕。然后 DemoBench 将会显示关于节点的简单分析数据,比如资金剩余。
现在如果想要重启一个已经关闭的节点(用户在节点的命令窗口中输入“bye”)是做不到的。但是那个节点的数据和 logs 仍然在路径下存在。

退出 DemoBench

当你关闭了 DemoBench 之后,它会自动关闭所有节点和他们加载的所有的 explorers,然后才会退出。

Profiles

你可以将该配置以及 DemoBench 中当前运行的节点的 CorDapps 存储到一个 profile 文件中,该文件是一个 zip 文件,包含一下的结构:
notary/
    node.conf
    plugins/
banka/
    node.conf
    plugins/
bankb/
    node.conf
    plugins/
        example-cordapp.jar
...
当 DemoBench 重新加载该 profile 的时候,它会停掉所有当前正在运行的节点,然后加载这些新的节点。所有的节点都会被创建一个全新的数据库。注意:每个 profile 里边的 node.conf 文件是 JSON/HOCON 格式,所以是可以根据需要来解压和编辑的。
DemoBench 在下边的路径中写入 log 文件:
MacOSX/Linux:$HOME/demobench/demobench.log
Windows:%USERPROFILE%\demobench\demobench.log

Building 安装文件

Gradle 定义了任务(tasks)来使用 JavaPackager 来创建 DemoBench 的安装文件。在 tools/demobench 路径下有三条脚本来执行以下命令:
  1. package-demobench-exe.bat (Windows)
  2. package-demobench-dmg.sh (MacOS)
  3. package-demobench-rpm.sh (Fedora/Linux)
每段脚本只能在制定的平台下运行,并且要求平台的安装工具也应该是可用的。
  1. Windows:Inno Setup 5+
  2. MacOS:打包工具应该自动的被安装好了。如果 packager 在 keyring 上找到了可用的 Developer ID Application 证书连同一个私钥的话,DMG 内容也会被签名。(默认的,DemoBench 的 build.gradle 期望的签名密钥的用户名是“R3CEV”)。你可以通过生成一个 Certificate Signing Requests 来创建这样的一个证书,然后要求你本地的“Apple team agent”将该证书上传到 Apple Developer portal。(查看详细
    注意:
    - 确保 /usr/bin/codesign 程序总是能够访问你的证书的签名密钥。当你使用 MacOS Keychain Access 应用程序做了任何改动之后,你可能需要重启 Mac。
    - 在 MacOS 上你应该使用高于 JDS 8u152 的版本来 build DemoBench,因为该版本解决了一个当启动每个节点的时候会在命令窗口中打印一个提醒信息的问题。
    - 你应该使用 JetBrains JDK 来 build DMG。
  3. Fedora/Linux:rpm-build packages。
你同时需要定义 JAVA_HOME 环境变量,使其指向运行 Gradle 的相同的 JDK。Installer 将会被写入 tools/demobench/build/javapackage/bundles 路径下,然后可以像安装任何其他应用一样在你的系统中被安装。

JetBrains JDK

Mac 用户应该会注意到,build DemoBench 的最好的方式是使用 JetBrains JDK,可以在 BinTray 中心下载可执行文件。该 JDK 包含了许多有用的 GUI fixes,最需要知道的是,当使用该 JDK 来 build DemoBench 的时候,终端窗口将会支持 emoji,所以会有更好的带有颜色的 ANSI 进度。它也解决了一些 Windows 中 HiDPI rendering 造成的问题。
该 JDK 不包括 JavaPackager,这意味着你仍然需要从 Oracle JDK 路径下复制 $JAVA_HOME/lib/ant-javafx.jar 到你的 JetBrains JDK 对应的路径下边。

开发者注意

想要每次不 build 新的 installer 就可以运行 DemoBench 的开发者,可以使用 Gradle 在本地安装:
$ gradlew tools:demobench:installDist
$ cd tools/demobench/build/install/demobench
$ bin/demobench
不幸的是,DemoBench 的 $CLASSPATH 对于 Windows shell 来说太长了。如果是这样的话,你仍然可以像下边这样运行 DemoBench:
> java -Djava.util.logging.config.class=net.corda.demobench.config.LoggingConfig -jar lib/demobench-$version.jar
然而 DemoBench 也可以在 IDE 中被运行,这取决于开发者是否预先在 user.dir 系统属性值对应的路径下安装了所有的运行时依赖(runtime dependencies)(例如当前 JVM 的工作目录):
corda/
    corda.jar
    corda-webserver.jar
explorer/
    node-explorer.jar
plugins/
    bank-of-corda.jar

猜你喜欢

转载自blog.csdn.net/li_jiachuan/article/details/78245770