# EthereumJ
**Repository Path**: liu-yong-123/EthereumJ
## Basic Information
- **Project Name**: EthereumJ
- **Description**: EthereumJ是Ethereum协议的纯java实现
- **Primary Language**: Java
- **License**: LGPL-3.0
- **Default Branch**: develop
- **Homepage**: https://www.oschina.net/p/ethereumj
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2025-02-26
- **Last Updated**: 2025-02-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Welcome to ethereumj
[](https://gitter.im/ethereum/ethereumj?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://travis-ci.org/ethereum/ethereumj)
[](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` bean
Note 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.

# Contact
Chat with us via [Gitter](https://gitter.im/ethereum/ethereumj)
# License
ethereumj is released under the [LGPL-V3 license](LICENSE).