Skip to content

Commit 282a086

Browse files
committed
Merge branch 'phase/beta1' into fix/InvalidJumpForDestinationsOverLimit
2 parents 5571b1a + c155855 commit 282a086

File tree

3 files changed

+170
-20
lines changed

3 files changed

+170
-20
lines changed

README.md

Lines changed: 99 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,125 @@
1-
# etc-client
1+
# mantis - Scala client for Ethereum Classic
22

3+
*Mantis* is the name given to the new Ethereum Classic client produced by the [Grothendieck Team](https://iohk.io/projects/ethereum-classic/).
4+
5+
### Status - Beta 1
6+
7+
Continuous Integration Build Status [![CircleCI](https://circleci.com/gh/input-output-hk/etc-client/tree/master.svg?style=svg)](https://circleci.com/gh/input-output-hk/etc-client/tree/master)
8+
9+
Unit Test Code Coverage Status [![Coverage Status](https://coveralls.io/repos/github/input-output-hk/etc-client/badge.svg?branch=master)](https://coveralls.io/github/input-output-hk/etc-client?branch=master)
10+
11+
This version of the code supports
312

4-
[![CircleCI](https://circleci.com/gh/input-output-hk/etc-client/tree/master.svg?style=svg)](https://circleci.com/gh/input-output-hk/etc-client/tree/master)
13+
- fast sync (download a recent state trie snapshot and all blocks, this is the default behaviour)
14+
- regular sync (download and execute every transaction in every block in the chain, this can be very slow)
15+
- bootstrap sync (download a database for *mantis* preloaded with a recent version of the block chain, recommended for testing)
16+
- JSON RPC API (useful for console and Mist integration)
17+
- Morden testnet and private network
18+
- `ethminer` miner integration (allows *mantis* to mine blocks with [ethminer](https://github.com/Genoil/cpp-ethereum))
19+
20+
This version has been tested on Windows 10, Linux and MacOS
21+
22+
For more details on configuration and functionality check out our [wiki](https://github.com/input-output-hk/etc-client/wiki)
523

6-
[![Coverage Status](https://coveralls.io/repos/github/input-output-hk/etc-client/badge.svg?branch=master)](https://coveralls.io/github/input-output-hk/etc-client?branch=master)
24+
### Download the client and bootstrap files
725

26+
The latest release can be downloaded from [here](https://github.com/input-output-hk/etc-client/releases)
827

9-
## A Scala based client for Ethereum Classic
28+
The bootstrap database files can be downloaded from [here](https://github.com/input-output-hk/etc-client/wiki/Bootstrap-Database-Download-Links)
29+
30+
### Building the client
1031

11-
### Milestone 3 & 4 - JSON RPC and Miner Integration
32+
#### Prerequisites to build
1233

13-
**This version of the code supports almost all the functionality for a first release.**
34+
- JDK 1.8 (download from [java.com](http://www.java.com))
35+
- sbt ([download sbt](http://www.scala-sbt.org/download.html))
1436

15-
For the curious ...
37+
#### Build the client
1638

17-
In order to build the client checkout the code base and then type
39+
As an alternative to downloading the client build the client from source.
40+
Checkout this repository from github and then type
1841

1942
`sbt dist`
2043

2144
in the root of the project.
2245

23-
This creates a distribution zip. Unzip that file to create a folder structure starting with
46+
This creates a distribution zip.
47+
48+
### Install and run the client
49+
50+
#### Prerequisites to run the client
51+
52+
- JVM 1.8 (download from [java.com](http://www.java.com))
53+
54+
Note that on windows a 64 bit version of the JVM is required. This can be checked by using `java -version`. Check for `64-Bit`
55+
56+
```
57+
java version "1.8.0_131"
58+
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
59+
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
60+
```
61+
62+
- the download of the Ethereum Classic chain will take up around 15G of disk space
63+
64+
Note that a slow disk will slow the chain dowload, an SSD with 25G free space is recommended
65+
66+
#### Install the client
67+
68+
Unzip that file to create a folder structure starting with
2469

2570
```
26-
etc-client-0.1
71+
mantis-0.3-cli-beta
2772
```
2873

29-
From there run
74+
### Run the client on Linux and MacOS
75+
76+
In a terminal from the root of the installation run
3077

3178
```
32-
./bin/etc-client
79+
./bin/mantis
3380
```
81+
The client runs in the foreground, it is recommended to use a session manager like `tmux` to prevent the client exiting when the terminal is shut down.
3482

35-
The client attempts to contact the remote peers configured in the configuration file and begin a
36-
`fast-sync` download. The [configuration file](https://github.com/input-output-hk/etc-client/blob/master/src/main/resources/application.conf)
37-
settings can all be overriden in
38-
39-
`./config/production.conf`
83+
Within a minute the chain begins downloading to a folder in the `$HOME` folder called `.mantis`
84+
85+
### Run the client on Windows
4086

41-
The client has been run on Windows 8 and seems to work however it has not been extensively tested.
42-
43-
The [next milestone](https://iohk.io/projects/ethereum-classic/#roadmap) is our early Beta release!!
87+
Open a command terminal and from the root of the installation run
4488

89+
```
90+
bin\mantis.bat
91+
```
92+
Within a minute the chain begins downloading to a folder in the `%HOME%` folder called `.mantis`
93+
94+
#### Configuration
95+
96+
Using the 'out of the box' settings the client attempts to contact the remote peers configured in the configuration file and begin a
97+
`fast-sync` download. Time taken to complete `fast-sync` varies significantly depending on the quality of the network connection and the quality of the hardware.
4598

99+
A faster option for creating a node that is synced with the network is to use the bootstrap download.
100+
101+
All options can be configured in the files located in the `conf` folder.
102+
103+
For example to change the default datadir to `/mydata` edit the `storage.conf` file and find the lines
104+
105+
```
106+
# Base directory where all the data used by the node is stored, including blockchain data and private keys
107+
# datadir = ${user.home}"/.mantis"
108+
```
109+
Uncomment and edit `datadir` to read
110+
```
111+
# Base directory where all the data used by the node is stored, including blockchain data and private keys
112+
datadir = "/mydata"
113+
```
114+
115+
For more details on configuration and functionality check out our [wiki](https://github.com/input-output-hk/etc-client/wiki)
116+
117+
### Uninstall
118+
119+
To remove the mantis client simple delete the folder the distribution (zip) file was unzipped to and delete the `datadir`. The default datadir folder is `$HOME/.mantis`
120+
121+
### Feedback
122+
123+
Feedback gratefully received through the Ethereum Classic Slack (@carlo) although please check out the list of known issues first in the 'RELEASE' file located in the root of the installation.
124+
46125

src/universal/LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2016 Input Output
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

src/universal/RELEASE

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
Introduction
2+
3+
This is the early beta 1 release of the mantis scala client for the Ethereum Classic network.
4+
5+
This release is fundamentally a command line release allowing fast syncing of the Ethereum Classic network and processing of new transactions.
6+
7+
For a more detailed description of the functionality and configuration options see https://github.com/input-output-hk/etc-client/wiki
8+
9+
Known Issues
10+
11+
EC-269 JSON RPC network_version returns a value of 1 for morden network, correct version is 2
12+
13+
EC-270 personal_importRawKey allows the same key to be imported several times
14+
15+
EC-282 download gets stuck in a loop when downloading block headers from a single peer which doesn't have those block headers
16+
17+
Workaround - restart the client to allow another peer to be chosen
18+
19+
EC-174 Releases not signed. Potential security issue whereby neither our releases nor the components used to build our releases are signed as verified.
20+
21+
EC-283 Keyfiles exported from MyEtherwallet do not work
22+
23+
Workaround - edit the exported file and change all json keys to lower case (e.g. "Crypto" -> "crypto")
24+
25+
EC-278 Killing the client during fast download *might* result in missing block header
26+
27+
EC-268 Pending transactions may not get forwarded to new peers. A connection made to a peer when a transaction is already pending will not receive the pending transaction.
28+
29+
Workaround - resend the transaction when the client has peers
30+
31+
EC-265 Spurious "Could not open table" database error during regular sync.
32+
Occasionally during regular sync the client will crash with an error saying it cannot locate a LeveLDB database file.
33+
34+
Workaround - clear out datadir and restart sync
35+
36+
EC-254 Full discovery 'kademlia' protocol not implemented. There are no known implications.
37+
38+
EC-244 etcstats.net data for mantis always seems one block behind
39+
40+
EC-167 Trying to run "regular sync" after an incomplete "fast sync" results in "Node not found" exception
41+
42+
Workaround - clear out datadir and restart sync
43+
44+
Feedback
45+
46+
Feedback gratefully received through the Ethereum Classic Slack (@carlo)
47+
48+
49+
50+

0 commit comments

Comments
 (0)