Skip to content

Commit 2b9fec2

Browse files
committed
Merge branch 'phase/3/blockSync'
2 parents b122100 + d67fe78 commit 2b9fec2

File tree

172 files changed

+25634
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+25634
-20
lines changed

.gitignore

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
1-
*.class
2-
*.log
3-
4-
# sbt specific
5-
.cache
6-
.history
7-
.lib/
8-
dist/*
1+
.idea/
92
target/
10-
lib_managed/
11-
src_managed/
3+
dist/*
124
project/boot/
135
project/plugins/project/
6+
.ensime
7+
.ensime_cache/
8+
nodeId.keys
9+
10+
# intellij scala worksheet
11+
*.sc
1412

15-
# Scala-IDE specific
16-
.scala_dependencies
17-
.worksheet
13+
*.log

.travis.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ branches:
77
only:
88
- master
99
- feature/crypto
10+
- feature/rlpRefactor
11+
- phase/2/txHashValidation
12+
- feature/messageVersioning
13+
- feature/coverage
1014
script:
11-
- sbt test
12-
15+
- sbt clean coverage test
16+
after_success:
17+
- sbt coverageReport coveralls

README.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,46 @@
11
# etc-client
22

3-
[![Build Status](https://travis-ci.org/input-output-hk/etc-client.svg?branch=master)](https://travis-ci.org/input-output-hk/etc-client)
43

5-
A Scala based client for Ethereum Classic.
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)
5+
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)
7+
8+
9+
## A Scala based client for Ethereum Classic
10+
11+
### Milestone 1 - blockSync
12+
13+
**This version of the code only supports downloading the blockchain from remote peers.**
14+
15+
For the curious ...
16+
17+
In order to build the client checkout the code base and then type
18+
19+
`sbt dist`
20+
21+
in the root of the project.
22+
23+
This creates a distribution zip. Unzip that file to create a folder structure starting with
24+
25+
```
26+
etc-client-0.1
27+
```
28+
29+
From there run
30+
31+
```
32+
./bin/etc-client
33+
```
34+
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/reference.conf)
37+
settings can all be overriden in
38+
39+
`./config/application.conf`
40+
41+
The client has not been run on Windows.
42+
43+
The [next milestone](https://iohk.io/projects/ethereum-classic/#roadmap) involves executing the transactions with our new Ethereum Virtual Machine!
44+
45+
46+

build.sbt

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,44 @@
1-
name := "etc-client"
1+
enablePlugins(JavaAppPackaging)
22

3-
version := "0.1"
3+
val commonSettings = Seq(
4+
name := "etc-client",
5+
version := "0.1",
6+
scalaVersion := "2.12.1"
7+
)
48

5-
scalaVersion := "2.11.8"
9+
val dep = {
10+
val akkaVersion = "2.4.17"
11+
val akkaHttpVersion = "10.0.3"
612

13+
Seq(
14+
"com.typesafe.akka" %% "akka-actor" % akkaVersion,
15+
"com.typesafe.akka" %% "akka-agent" % akkaVersion,
16+
"com.typesafe.akka" %% "akka-slf4j" % akkaVersion,
17+
"com.typesafe.akka" %% "akka-testkit" % akkaVersion,
18+
"com.typesafe.akka" %% "akka-http" % akkaHttpVersion,
19+
"com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpVersion,
20+
"com.typesafe.akka" %% "akka-http-testkit" % akkaHttpVersion % "it,test",
21+
"io.suzaku" %% "boopickle" % "1.2.6",
22+
"org.consensusresearch" %% "scrypto" % "1.2.0-RC3",
23+
"com.madgag.spongycastle" % "core" % "1.54.0.0",
24+
"org.iq80.leveldb" % "leveldb" % "0.9",
25+
"org.scorexfoundation" %% "iodb" % "0.2.0",
26+
"ch.qos.logback" % "logback-classic" % "1.1.9",
27+
"org.scalatest" %% "scalatest" % "3.0.1" % "it,test",
28+
"org.scalacheck" %% "scalacheck" % "1.13.4" % "it,test",
29+
"com.miguno.akka" %% "akka-mock-scheduler" % "0.5.1" % "it,test"
30+
)
31+
}
732

33+
val Integration = config("it") extend Test
34+
35+
val root = project.in(file("."))
36+
.configs(Integration)
37+
.settings(commonSettings: _*)
38+
.settings(libraryDependencies ++= dep)
39+
.settings(inConfig(Integration)(Defaults.testSettings) : _*)
40+
41+
scalacOptions := Seq("-unchecked", "-deprecation", "-feature")
42+
43+
(scalastyleConfig in Test) := baseDirectory.value / "scalastyle-test-config.xml"
44+
scalastyleSources in Test ++= {(unmanagedSourceDirectories in Integration).value}

project/build.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sbt.version = 0.13.13

project/plugins.sbt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
logLevel := sbt.Level.Warn
2+
addSbtPlugin("org.scoverage" %% "sbt-scoverage" % "1.5.0")
3+
addSbtPlugin("org.scoverage" %% "sbt-coveralls" % "1.1.0")
4+
addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.8.0")
5+
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.6")
6+
addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "latest.release")

scalastyle-config.xml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<scalastyle>
2+
<name>Scalastyle standard configuration</name>
3+
<check level="error" class="org.scalastyle.file.FileTabChecker" enabled="true"></check>
4+
<check level="error" class="org.scalastyle.file.FileLengthChecker" enabled="true">
5+
<parameters>
6+
<parameter name="maxFileLength"><![CDATA[800]]></parameter>
7+
</parameters>
8+
</check>
9+
<check level="error" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="true"></check>
10+
<check level="error" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true"></check>
11+
<check level="error" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"></check>
12+
<check level="error" class="org.scalastyle.file.FileLineLengthChecker" enabled="true">
13+
<parameters>
14+
<parameter name="maxLineLength"><![CDATA[160]]></parameter>
15+
<parameter name="tabSize"><![CDATA[4]]></parameter>
16+
</parameters>
17+
</check>
18+
<check level="error" class="org.scalastyle.scalariform.ClassNamesChecker" enabled="true">
19+
<parameters>
20+
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
21+
</parameters>
22+
</check>
23+
<check level="error" class="org.scalastyle.scalariform.ObjectNamesChecker" enabled="true">
24+
<parameters>
25+
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
26+
</parameters>
27+
</check>
28+
<check level="error" class="org.scalastyle.scalariform.PackageObjectNamesChecker" enabled="true">
29+
<parameters>
30+
<parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter>
31+
</parameters>
32+
</check>
33+
<check level="error" class="org.scalastyle.scalariform.EqualsHashCodeChecker" enabled="true"></check>
34+
<check level="error" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true">
35+
<parameters>
36+
<parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter>
37+
</parameters>
38+
</check>
39+
<check level="error" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="true">
40+
<parameters>
41+
<parameter name="maxParameters"><![CDATA[8]]></parameter>
42+
</parameters>
43+
</check>
44+
<check level="error" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="true">
45+
<parameters>
46+
<parameter name="ignore"><![CDATA[-1,0,1,2,3,4,5,6,7,8,9,10,16,32,256,0x00,0x01,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x10,0xFF]]></parameter>
47+
</parameters>
48+
</check>
49+
<check level="error" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker"
50+
enabled="true"></check>
51+
<check level="error" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker"
52+
enabled="true"></check>
53+
<check level="error" class="org.scalastyle.scalariform.ReturnChecker" enabled="true"></check>
54+
<check level="error" class="org.scalastyle.scalariform.NullChecker" enabled="false"></check>
55+
<check level="error" class="org.scalastyle.scalariform.NoCloneChecker" enabled="true"></check>
56+
<check level="error" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"></check>
57+
<check level="error" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"></check>
58+
<check level="error" class="org.scalastyle.scalariform.StructuralTypeChecker" enabled="true"></check>
59+
<check level="error" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="true">
60+
<parameters>
61+
<parameter name="maxTypes"><![CDATA[40]]></parameter>
62+
</parameters>
63+
</check>
64+
<check level="error" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="true">
65+
<parameters>
66+
<parameter name="maximum"><![CDATA[16]]></parameter>
67+
</parameters>
68+
</check>
69+
<check level="error" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="true"></check>
70+
<check level="error" class="org.scalastyle.scalariform.IfBraceChecker" enabled="false">
71+
<parameters>
72+
<parameter name="singleLineAllowed"><![CDATA[true]]></parameter>
73+
<parameter name="doubleLineAllowed"><![CDATA[false]]></parameter>
74+
</parameters>
75+
</check>
76+
<check level="error" class="org.scalastyle.scalariform.MethodLengthChecker" enabled="true">
77+
<parameters>
78+
<parameter name="maxLength"><![CDATA[50]]></parameter>
79+
</parameters>
80+
</check>
81+
<check level="error" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="true">
82+
<parameters>
83+
<parameter name="maxMethods"><![CDATA[30]]></parameter>
84+
</parameters>
85+
</check>
86+
<check level="error" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="true"></check>
87+
<check level="error" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"></check>
88+
<check level="error" class="org.scalastyle.file.NoNewLineAtEofChecker" enabled="false"></check>
89+
<check level="error" class="org.scalastyle.scalariform.TodoCommentChecker" enabled="false">
90+
<parameters>
91+
<parameter name="words">TODO|FIXME|todo|fixme|bug|BUG</parameter>
92+
</parameters>
93+
</check>
94+
<check level="error" class="org.scalastyle.file.RegexChecker" enabled="true">
95+
<parameters>
96+
<parameter name="regex"><![CDATA[println]]></parameter>
97+
</parameters>
98+
</check>
99+
</scalastyle>

scalastyle-test-config.xml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<!--Differences with scalastyle-config.xml-->
2+
<!--MagicNumberChecker disabled-->
3+
<!--FileLineLengthChecker disabled-->
4+
5+
<scalastyle>
6+
<name>Scalastyle standard configuration</name>
7+
<check level="error" class="org.scalastyle.file.FileTabChecker" enabled="true"></check>
8+
<check level="error" class="org.scalastyle.file.FileLengthChecker" enabled="true">
9+
<parameters>
10+
<parameter name="maxFileLength"><![CDATA[800]]></parameter>
11+
</parameters>
12+
</check>
13+
<check level="error" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="true"></check>
14+
<check level="error" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true"></check>
15+
<check level="error" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"></check>
16+
<check level="error" class="org.scalastyle.file.FileLineLengthChecker" enabled="false">
17+
<parameters>
18+
<parameter name="maxLineLength"><![CDATA[160]]></parameter>
19+
<parameter name="tabSize"><![CDATA[4]]></parameter>
20+
</parameters>
21+
</check>
22+
<check level="error" class="org.scalastyle.scalariform.ClassNamesChecker" enabled="true">
23+
<parameters>
24+
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
25+
</parameters>
26+
</check>
27+
<check level="error" class="org.scalastyle.scalariform.ObjectNamesChecker" enabled="true">
28+
<parameters>
29+
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
30+
</parameters>
31+
</check>
32+
<check level="error" class="org.scalastyle.scalariform.PackageObjectNamesChecker" enabled="true">
33+
<parameters>
34+
<parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter>
35+
</parameters>
36+
</check>
37+
<check level="error" class="org.scalastyle.scalariform.EqualsHashCodeChecker" enabled="true"></check>
38+
<check level="error" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true">
39+
<parameters>
40+
<parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter>
41+
</parameters>
42+
</check>
43+
<check level="error" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="true">
44+
<parameters>
45+
<parameter name="maxParameters"><![CDATA[8]]></parameter>
46+
</parameters>
47+
</check>
48+
<check level="error" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="false">
49+
<parameters>
50+
<parameter name="ignore">
51+
<![CDATA[-1,0,1,2,3,4,5,6,7,8,9,10,16,32,256,0x00,0x01,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x10]]></parameter>
52+
</parameters>
53+
</check>
54+
<check level="error" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker"
55+
enabled="true"></check>
56+
<check level="error" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker"
57+
enabled="true"></check>
58+
<check level="error" class="org.scalastyle.scalariform.ReturnChecker" enabled="true"></check>
59+
<check level="error" class="org.scalastyle.scalariform.NullChecker" enabled="false"></check>
60+
<check level="error" class="org.scalastyle.scalariform.NoCloneChecker" enabled="true"></check>
61+
<check level="error" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"></check>
62+
<check level="error" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"></check>
63+
<check level="error" class="org.scalastyle.scalariform.StructuralTypeChecker" enabled="true"></check>
64+
<check level="error" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="true">
65+
<parameters>
66+
<parameter name="maxTypes"><![CDATA[30]]></parameter>
67+
</parameters>
68+
</check>
69+
<check level="error" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="true">
70+
<parameters>
71+
<parameter name="maximum"><![CDATA[16]]></parameter>
72+
</parameters>
73+
</check>
74+
<check level="error" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="true"></check>
75+
<check level="error" class="org.scalastyle.scalariform.IfBraceChecker" enabled="false">
76+
<parameters>
77+
<parameter name="singleLineAllowed"><![CDATA[true]]></parameter>
78+
<parameter name="doubleLineAllowed"><![CDATA[false]]></parameter>
79+
</parameters>
80+
</check>
81+
<check level="error" class="org.scalastyle.scalariform.MethodLengthChecker" enabled="true">
82+
<parameters>
83+
<parameter name="maxLength"><![CDATA[50]]></parameter>
84+
</parameters>
85+
</check>
86+
<check level="error" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="true">
87+
<parameters>
88+
<parameter name="maxMethods"><![CDATA[30]]></parameter>
89+
</parameters>
90+
</check>
91+
<check level="error" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="true"></check>
92+
<check level="error" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"></check>
93+
<check level="error" class="org.scalastyle.file.NoNewLineAtEofChecker" enabled="false"></check>
94+
<check level="error" class="org.scalastyle.scalariform.TodoCommentChecker" enabled="false">
95+
<parameters>
96+
<parameter name="words">TODO|FIXME|todo|fixme|bug|BUG</parameter>
97+
</parameters>
98+
</check>
99+
<check level="error" class="org.scalastyle.file.RegexChecker" enabled="true">
100+
<parameters>
101+
<parameter name="regex"><![CDATA[println]]></parameter>
102+
</parameters>
103+
</check>
104+
</scalastyle>

0 commit comments

Comments
 (0)