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

快照构建

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

  • 将https://oss.jfrog.org/libs-snapshot/添加为构建脚本的存储库。
  • 添加依赖项org.ethereum:ethereumj-core:${VERSION}${VERSION}位置的值是1.9.0-SNAPSHOT

示例如下:

<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的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和事件等。

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

java开发以太坊应用的库ethereumj相关推荐

  1. java开发以太坊---不搭节点开发

    java开发以太坊---不搭节点开发 readme 直接上代码 readme 以太坊区块链浏览器有提供官方api 已经满足了基本开发需求 api连接 优点: 可以不用搭建节点,节省内存,无须担心节点挂 ...

  2. java和以太坊交互_java类库EthereumJ如何操作以太坊区块链

    在本文中,我们将看一下EthereumJ库,它允许我们使用Java与以太坊区块链进行交互. 以太坊作为一种加密货币,利用去中心化.点对点.可编程区块链形式的数据库,以太坊虚拟机(EVM),通过连接不同 ...

  3. JAVA使用web3j开发以太坊实战案例

    JAVA使用web3j开发以太坊实战案例 必读 1.前言 2.基础(必看) 3.web3j引入 4.创建账户(离线创建) 5.geth节点搭建.基本使用及一般问题 6.常量类 后面内容都要用到(必备! ...

  4. solidity开发以太坊代币智能合约

    智能合约开发是以太坊编程的核心之一,而代币是区块链应用的关键环节,下面我们来用solidity语言开发一个代币合约的实例,希望对大家有帮助. 以太坊的应用被称为去中心化应用(DApp),DApp的开发 ...

  5. 为什么选择Java进行以太坊区块链开发

    当有人说Java时,你会想到什么?如果没有,你可以试试old.虽然,其他人可能会说它坚固,可靠和安全.而对于Oodles Blockchain来说,Java意味着"企业级". 毫无 ...

  6. java和以太坊交互_java类库web3j开发以太坊智能合约快速入门

    web3j简介 web3j是一个轻量级.高度模块化.响应式.类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成. 可以通过它进行以太坊 ...

  7. python智能合约编程_如何用Python Flask开发以太坊智能合约

    将数据存储在数据库中是任何软件应用程序不可或缺的一部分.无论如何控制该数据库都有一个该数据的主控.区块链技术将数据存储到区块链网络内的区块中.因此,只要某个节点与网络同步,它们就会获得区块中数据的副本 ...

  8. 以太坊去中心化_开发以太坊去中心化投票应用程序的指南

    以太坊去中心化 by Timothy Ko 蒂莫西·高(Timothy Ko) 开发以太坊去中心化投票应用程序的指南 (A guide to developing an Ethereum decent ...

  9. 用Visual Studio开发以太坊智能合约

    2019独角兽企业重金招聘Python工程师标准>>> 区块链和以太坊 自从我熟悉区块链.以太坊和智能合约以来,一直失眠. 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议 ...

最新文章

  1. Rust和C / C ++的跨语言链接时间优化LTO
  2. GPU编程和流式多处理器
  3. 学习python(五)
  4. [实变函数]6 微分与不定积分
  5. mybatis sql打印输出位置
  6. Android WebView中使用loadData时出现的乱码问题解决办法
  7. php统计在线时长,js统计网站运行时长
  8. 【推荐】程序员/设计师能用上的 75 份速查表
  9. python语言发展历时_编程语言十年发展史
  10. 行为型设计模式(3)—— 命令模式(Command Pattern)
  11. 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction
  12. keepalived漂移VIP故障
  13. 智慧职教mooc学院计算机文化基础答案,智慧职教MOOC学院-刷课分析
  14. Jmeter 使用教程
  15. 数据库中间件sharding-jdbc实现数据脱敏
  16. 视频教程.VB6.0+ACCESS开发数据管理软件
  17. 深圳学区房还值得购买吗
  18. signature=3d7534face990de7e25e7438440abe49,Designing the User Interface 5e
  19. 线性代数:如何求特征值和特征向量?
  20. 华为小艺输入法测试版 1.0.19.103 发布

热门文章

  1. 2021陕西安全员C证考试及(安全员)模拟考试答案解析
  2. java泛型类的作用_【Java-泛型系列一-泛型的作用】
  3. java数组删除元素_java删除数组中的某一个元素的方法
  4. 关于indices和indptr的总结
  5. 未转变者vac服务器没响应,VAC对创面血管生成,神经肽分泌和修复细胞凋亡基因表达的影响...
  6. 消防应急指挥三维地理信息平台
  7. 微软总部MVP峰会,西雅图现场报导
  8. 论坛介绍 | COSCon'22 开源教育(E)
  9. emoFun(安卓)
  10. Excel 公式的使用、删除引用