返回到文章

采纳

编辑于

运行 Ethereum-Harmony

ethereumj
开始

screenshot

什么是Ethereum Harmony

EthereumJ是以太坊协议的纯Java实现。

开发者希望保持EthereumJ尽可能薄,EthereumJ仅仅包含了挖矿算法、vm等核心功能。而对于JSON-RPC支持和其他客户端功能,用Ethereum Harmony来完成的。

特性:

  • Ethereum 对等 JSON-RPC 2.0 标准 ;

  • 保持在文件系统中 私钥keys keystore 与 go-ethereum 兼容;

  • 提供在浏览器命令行终端;

  • Blockchain 规范追踪;

  • 监听peer连接;

  • 简易的 Ethereum 钱包;

  • 完整追踪合约存储;

环境准备

  • Java 8 (64 bit)

运行

  • git clone git@github.com:ether-camp/ethereum-harmony.git
  • cd ethereum-harmony
  • 运行: gradlew runMain (其他可选的环境)

游览器可以访问 http://localhost:8080
JSON-RPC 访问地址是 http://localhost:8545/rpchttp://localhost:8545

也提供了禁用不需要的功能,可以禁用任何应用程序模块:Web,合约,RPC。点击这里查看禁用。

只运行 RPC : gradlew runMain -PrpcOnly

(*) 可以使用 gradlew runMain -Dserver.port=9999 改变web端口。

命令行选项

环境 运行 ...
Main gradlew runMain Start server connecting to Main network
Ropsten gradlew runRopsten Start server connecting to Ropsten network
Classic gradlew runClassic Start server connecting to Ethereum Classic network
Private gradlew runPrivate Start server, no network connection, single miner running
Custom gradlew runCustom Start server connecting to custom network

运行一个自定义的网络(Run in a custom network)

  • git clone https://github.com/ether-camp/ethereum-harmony
  • cd ethereum-harmony
  • 使用自定义配置:
gradlew runCustom -Dethereumj.conf.file=/path/to/custom.conf
  • 也可以使用CLI传递参数的方式:
gradlew runCustom -Dpeer.networkId=10101 -DgenesisFile=/path/to/custom/genesis.json -Dpeer.discovery.enabled=false -Dpeer.active.0.url=enode://0f4a5f92835a4604ecd9639ddcfb86d2a2999ad9328bc088452efffe4a7c6cd0eaaef77c779dc56fc1d0f21cd578eeb92cb5@23.101.151.28:30303

注意: 自定义配置或CLI不替换的参数将默认从ethereumj.conf中获取.

自定义配置文件格式

格式和ethereumj.conf一致,还可以仅指定必要的配置参数。

例如:

  genesisFile = /path/to/custom/genesis.json
  database.dir = database-private

  peer {
    networkId = 10101
    listen.port = 50505

    discovery.enabled = false
    active = [
      {url = "enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303"}
      {url = "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303"}
    ]
  }

  sync.fast.enabled = false

如果在不使用Gradle的情况下运行Harmony,请将-Dethereumj.conf.res=harmony.conf添加到命令行中,这样Harmony属性也将应用于系统的上下文。

如果您使用一些自定义资源文件作为配置,只需将-Dethereumj.conf.res=harmony.conf,custom.conf添加到java exec命令中,这样2个配置都会应用。