以太坊java库EthereumJ简介

作者: 编程狂魔 | 来源:发表于2018-08-08 09:59 被阅读13次

EthereumJ是以太坊协议的纯Java实现。有关以太坊及其目标的高级信息,请访问ethereum.org,其白皮书提供了一个完整的概念的概述,和黄皮书一起提供了协议的正式定义。

我们尽可能保持EthereumJ简单。对于JSON-RPC支持和其他客户端功能,请看Ethereum Harmony

运行EthereumJ

作为依赖项添加到Maven项目:

   <dependency>
     <groupId>org.ethereum</groupId>
     <artifactId>ethereumj-core</artifactId>
     <version>1.8.1-RELEASE</version>
   </dependency>

或者你的Gradle项目:

repositories {
       mavenCentral()
       jcenter()
       maven { url "https://dl.bintray.com/ethereum/maven/" }
   }
   compile "org.ethereum:ethereumj-core:1.8.+"

作为你项目的起点,任何一个项目都可以以下列方式启动:

git clone https://github.com/ether-camp/ethereumj.starter
./gradlew run

检查你的本地区块链如何同步使用:

 curl -w "\n" -X GET http://localhost:8080/bestBlock

构建可执行的JAR

git clone https://github.com/ethereum/ethereumj
cd ethereumj
cp ethereumj-core/src/main/resources/ethereumj.conf ethereumj-core/src/main/resources/user.conf
vim ethereumj-core/src/main/resources/user.conf # adjust user.conf to your needs
./gradlew clean fatJar
java -jar ethereumj-core/build/libs/ethereumj-core-*-all.jar

从命令行运行:

> git clone https://github.com/ethereum/ethereumj
> cd ethereumj
> ./gradlew run [-PmainClass=<sample class>]

可以运行任意一个测试示例:

./gradlew run -PmainClass=org.ethereum.samples.BasicSample
./gradlew run -PmainClass=org.ethereum.samples.FollowAccount
./gradlew run -PmainClass=org.ethereum.samples.PendingStateSample
./gradlew run -PmainClass=org.ethereum.samples.PriceFeedSample
./gradlew run -PmainClass=org.ethereum.samples.PrivateMinerSample
./gradlew run -PmainClass=org.ethereum.samples.TestNetSample
./gradlew run -PmainClass=org.ethereum.samples.TransactionBomb

快照构建

请注意,快照不稳定,目前正在开发中!如果你还想尝试一下:

示例如下:

<repository>
    <id>jfrog-snapshots</id>
    <name>oss.jfrog.org</name>
    <url>https://oss.jfrog.org/libs-snapshot/</url>
    <snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- ... -->
<dependency>
   <groupId>org.ethereum</groupId>
   <artifactId>ethereumj-core</artifactId>
   <version>1.9.0-SNAPSHOT</version>
</dependency>

将项目导入IntelliJ IDEA:

> git clone https://github.com/ethereum/ethereumj
> cd ethereumj
> gradlew build

IDEA:

  • File -> New -> Project from existing sources......
  • 选择 ethereumj/build.gradle
  • 对话框“Import Project from gradle”:点击“ok”
  • 在构建之后运行org.ethereum.Startorg.ethereum.samples.*之一或创建自己的主程序。

配置EthereumJ

有关所有现有选项,其描述和默认值的参考,你可以参考默认配置ethereumj.conf(你可以在jar库或源代码ethereum-core/src/main/resources目录中找到它),要重新设置所需的选项,你可以使用以下方法之一:

  • 把你的选项放到<working dir>/config/ethereumj.conf文件中
  • user.conf放到classpath的启动目录中(作为一个资源)
  • 将你的选项放在任何文件中并通过它提供-Dethereumj.conf.file=<your config>
  • 编程通过SystemProperties.CONFIG.override*()使用
  • 编程重写Spring SystemPropertiesbean来使用

请注意,不需要将所有选项都放在自定义配置中,只需要放置你需要修改的那些选项。

如果你希望尽快的使用java开始以太坊的开发,可以选择web3j类库,它封装实现了绝大部分web3的功能,十分好用:

java以太坊教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。

另外分享下之前其他语言的以太坊课程链接:

  • 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和事件等。

汇智网原创翻译,转载请标明出处。这里是原文

相关文章

网友评论

  • mapleeeeee:他和org.web3j:core:3.3.1-android 有啥区别?呢
    编程狂魔:@mapleeeeee ethereumj是个客户端类似geth只不过是java的实现,web3j是java开发类库。做的事情有一部分是重合的,但是定位不同。我是这样理解。

本文标题:以太坊java库EthereumJ简介

本文链接:https://www.haomeiwen.com/subject/jhdtbftx.html