Skip to content
This repository has been archived by the owner on Oct 7, 2020. It is now read-only.

Release/v0.5.0 - master #328

Merged
merged 36 commits into from
Oct 22, 2017
Merged

Release/v0.5.0 - master #328

merged 36 commits into from
Oct 22, 2017

Conversation

adrianbrink
Copy link

No description provided.

Adrian Brink and others added 30 commits July 19, 2017 13:09
Merge and squash Unstable (minus #222 and #217) to Unstable2
Updates #195

Update how to use godoc, by first showing how to spin up godoc
and then how to visit the interactive documentation
Signed-off-by: Adrian Brink <adrian@brink-holdings.com>

In the future all PRs need to come with an updated changelog.
Merge unstable into develop
There are public functions:
- NewEthConfig
- NewNodeConfig

that both pass in a nil *eth.Config and *node.Config respectively.
Unfortunately those variables are nil and when invoked panic with
a nil dereference. Fix this with a proper allocation and
include tests to ensure that we never regress nor panic.
* Update dependencies and go-ethereum fork

* Add updates to changelog
* docs: connecting to testnets

* docs: format rst

* add docs/architecture/ibc

* docs: fmt rst
* Add travis.yml file for OSX and go1.9

* Move travis.yml to .travis.yml

* Add codecov from travis
* Add unsafe reset all command

* Handle errors during reset_all
Fixes #284.
Fixes #288.

* Act like `tendermint init` so that if we don't have
a genesis-path, one can be created for us.
* Also automate moving the content of
$GOPATH/src/github.com/tendermint/ethermint/setup/keystore
into
$HOME/.ethermint/keystore.

After automating the above steps, `ethermint init`
should be one step e.g
```shell
$ ethermint --datadir ~/.ethermint init
```
instead of the formerly tedious
```shell
$ cd $GOPATH/src/github.com/tendermint/ethermint
$ ethermint --datadir ~/.ethermint init setup/genesis.json
$ cp -r setup/keystore ~/.ethermint
```

* To further ease the use of ethermint, cooperative tendermint
operations can now be started by ethermint, as subprocesses namely:
- init
- node
explicitly with --with-tendermint
This thereby cuts out typing for users so that invoking ethermint
can now be folded into 2 commands.

`--with-tendermint` if invoked invoked, with `ethermint init` and
`ethermint` which will then invoke
```shell
tendermint init --home ~/.ethermint/tendermint
```

and

```bash
tendermint --home ~/.ethermint/tendermint node
```

respectively.

The purpose of explicit behavior is so that the user consciously
turns on Tendermint since we might have other apps and testnets
running implicitly. This was a great suggestion from @zramsay.

This thereby simplifies ethermint invocation for users, so that it
can now be folded into 2 commands.
This change enables us to run
'make test_integrations' which tests our changes
against a live ethermint network, where web3
tests are run. This ensure that nothing
accidentally breaks the functionality of ethereum
while still passing all the ordinary go tests.

'make test_integrations' spins up docker
containers to form a live network of
communicating ethermint nodes. Then it runs
all integration tests against this live
network and reports back the results.

There should not be any side effects to the
functionality of ethermint.
* linting: address some checks

* add nolint warnings; remove duplicate megacheck from Makefile

* add metalinter to CI, closes #196

* Run metalinter on travis

* metalinter: don't run on CI yet
This document explains the ideal Ethermint
architecture. The current design is similar
but less modular. From this starting point,
we will start an incremental refactor until
we are at this design. The design itself is
not perfect and will change over time.

By splitting Ethermint up this way, we have
the ability to add custom RPC endpoints. This
allows the addition of special IBC endpoints
which will be needed for IBC.

This adds a description of a light client
for ethermint which leverages the properties
of tendermint to provide a fully secure EVM
light client. A light client can keep of with
the state and doesn't have to trust a single
node. Furthermore, it can submit transactions.

I've added a paragraph that explains how
accounts are managed by an ethermint instance.
This is the last missing piece as now ethermint
provides all the functionality in a coherent
way that we need it to.

* Extend architecture with IBC and Rewards

* Reason why we need this redesign

* Explanation for accounts

* Add time estimate

* Simplify future design

* More IBC explanations

* Light client explanation
* ibc

* docs: add a link

* docs: small improvements to intro

* docs: add install.rst to getting-started
Adrian Brink and others added 6 commits October 22, 2017 14:54
* Add stateful checkTx

* Tests for stateful checktx

* Mirror validateTx logic from tx_pool.go.
Move checkTxState updates

* Move transaction size limit into const.
Remove uneeded fmt import

* Enable nonces to be strictly increasing

* Extract all directory setup into functional
style tests

This change removes the duplicated code to
setup temporary directories for each test.
Now all code is grouped in the setupTestCase()
function instead of being littered around
all the test cases. There are no side effects
of this.

* Refactor app_test.go to remove the
duplicated code

The tests where getting unwieldy since they
duplicated a lot of code. With the new setup
it is much easier to create new test cases,
since the setup and tear-down are handled nicely.

There are no side effects.

* Add test case for non-incremental nonces

This test case checks that transactions have
to have strictly increasing nonces. It tests
by sending a transaction with nonce 0, and then
tries to send a transaction with nonce 2. The
second transaction should fail, since it is not
strictly increasing.

Some of the error descriptions have changed,
but no one should be matching for a specific
error string.

* Refactor tests and RPC library

This change is the last refactor of the app_tests
and was needed for clarity.

Also, it upgrades everything to use a typed
RPC client instead of passing strings to
get to raw endpoints.

* Add check whether it's contract creation

* Update Changelog

Signed-off-by: Adrian Brink <adrian@brink-holdings.com>
* docs: deduplicate files & harmonize presentation

* docs: do lists properly & other nits
* linter: run it during CI

* Break import cycle in ethereum package

* Disable all linters and enable only unused
@adrianbrink adrianbrink merged commit 2c31cc9 into master Oct 22, 2017
@adrianbrink adrianbrink deleted the release/v0.5.0 branch October 22, 2017 13:39
i-norden pushed a commit to vulcanize/old_ethermint that referenced this pull request Aug 31, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants