Commit Graph
66 Commits
Author SHA1 Message Date
mmsqe 236ca33c53 imp(server): Add query-only mode flag for gRPC (#1360)
* add grpc only mode flag

* add change log

* add tmNode nil check

* only flag to modes

* fix close for query mode

* fix hint

* keep grpc-only & json-rpc-only

* rm space

* mv apiSrv close

* mv cpuProfileCleanup

* mv tmNode stop

* disable indexer on query only

which need tm client on start

* update nix

* revert json-rpc-only change
2022-10-19 11:47:34 +02:00
v-homsiandFreddy Caceres a21923f5ae imp(rpc) Add support for EVM RPC metrics (#1378)
* imp(rpc) Add support for EVM RPC metrics

- Support --metrics flag
- Add EVM rpc metrics server config

* Update as per PR feedback

Co-authored-by: Freddy Caceres <facs95@gmail.com>
2022-10-14 17:50:01 -05:00
yihuangandFreddy Caceres 491c3da7eb fix: index-eth-tx cmd fail on empty indexer db (#1362)
* fix: `index-eth-tx` cmd fail on empty indexer db

Solution:
- start from latest height is db is empty

* update gomod2nix

* Update CHANGELOG.md

Co-authored-by: Freddy Caceres <facs95@gmail.com>
2022-10-03 10:37:22 -05:00
yihuangandFederico Kunze Küllmer 65740193f9 imp(rpc,server): concurrent gRPC queries (#1352)
* Problem: grpc query is not run concurrently

Solution:
- Initiate the GRPCClient introduced in [sdk 0.46](https://github.com/cosmos/cosmos-sdk/pull/11234).

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update server/start.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* wrap error

* Update server/start.go

* more complete copy

* fix grpc crash

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-09-20 15:00:36 +02:00
yihuangandFreddy Caceres ca070e21ef test: add integration test for the rollback cmd (#1311)
* test the fixed rollback cmd

- check the rollback cmd works in integration tests

* Apply suggestions from code review

* upstream merged

* add changelog

Co-authored-by: Freddy Caceres <facs95@gmail.com>
2022-09-01 16:22:25 +02:00
Jacob Gadikian 524e25c038 chore: Gofumpt (#1298)
* fumpt

* golangci

* Update keeper_test.go

* Update keeper_test.go

* Update handler_test.go

* Update rpc_pending_test.go

* lll

* line length limits

* Update CHANGELOG.md
2022-08-26 10:30:55 +00:00
yihuang f9c74e239c deps: Update cosmos-sdk to v0.46.1 (#1300)
* Update cosmos-sdk to 0.46.1

* update gomod2nix.toml
2022-08-25 08:06:45 +02:00
77ed4aa754 feat!: Store eth tx index separately (#1121)
* Store eth tx index separately

Closes: #1075
Solution:
- run a optional indexer service
- adapt the json-rpc to the more efficient query

changelog

changelog

fix lint

fix backward compatibility

fix lint

timeout

better strconv

fix linter

fix package name

add cli command to index old tx

fix for loop

indexer cmd don't have access to local rpc

workaround exceed block gas limit situation

add unit tests for indexer

refactor

polish the indexer module

Update server/config/toml.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

improve comments

share code between GetTxByEthHash and GetTxByIndex

fix unit test

Update server/indexer.go

Co-authored-by: Freddy Caceres <facs95@gmail.com>

* Apply suggestions from code review

* test enable-indexer in integration test

* fix go lint

* address review suggestions

* fix linter

* address review suggestions

- test indexer in backend unit test
- add comments

* fix build

* fix test

* service name

Co-authored-by: Freddy Caceres <facs95@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-08-11 22:49:05 +02:00
Freddy Caceres 42abb259cb Add support for MaxOpenConnections (#1229) 2022-08-10 08:26:51 -04:00
yihuangandFederico Kunze Küllmer 7331cd2065 feat: support dynamic app db backend flag (#1226)
* support dynamic app db backend

* address pr reviews

* add comment

* Update server/start.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-08-05 15:01:20 +02:00
Freddy Caceres ebbffc685c change default maxGasWanted (#1208) 2022-07-28 19:14:46 +00:00
yihuang 29d3abcf09 !feat(deps): Upgrade cosmos-sdk to v0.46.0 (#1168)
* Reuse cosmos-sdk client library to create keyring

Extracted from https://github.com/evmos/ethermint/pull/1168
Cleanup cmd code for easier to migration to cosmos-sdk 0.46

* Update cosmos-sdk v0.46

prepare for implementing cosmos-sdk feemarket and tx prioritization

changelog

refactor cmd

use sdkmath

fix lint

fix unit tests

fix unit test genesis

fix unit tests

fix unit test env setup

fix unit tests

fix unit tests

register PrivKey impl

fix extension options

fix lint

fix unit tests

make HandlerOption.Validate private

gofumpt

fix msg response decoding

fix sim test

bump cosmos-sdk version

fix sim test

sdk 46

fix unit test

fix unit tests

update ibc-go
2022-07-28 15:43:49 +02:00
Federico Kunze Küllmer 73c9ea218e fix(rpc): fix panic on breaking EVM and feemarket params (#1188)
* release: v0.17.0 changelog (#1153)

* release: v0.17.0 changelog

* rm newline

* update link

* fix(rpc): fix panic on breaking EVM and feemarket params

* changelog

* fix gosec
2022-07-19 17:00:43 +02:00
Federico Kunze Küllmer 3b852f723e imp(rpc): restrict unprotected txs on the node RPC (#1143)
* imp(rpc): restrict unprotected txs on the node RPC

* lint

* send raw transaction

* c++
2022-06-22 12:50:36 +02:00
Federico Kunze Küllmer ec8e93b319 all: rename go module to evmos/ethermint (#1137) 2022-06-19 11:43:41 +02:00
yihuangandFederico Kunze Küllmer 5533beed71 fix(rpc, ante): Emit Ethereum tx hash in AnteHandler to support query failed transactions (#1062)
* Emit eth tx hash in ante handler to support query failed transactions

WIP: #1045
Solution:
- emit eth tx hash in ante handler
- modify rpc to use it

fix ante handler

support failed tx in receipt

add unit tests

need to patch cosmos-sdk to work

update cosmos-sdk to v0.45.x release branch

fix failed status

fix unit tests

add unit test cases

cleanup dead code

Apply suggestions from code review

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

fix lint

fix review suggestions

fix build

fix gas used of failed tx

add back the redundant events

* fix get tx by index

* add unit tests for events

* Update rpc/types/events.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* update comments

* refactoring

* Update rpc/namespaces/ethereum/eth/api.go

* fix lint

* Apply suggestions from code review

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-05-31 10:26:40 +00:00
yihuang a313008afc Add cli rollback command (#1086) 2022-05-18 07:28:44 +02:00
Federico Kunze Küllmer c25669c761 rpc: refactor rpc packages and backend to support cosmos namespace (#1070)
* rpc: refactor rpc packages and backend to support cosmos namespace

* changelog

* typo
2022-05-02 06:26:24 +00:00
yihuangandFederico Kunze Küllmer 0543a28941 rpc: make json-rpc API namespaces extensible (#1056)
* make jsonrpc api namespaces extensible

Closes: #1052, #1037

* Apply suggestions from code review

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-04-19 12:49:05 +00:00
Federico Kunze Küllmer 1e03c0c603 deps: bump SDK to v0.45.3 (#1046)
* release: v0.13.0 (#1030)

* release: v0.12.0 changelog

* changelog: v0.12.1 (#1019)

* evm: update empty hash check for storage state (#1016)

* v0.12.1: changelog

* changelog: v0.12.2 (#1022)

* changelog: v0.12.2

* fix

* fix

* update changelog

* deps: bump SDK to v0.45.3

* changelog

* fixes
2022-04-12 15:31:25 +02:00
yihuang 8bcdb2c0e5 make MaxTxGasWanted configurable (#1004) 2022-03-21 10:01:21 +01:00
crypto-facs 5360730d42 add enable unsafe cors flag (#995) 2022-03-15 20:59:31 +01:00
yihuangandFederico Kunze Küllmer 49afc0f90d fix: server should always use local rpc client (#988)
Closes: #987
Solution:
- use local rpc clint if json-rpc is enabled.

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-03-15 11:28:14 +01:00
yihuang dbe9f705cd rpc: add configurable timeouts to http server (#979)
* Add configurable timeouts to http server

Closes: #963

* add flags

* changelog

* fix toml
2022-03-09 08:31:51 +01:00
dependabot[bot]andFreddy Caceres f21592ebfe build(deps): bump github.com/ethereum/go-ethereum from 1.10.15 to 1.10.16 (#945)
* build(deps): bump github.com/ethereum/go-ethereum

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.15 to 1.10.16.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.15...v1.10.16)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* add extra param to config rules

* update changelog

* update comments

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Freddy Caceres <freddy.caceres@crypto.com>
2022-02-19 00:57:43 +00:00
yihuang dcd2891b73 imp: redirect go-ethereum's logs to cosmos logger (#948)
* redirect go-ethereum's logs to cosmos logger

Closes: #862

Map go-ethereum's log levels to cosmos ones:
trace -> debug
debug -> debug
info -> info
warn -> info
error -> error
crit -> error

* changelog

* Apply suggestions from code review

* Apply suggestions from code review
2022-02-19 01:49:34 +01:00
crypto-facsandFederico Kunze Küllmer 0a01cead67 server: add api.enable flag for Cosmos SDK API server (#908)
* add api.enable flag for Cosmos SDK Rest server

* update changelog

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2022-01-17 19:08:02 +01:00
yihuang aeb6aeb715 Problem: newPendingTransactions filter don't return ethereum tx hash (#900) 2022-01-13 13:12:57 +00:00
yihuangandFederico Kunze Küllmer ced5280571 fix: OOM when eth_getLogs response too large (#860)
* fix: OOM when eth_getLogs response too large

Closes: #858

- add limit to number of logs of filter response
- make block limit and log limit configurable

* return error if exceeds log limit

* Apply suggestions from code review

* parse from config

* read cli flags

* add to config template

* fix bloomFilter

* changelog

* add validation

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-12-29 22:47:25 +01:00
Emmanuel T OdekeandFederico Kunze Küllmer 8333765b27 x/evm/keeper: save 24B with Go in-condition variable idiom (#828)
* x/evm/keeper: save 24B with Go in-condition variable idiom

The prior code doubly invoked (*ethereum/go-ethereum/core/types.Transaction).To()
which is quite expensive, and firstly copies 20 bytes each time, then
that gets rounded up to the proper size class/pointer alignment so on
64-bit machines 20B -> 24B.

Isolating a benchmark for this code per issue #826 shows this saves
quite a bit of bytes and some nano seconds which all count up towards
the transactions per seconds being processed:

```shell
$ benchstat before.txt after.txt
name        old time/op    new time/op    delta
CopyAddr-8    38.4ns ± 3%    19.3ns ± 3%  -49.66%  (p=0.000 n=10+10)

name        old alloc/op   new alloc/op   delta
CopyAddr-8     48.0B ± 0%     24.0B ± 0%  -50.00%  (p=0.000 n=10+10)

name        old allocs/op  new allocs/op  delta
CopyAddr-8      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.000 n=10+10)
```

Fixes #826

* changelog

* lint

* Revert stray changes that were used in testing

* rm log

Co-authored-by: Federico Kunze Küllmer <federico.kunze94@gmail.com>
2021-12-14 00:51:36 +01:00
Federico Kunze Küllmer 5a491537ca tests: geth client wrapper (#774) 2021-11-30 10:16:40 +01:00
Daniel BurckhardtandFederico Kunze Küllmer 2d8be4e85b fix: gosec issues (#779)
* remove gosec warnigs with medium severity

* Improvement(Ethermint): Fix gosec vulnerabilities

* Improvement(Evmos): address pr comments

* Improvement(Ethermint): Fix flags test by using PersistentFlags() instead of Flags()

* Improvement(Ethermint): Fix return of defer function

* Improvement(Ethermint): Replace PersistentFlags with Flags

* Apply suggestions from code review

* Improvement(Ethermint): Use persisentFlags again and remove required attribute for chain id

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-11-25 15:12:57 +00:00
392d1dd8cf rpc: eth_feeHistory (#734)
* Problem: missing json rpc of eth_feeHistory #685

add oracle backend

space ready

structure ok

refactoring

return feehistory

data flow ok

basefee

set gas used ratio

computing reward

add testing

add gas used

prepare data

fill reward

increase coin

fixing api

add mac

add launch

gas used ratio ok

print element

reward workes

reward working

fix panic

value correct

remove debugging log

tidy up

tidy up

remove oracle

tidy up

fix handler crash

add unit test

tidy up

add limit check

reformat

fix lint

fix lint

fix lint

fix lint

Update rpc/ethereum/backend/feebackend.go

thanks

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Update rpc/ethereum/backend/feebackend.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Update rpc/ethereum/backend/feebackend.go

thanks

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Update rpc/ethereum/backend/feebackend.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

fix compile error

split lines

remove temporary string conversion

return error if gaslimit is 0

move OneFeeHistory to types

add comment

only err check

Update rpc/ethereum/backend/feebackend.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Update rpc/ethereum/backend/feebackend.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

tidy up

add feehistory-cap

* Apply suggestions from code review

* changelog

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <federico.kunze94@gmail.com>
2021-11-17 11:58:52 +00:00
d4621f3e82 fix: set EVM debug based on tracer config (#746)
* set debug based on tracer

* fix tests

* set default tracer

* remove debug from keeper

* remove unnecesary param

* remove unnecesary param

* Update x/evm/keeper/state_transition.go

* changelog

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <federico.kunze94@gmail.com>
2021-11-16 08:57:03 +00:00
dependabot[bot]andFederico Kunze 23a3362475 build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.11 (#676)
* build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.10

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.9 to 1.10.10.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.9...v1.10.10)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.10

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.9 to 1.10.10.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.9...v1.10.10)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.10

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.9 to 1.10.10.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.9...v1.10.10)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix

* rpc: RLP apis

* tx fee cap fix

* fix config

* fix test

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
2021-10-25 15:01:04 +00:00
Jongwhan LeeandFederico Kunze Küllmer f70e4c1253 rpc: eth_resend (#684)
* Problem: missing json rpc for eth_resend #675

add unit test

restore

Update server/start.go

thanks~

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

tidy up checkTxFee

change comments

* fix lint

* Apply suggestions from code review

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-10-20 19:14:39 +00:00
Devashish DixitandFederico Kunze Küllmer c7a2fb97c7 fix: limit total number of filters that can be created (#661)
* Problem: No way to limit total number of filters that can be created

Solution: Add a config parameter to set the total number of filters that can be created

* Add defer statement for releasing locks

* Change default value for filter cap to 200

* Changed data type of filter cap to int32

* Add changelog entry

* Update CHANGELOG.md

* Fix struct alignment

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-10-13 11:03:49 +00:00
Tomas Tauber 8e12d94359 rpc: fix ExpandHome restrictions bypass (#667)
`go-home` seems to be using environment variables first
2021-10-13 10:52:05 +00:00
davcryptoandFederico Kunze Küllmer e79a6ed6b2 rpc: support personal apis with different keyring backends (#591)
* UPDATE Unlock keyring on start

* ADD comment

* ADD validation

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-10-06 11:41:42 +00:00
Daniel Burckhardt 34c2593e43 rpc: restructure JSON-RPC directory and rename server config (#612)
* Restructure ethermint/rpc repo structure and change import statements

* Add #400 to changelog

* fix filepath in util and json_rpc

* Move #400  to unreleased section
2021-10-01 14:49:22 +00:00
Federico Kunze Küllmer 05d9b290a7 rpc, server: add TLS certificate for websocket (#600)
* rpc, server: add TLS certificate for websocket

* changelog
2021-09-28 13:33:54 +02:00
Ramiro CarluchoandHanchon ec7d8a37fd fix: homedir consistency (#561)
* fix export homedir

* Changelog updated

Co-authored-by: Hanchon <guillermo.paoletti@gmail.com>
2021-09-15 05:27:37 -03:00
davcrypto 5d6c4517f6 client, server: default keyring-backend os (#552) 2021-09-13 10:36:21 +00:00
Cuong Manh Le 397e862a1e server: add missing db.Close calls before returning (#541)
It's better to always close the db before exit, so we will be noticed
when any error happens. Otherwise, serious errors can silently happen,
e.g, corrupted db, pending write missing ...

Fixes #538
2021-09-09 05:05:26 -03:00
Federico Kunze Küllmer 26c5eabb18 all: linter (#532)
* add additional linters

* fixes

* rm action
2021-09-05 11:03:06 +00:00
Federico Kunze Küllmer 9ea2ce4b8f server: remove cors config fron JSON-RPC (#465) 2021-08-20 10:58:03 +00:00
d068f5b331 server: logger handler (#343)
* Problem: verbose logs display with FATAL option (fix #320)
add my script

increase amount for metamask

add run

amount ok

hide log

show info

my logger

hook log

revive eth log

tidy up

use suplog

log replace ok

removed suplog

tidy up

tidy up

fix compile

remove sh

tidy up

tidy up

* logger handler

* fix

* fix eth log override (#371)

remove redundant log

tidy up

* log test

* c++

Co-authored-by: jongwhan lee <jonghwan@crypto.com>
Co-authored-by: Jongwhan Lee <51560997+leejw51crypto@users.noreply.github.com>
2021-08-19 16:55:13 +00:00
Federico Kunze Küllmer 83c838330f rpc: configure gas cap (#457)
* rpc: configure gas cap

* c++

* rm old const

* docs
2021-08-18 14:11:51 +00:00
Federico Kunze Küllmer cc3b2ff8e9 evm, server: configurable tracer (#434)
* server: update server and enable configurable tracer

* config validation

* fix import cycle

* fix start

* update fields

* c++

* c++
2021-08-16 09:45:10 +00:00
crypto-facs 2bd107ee79 fix: set eth, web3 and net namespaces as default (#391) 2021-08-03 12:35:04 -04:00