Commit Graph

163 Commits

Author SHA1 Message Date
Giulio rebuffo
32375df7af made changeSet an helper type (#314)
* made changeSet an helper type

* added comment

* removed dbutils.Add

* remove common.CopyBytes from walk

* fixes
2020-01-15 20:51:10 +00:00
b00ris
df8798b94b
Thin history for storage (#324)
* save state

* save state

* fmt

* add check to test

* move incarnation length to common

* remove line

* fix lint
2020-01-15 17:55:43 +03:00
b00ris
d8f0bb169a
fix thin_history tests (#313)
* fix thin_history tests

* Fix for large hST

Co-authored-by: ledgerwatch <akhounov@gmail.com>
2020-01-15 17:04:16 +03:00
Alex Sharov
fc7291ec34
Use local db in analytics (#308)
* Use local db in analytics (#308)
* pool of encoders
* incr and decr funcs
2020-01-15 19:47:13 +07:00
Alex Sharov
d2e1a1279b
reconnect after server gone (#296)
* reconnect after server gone
2020-01-09 09:46:29 +07:00
Alex Sharov
438476d1ba
Serialization bench (#288)
* bench shows that need to pass pointer to []byte when use encoder.Encode()
2020-01-08 13:09:07 +07:00
b00ris
2ece0e2277
remove gets (#297) 2020-01-07 13:41:33 +03:00
Alex Sharov
33308dd5c2
State analytic less memory and checkpoints (#299)
* added prefix tree to analyses to reduce memory usage
* make new partition every day
* merge concepts of reporter and snapshot
* tests for .FirstKey() and .NextKey()
2020-01-07 09:27:19 +07:00
Alex Sharov
8874f64445
remote_bolt.CmdGetAsOf (#289)
* remote_bolt.CmdGetAsOf
2020-01-06 21:33:25 +07:00
Alex Sharov
85009dabe6
return error from .First() and .Next() methods of RemoteDb (#292)
* return error from .First() and .Next() methods of RemoteDb
* re-run CI
2020-01-06 18:38:21 +07:00
Alex Sharov
f3d3e861dd
fix reusing pointer to memory inside boltdb pages (#286)
* fix reusing pointer to memory inside boltdb pages

* fix shadow variables and unhandled errors
2019-12-24 17:37:51 +06:00
Alex Sharov
805f9aa501
benchmark rpc daemon
* tracing, write bench1() result into files

* add context to computeTxEnv, remote_db cursor lazy cache allocation,

* more results

* added

* added

* added

* more info

* make linter happy

* exit from tracing gorutines

* remove unused param

* re-run CI

* re-run CI

* remove concept txHandle

* batch cursor in reports

* remove debug output

* fix shadow variables and unhandled errors
2019-12-22 21:10:46 +06:00
b00ris
bcee4845dc
Thin history (#272)
* save state

* remove repair

* save state

* remove emptydb check

* save state

* add walkAsOf test

* add WalkAsOf and MultiWalkAsOf tests

* deployed contracts counter

* reference counter for contract code

* drop storage root&contract hash for changesets

* start incarnation is 1(save state)

* fix ReorgOverSelfDestruct test

* hack fix TestReorgOverSelfDestruct

* test benchmark

* cleanup

* remove useless debug

* remove print trie

* return remove subtrie call  to updateTrieRoot

* save state

* add mutation test

* remove useless test

* fix

* added mutation commit test

* rename experiment to thin history

* thin history mutation commit test

* fix ethdb tests

* getAsOf test

* add test&fix history index

* fix test

* make test for index search

* compute trie root incarnation fix

* tests fixes

* done job in case of panic

* fix lint

* fix&test for bad incarnation

* fix initial incarnation for genesis

* fix lint

* fix changeset test

* fix storage ranges test

* fix lint

* move set incarnation to create contract

* add comment

Co-authored-by: ledgerwatch <akhounov@gmail.com>
Co-authored-by: Evgeny Danilenko <6655321@bk.ru>
2019-12-20 15:25:40 +03:00
ledgerwatch
3a2111ead2
[WIP] Switch to boltDB with Yield, and yield boltdb transaction regularly to not block memory map resizing (#239)
* Switch to boltDB with Yield

Yield boltdb transaction regularly to not block memory map resizing

* Add test for Yield

* Refer to tagged version of bolt
2019-12-19 11:05:16 +00:00
alex.sharov
7dc9448252 make linter happy 2019-12-16 20:55:10 +06:00
alex.sharov
4808603a4d better ticker 2019-12-16 20:55:10 +06:00
alex.sharov
e6b33b376f make ci happy 2019-12-16 20:55:10 +06:00
alex.sharov
3b0c383a90 make linter happy 2019-12-16 20:55:10 +06:00
alex.sharov
5c3551910c allocate channel for reconnections 2019-12-16 20:55:10 +06:00
alex.sharov
88b05bd162 make linter happy 2019-12-16 20:54:30 +06:00
alex.sharov
4fa90b9856 make linter happy 2019-12-16 20:27:49 +06:00
alex.sharov
bc8b28f71b implement response code for SeekTo 2019-12-13 09:56:30 +06:00
alex.sharov
73b50e080d debug_StorageRangeAt v0, got wrong response on request: {"jsonrpc":"2.0","method":"debug_storageRangeAt","params":["0x2bf07c790737be3bc4c57cbf3dedb231806f6bfef434657d59dcc9ddbe4665ab", 1,"0x8b3b3b624c3c0397d3da8fd861512393d51dcbac","0xfade75560a6cfb895f5dc7c4ab3fa10089ac2372c98aa78280d029ab36285ad6",1024],"id":1377} 2019-12-13 09:56:30 +06:00
alex.sharov
d413ae5935 remove concept of lastError 2019-12-12 21:26:23 +06:00
alex.sharov
24c743587d remove concept of lastError 2019-12-12 21:26:23 +06:00
Evgeny Danilenko
5b4f352acb
Restore Ethash mining (#231)
* initial

* mining

* remove debug

* debug

* restore random seed in the mining tests

* green tests

* fix blockchain tests

* fix lint

* init miner only if asked

* linters

* do not store trie as singlton

* fmt

* new trieDbState constructor
2019-12-10 16:12:21 +03:00
alex.sharov
c72b2977c2 limit parallel connections on server, move batchSize into cursor - maybe will add method cursor.SetBatchSize() 2019-12-09 21:34:47 +07:00
alex.sharov
71dc098968 include to report` only blocks on chain with highest difficulty 2019-12-09 21:34:47 +07:00
alex.sharov
005d715545 move gasLimits to remote db 2019-12-09 21:34:47 +07:00
alex.sharov
649d995a48 rename internal funcs 2019-12-06 08:12:02 +07:00
alex.sharov
bb2f7080ce Moved connection to .View method. Not very optimal, but it allow cancel connection from client side or configure timeout, also in future it will allow us make connection pool there (maybe don't need). 2019-12-06 08:12:02 +07:00
alex.sharov
53b19b7c47 idiomatic for loops 2019-12-06 08:12:02 +07:00
alex.sharov
6c00ef2b04 idiomatic for loops 2019-12-06 08:12:02 +07:00
alex.sharov
412c30c9ff fix lint 2019-12-06 08:12:02 +07:00
alex.sharov
8b69c54936 move context to from .NewDb to .View method 2019-12-06 08:12:02 +07:00
alex.sharov
ada5d88be8 fix linter warnings 2019-12-06 08:12:02 +07:00
alex.sharov
344b8029cc handle interruption signals, added context for client and server. Only problem that it's context to DB, but not to each server call - it means you can't use HTTP Request context here (or create new connection on each request). 2019-12-06 08:12:02 +07:00
alex.sharov
80ea8a38ad test for CmdCursorFirst 2019-12-06 08:12:02 +07:00
alex.sharov
49a614eae8 Bug fixes:
- rollback must catch local variable, if you write value to lastError variable
- then you can't do "return" - because it closing connection and client can't send CmdLastError
- somewhere error values was ommited in loging
2019-12-06 08:12:02 +07:00
alex.sharov
1ffbb97752 removed unnecessary allocations, add tcp context 2019-12-06 08:12:02 +07:00
alex.sharov
d8f93ae187 Batch cursor.First and cursor.Next for remote db. 2019-12-06 08:12:02 +07:00
Andrew Ashikhmin
8e5e5d881f
Issue 123 Make encoding of ChangeSet ordered by keys and binary-searchable (#207) 2019-12-03 12:13:12 +01:00
ledgerwatch
8cb96471a3
Skeleton of RPC daemon, for 1 operation eth_blockNumber (#209)
* Finish CmdSeek and add CmdNext

* Add remoteDb listener and RPC daemon CLI

* Fix test

* Fix CLI

* Fix lint

* Fix unreachable code

* Fix lint

* First working RPC command eth_blockNumber

* Fix lint

* Fix lint

* Fix memprofile/cpuprofile confusion

* Add comment
2019-12-02 13:47:00 +00:00
Andrew Ashikhmin
84285a5ab1
Roughly finish with adding BadgerDB (first cut) (#203)
* Bumping GOMAXPROCS for Badger

* fixes related to database size

* Schedule GC for Badger

* pacify linter

* Don't start GC for ephemeral Badger

* Don't log "Value log GC attempt didn't result in any cleanup"

* Start GC in backround

* Bump GC period and IdealBatchSize for Badger

* BadgerDatabase RewindData

* Boolean badger flag -> string database flag

* cosmetic change
2019-11-27 13:15:25 +00:00
ledgerwatch
b9b4904e8d
First steps for RPC deamon (remote DB access) (#199)
* Remote DB initial commit

* Fix lint

* Fix lint

* Fix lint
2019-11-25 13:39:32 +00:00
Evgeny Danilenko
992e34745c
Replace red black trees (#184)
* use map instead of rb tree

* GetModifiedAccounts

* introduce tuples

* linters

* linters

* init puts

* init maps

* remove GetSortedKeys

* fix string bucket case

* use append in tuples

* fix tuples

* fix tests

* all tests are green

* fmt

* fmt

* rename tuple to tuples
2019-11-21 18:38:00 +00:00
Andrew Ashikhmin
1c0cf9be72
BadgerDB: MultiWalk & some other APIs, command line flag, scaffolding for testing (#183)
* BadgerDatabase MemCopy

* fix err shadowing

* BadgerDatabase MultiPut & NewBatch

* Remove goOn from MultiWalk & MultiWalkAsOf

* BadgerDatabase MultiWalk. Scaffolding for testing Badger in blockchain_test

* Badger Flag

* fix error logging

* Split IdealBatchSize between BoltDB and BadgerDB

* NewEphemeralBadger
2019-11-21 16:12:38 +01:00
andrew
0eb9d3915b Add method stubs to BadgerDatabase so it formally implements the Database interface 2019-11-14 13:00:38 +01:00
andrew
62d36ada39 BadgerDatabase Walk 2019-11-13 17:43:26 +01:00
andrew
109217a9da BadgerDatabase Has 2019-11-12 11:40:46 +01:00