Release: 1.0.0-RC1

Comments

That version is first of the RC series for Frontier network.

Ethereum(J) is the library that can be embedded in any Java/Scala project and to provide full support for Ethereum protocol and sub services.a

Getting Started

To get started and include a java library into your project all you need is to use your favorite build system, here is Maven and Gradlle snippet:

Maven Snippetlink
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

   <repositories>
     <repository>
       <id>oss.jfrog.org</id>
       <name>Repository from Bintray</name>
       <url>http://dl.bintray.com/ethereum/maven</url>
     </repository>
   </repositories>


   <dependency>
     <groupId>org.ethereum</groupId>
     <artifactId>ethereumj-core</artifactId>
     <version>1.0.0-RC1</version>
     <type>zip</type>
   </dependency>

or

Gradle Snippetlink
1
2
3
4
5
6
7
   repositories {
     maven {
      url "http://dl.bintray.com/ethereum/maven"
     }
    }

   compile ("org.ethereum:ethereumj-core:1.0.0-RC1")

Also we have very simple starter example - just do: git clone https://github.com/ether-camp/ethereumj.starter and you are ready to develop your first Ethereum application. Also it can be usefull to browse the code and study how ethereumj library is weaved into the application: https://github.com/ether-camp/ethereumj.starter

So, what is in:

RLPx network layer for channel protection

Between each connected peers on the Ethereum network there is a security mechanism called RLPx - designed to provide an extremly protected channel by sophisticated encryption and decryption algorithm for all of the underlying traffic.

  • org.ethereum.net.rlpx - package providing full implementation for the RLPx protocol.
Peer Discovery

The peer discovery is Ethereum way to manage network topology and to provide the peer with best view of the network. Each peer tries over time to find best neighbours and to exchange information about sub protocols with them. That is beeing achieved by managing statistic table over the found peers by constant ongoing process.

  • org.ethereum.net.rlpx.discover - package providing full implementation for peer disovery protocol.
Multi Peer Blockchain Syncronization

The Ethereum protocol supports fast block chain download - using bittorent way of downloading multiple blocks simultaneously from different channels.

  • org.ethereum.net.eth - package providing full support of Eth subprotocol and multipeer blockschain synchronization
Full Ethereum VM Support

The heart of the Ethereum consensus protocol is the virtual machine. The virtual machines is running the contracts algorithms exactly the same way on all the peers, tested and compatible with all the implementations.

  • org.ethereum.vm
  • org.ethereum.core - packages providing full Ethereum virtual machine and consensys mechanism implementation
Ethereum Repository Updates and Manipulations

The data structure that supports consensys validation algorithm, and eventually holding the full list of ethereum affairs is called Ethereum Repository. It makes masive use for Ethereum Trie data structure. More info about that magic Trie can be study here

  • org.ethereum.repository - package providing full Ethereum repository implementation
Testing Notes

The EthereumJ librarey was tested on more than 830k blocks from POC-9 Olympics network and more than 7 million transactions, with final result of full consensus achieved.

The library supports 99% of compatabiltiy kit test cases. We support almost all test cases defined by Ethereum development group, the several adge cases that we formally do not support, which we decided to exclude at that stage for performance optimization.

More Code Samples

Another good place get started is to go and try code samples from our samples repository repository you can run them right away after fetching them from the git.

Comments