前置条件

Germ节点运行需要几个前置条件:

  • 持久化存储
  • 区块链网络
  • IPFS

持久化存储

目前Germ支持两种持久化存储:MongoDB和MySQL。需要通过配置文件来配置使用的持久化存储。

区块链网络

目前Germ底层区块链网络只支持Ethereum和Quorum,需要通过JSONRPC来访问Germ的合约。

目前baidu开放的Germ合约的JSONRPC为:

http://180.76.235.127:8081/quorum-jsonrpc/3a31c3cd-84e1-4e56-8e87-2c94cad04c7d/bbf843a5

合约地址为:

0xf0e46e20271ea61649932510672c536733f9f160

如果你需要使用我们提供的开放环境,可以联系我们来给你用于测试的Ethereum Address转帐。联系方式详见:Contact Us

实际上,你可以在任何一个支持智能合约的区块链网络中重新部署一份合约,然后连接自己的JSONRPC地址来访问指定的合约。

IPFS

Germ节点需要连接到IPFS网络,因此需要部署一个IPFS节点,或者使用任何能够保证Germ节点能够读写数据的现有的IPFS节点。

目前baidu开放的IPFS网络是一个私有的网络,需要一个共享密钥作为准入条件,我们开放了其中一个IPFS节点的地址:

/ip4/106.12.84.237/tcp/4001/ipfs/Qmb6FLzi2B56ssnmtWxWbFkbdtpUgwJvmirEMcnd8FzrZn

如果你希望接入baidu的IPFS网络可以联系我们获取更多的信息。

参考配置

一份Germ的参考配置文件示例如下:

{
  "log": {
    "logLevel": 6,
    "logToFile": false
  },
  "apiServer": {
    "listen": "0.0.0.0:8081",
    "baseRouterPath": "/"
  },
  "germCore": {
    "mode": "full",
    "packingQueueSize": 2048,
    "packingPeriod": 5,
    "maxPackageSize": 1024,
    "maxRawPackageSize": 16777216,
    "concurrency": 128
  },
  "blockchain": {
    "name": "ethereum",
    "value": {
      "gasLimit": 429496729,
      "gasPrice": 0,
      "jsonrpcAddress": "http://180.76.235.127:8081/quorum-jsonrpc/3a31c3cd-84e1-4e56-8e87-2c94cad04c7d/bbf843a5",
      "privateKeyHex": "",
      "contractAddress": "0xf0e46e20271ea61649932510672c536733f9f160"
    }
  },
  "storage": {
    "name": "ipfs",
    "value": {
      "entryPoint": "127.0.0.1:5001",
      "timeout": 15
    }
  },
  "persistentStorage": {
    "name": "mongo",
    "value": "mongodb://127.0.0.1:27017/germ"
  }
}

配置文件中大部分配置都可以保持不变,需要配置的主要是:

  • 区块链配置里面的jsonrpcAddress、privateKeyHex、contractAddress
  • IPFS配置的entryPoint
  • 数据库配置

运行

运行Germ节点只需要:

germ -c [配置文件路径]

日志默认打印到标准输出。