Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ethereum/ethereumj
DEPRECATED! Java implementation of the Ethereum yellowpaper. For JSON-RPC and other client features check Ethereum Harmony
https://github.com/ethereum/ethereumj
Last synced: 28 days ago
JSON representation
DEPRECATED! Java implementation of the Ethereum yellowpaper. For JSON-RPC and other client features check Ethereum Harmony
- Host: GitHub
- URL: https://github.com/ethereum/ethereumj
- Owner: ethereum
- License: lgpl-3.0
- Created: 2014-05-13T07:50:14.000Z (over 10 years ago)
- Default Branch: develop
- Last Pushed: 2022-02-24T15:16:54.000Z (almost 3 years ago)
- Last Synced: 2024-11-21T01:22:26.995Z (about 1 month ago)
- Language: Java
- Homepage:
- Size: 45.8 MB
- Stars: 2,184
- Watchers: 238
- Forks: 1,093
- Open Issues: 92
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ethereum - Java Client - Java Client. (Foundation {#foundation})
- awesome-ethereum-virtual-machine - EthereumJ
README
# Welcome to ethereumj
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ethereum/ethereumj?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/ethereum/ethereumj.svg?branch=master)](https://travis-ci.org/ethereum/ethereumj)
[![Coverage Status](https://coveralls.io/repos/ethereum/ethereumj/badge.png?branch=master)](https://coveralls.io/r/ethereum/ethereumj?branch=master)## :no_entry: Deprecated :no_entry:
This project is not supported anymore. If you have any question or would like to contribute find us on [Gitter](https://gitter.im/ethereum/ethereumj).# About
EthereumJ is a pure-Java implementation of the Ethereum protocol. For high-level information about Ethereum and its goals, visit [ethereum.org](https://ethereum.org). The [ethereum white paper](https://github.com/ethereum/wiki/wiki/White-Paper) provides a complete conceptual overview, and the [yellow paper](http://gavwood.com/Paper.pdf) provides a formal definition of the protocol.We keep EthereumJ as thin as possible. For [JSON-RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC) support and other client features check [Ethereum Harmony](https://github.com/ether-camp/ethereum-harmony).
# Running EthereumJ
##### Adding as a dependency to your Maven project:
```
org.ethereum
ethereumj-core
1.12.0-RELEASE
```##### or your Gradle project:
```
repositories {
mavenCentral()
jcenter()
maven { url "https://dl.bintray.com/ethereum/maven/" }
}
implementation "org.ethereum:ethereumj-core:1.9.+"
```As a starting point for your own project take a look at https://github.com/ether-camp/ethereumj.starter
##### Building an executable 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
```##### Running from command line:
```
> git clone https://github.com/ethereum/ethereumj
> cd ethereumj
> ./gradlew run [-PmainClass=]
```##### Optional samples to try:
```
./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
```##### For snapshot builds:
Please, note, snapshots are not stable and are currently in development! If you still want to try it:- Add https://oss.jfrog.org/libs-snapshot/ as a repository to your build script
- Add a dependency on `org.ethereum:ethereumj-core:${VERSION}`, where `${VERSION}` is of the form `1.13.0-SNAPSHOT`.Example:
jfrog-snapshots
oss.jfrog.org
https://oss.jfrog.org/libs-snapshot/
true
org.ethereum
ethereumj-core
1.13.0-SNAPSHOT
##### Importing project to IntelliJ IDEA:
```
> git clone https://github.com/ethereum/ethereumj
> cd ethereumj
> gradlew build
```
IDEA:
* File -> New -> Project from existing sources…
* Select ethereumj/build.gradle
* Dialog “Import Project from gradle”: press “OK”
* After building run either `org.ethereum.Start`, one of `org.ethereum.samples.*` or create your own main.# Configuring EthereumJ
For reference on all existing options, their description and defaults you may refer to the default config `ethereumj.conf` (you may find it in either the library jar or in the source tree `ethereum-core/src/main/resources`)
To override needed options you may use one of the following ways:
* put your options to the `/config/ethereumj.conf` file
* put `user.conf` to the root of your classpath (as a resource)
* put your options to any file and supply it via `-Dethereumj.conf.file=`, accepts several configs, separated by comma applied in provided order: `-Dethereumj.conf.file=,`
* programmatically by using `SystemProperties.CONFIG.override*()`
* programmatically using by overriding Spring `SystemProperties` beanNote that don’t need to put all the options to your custom config, just those you want to override.
# Special thanks
YourKit for providing us with their nice profiler absolutely for free.YourKit supports open source projects with its full-featured Java Profiler.
YourKit, LLC is the creator of YourKit Java Profiler
and YourKit .NET Profiler,
innovative and intelligent tools for profiling Java and .NET applications.![YourKit Logo](https://www.yourkit.com/images/yklogo.png)
# Contact
Chat with us via [Gitter](https://gitter.im/ethereum/ethereumj)# License
ethereumj is released under the [LGPL-V3 license](LICENSE).