Commit Graph

208 Commits

Author SHA1 Message Date
Alex Sharov
4c3bb1cca5
kv_temporal: DomainGet (#6511) 2023-01-06 14:27:54 +07:00
Alex Sharov
4a9c871628
a bit rename 22 to v3 (#6476) 2022-12-30 21:53:42 +07:00
Alex Sharov
b0af04f2df
bsc: incrementally calc and store all old snapshots. slower initial stage_snapshots, but faster restart during initial sync (#6457) 2022-12-30 12:44:54 +07:00
Alex Sharov
5ec19c5b2d
fix standalone rpcdaemon block reader (#6469) 2022-12-30 10:27:02 +07:00
Alex Sharov
c04668d0ff
e3: agg cancel background jobs (#6463) 2022-12-29 15:04:07 +07:00
ledgerwatch
24040f3044
Native tracers step 9 - add native tracers (#6434)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-25 07:28:41 +00:00
ledgerwatch
f364eff389
Native tracers step 7 - restructure js tracer files (#6415)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-23 18:10:37 +00:00
Alex Sharov
130ab85bea
e3: kv/temporal prototype 3 (#6395) 2022-12-22 09:37:32 +07:00
a
007234b489
allow rpcdaemon to bind to tcp (#6184)
this pr adds CLI flag to allow the rpcdaemon to bind to a TCP port.

this is very useful if one wants to maintain a remote connection with
the rpcdaemon without using websocket. This is useful because a lot of
issues come with the websocket protocol (compression, max size, etc).
TCP socket gets around these things (it is just raw json over tcp
stream)

the rpc package already supports this, it was just a matter of adding
the bind.

try `echo
'{"jsonrpc":"2.0","method":"eth_blockNumber","id":"1","params":[""]}' |
nc localhost 8548` as a basic test

to test. Subscriptions are also working (idk how to send keepalives with
netcat)

the default rpc.(*Client).Dial method does not support TCP. I have not
included that in this PR. The code for such is as follow

```
// DialTCP create a new TCP client that connects to the given endpoint.
//
// The context is used for the initial connection establishment. It does not
// affect subsequent interactions with the client.
func DialTCP(ctx context.Context, endpoint string) (*Client, error) {
	parsed, err := url.Parse(endpoint)
	if err != nil {
		return nil, err
	}
	ans := make(chan *Client)
	errc := make(chan error)
	go func() {
		client, err := newClient(ctx, func(ctx context.Context) (ServerCodec, error) {
			conn, err := net.Dial("tcp", parsed.Host)
			if err != nil {
				return nil, err
			}
			return NewCodec(conn), nil
		})
		if err != nil {
			errc <- err
			return
		}
		ans <- client
	}()
	select {
	case err := <-errc:
		return nil, err
	case a := <-ans:
		return a, nil
	case <-ctx.Done():
		return nil, ctx.Err()
	}
}

// DialContext creates a new RPC client, just like Dial.
//
// The context is used to cancel or time out the initial connection establishment. It does
// not affect subsequent interactions with the client.
func DialContext(ctx context.Context, rawurl string) (*Client, error) {
	u, err := url.Parse(rawurl)
	if err != nil {
		return nil, err
	}
	switch u.Scheme {
	case "http", "https":
		return DialHTTP(rawurl)
	case "ws", "wss":
		return DialWebsocket(ctx, rawurl, "")
	case "tcp":
		return DialTCP(ctx, rawurl)
	case "stdio":
		return DialStdIO(ctx)
	case "":
		return DialIPC(ctx, rawurl)
	default:
		return nil, fmt.Errorf("no known transport for URL scheme %q", u.Scheme)
	}
}


```

let me know if you would like me to add this to the PR as well. the TCP
connection can then be established with `rpc.Dial("tcp://host:port")`
2022-12-03 14:22:47 +07:00
Alex Sharov
8afeee56c8
Downloader extract, step2 (#6076) 2022-11-20 10:41:30 +07:00
Giulio rebuffo
f8916e9226
Made Lightclient default (#5813)
lightclient cl is default, for external cl, run `--externalcl`
2022-11-10 17:06:04 +00:00
hexoscott
636586c1b5
cache state check (#5844)
draft for now to get some early feedback on approach
2022-11-07 13:04:31 +00:00
ledgerwatch
c656c6576f
Update to erigon-lib, adjust flag processing (#5973)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-11-06 11:22:12 +00:00
Max Revitt
345e668832
feat(pos download): send header request to multiple peers (#5948) 2022-11-04 09:07:46 +00:00
Alex Sharov
26fdf9169d
move all packages from "internal" folder - to simplify users live (#5857) 2022-10-25 09:58:25 +07:00
Alex Sharov
606ce5c99a
add logging cli flags to various cmd (#5816) 2022-10-21 12:36:17 +07:00
Max Revitt
07ffa36d44
File system logging (#5812)
- lives in internal/logging
- all log flags moved to internal/logging/flags
- allows continued use of root logger via log.Info etc.
- update logger to take change allowing string to lvl for 'trace'

Verbosity flag is overridden by log.console.verbosity. Logs will be
colocated if all run as one process, only split where progs are run as
separate processes, in a future update this will be addressed so for
example rpcdeamon will always log to it's own file
2022-10-20 19:25:06 +01:00
Alex Sharov
b8dbb53d3b
e3: write history and indices to etl (#5742) 2022-10-15 08:20:58 +07:00
Alex Sharov
b12b0d4627
e3: history bsc and mainnet snapshots (#5725) 2022-10-13 09:46:32 +07:00
Alex Sharov
a2e51a2469
e3: prune limited amount before commit #675 (#5693) 2022-10-11 11:25:13 +07:00
ledgerwatch
1bc0a796d2
fix for rpcdaemon crash if there is no datadir (#5686)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-10-10 12:40:21 +01:00
Alex Sharov
6a52007c69
e3: always created dir (#5638) 2022-10-06 09:18:37 +07:00
Alex Sharov
ca9aa4723c
Compress params change (#5631)
as of https://github.com/ledgerwatch/erigon-lib/pull/651
2022-10-05 17:54:54 +07:00
Alex Sharov
afcd605fc5
remote rpcdaemon to create snapshots/history dir at startup #5594 2022-10-02 14:48:26 +07:00
Alex Sharov
1b17a3226a
agg print stats at startup (#5586) 2022-10-01 09:29:28 +07:00
Alex Sharov
6d07443ca5
erigon3: remote rpcdaemon used wrong agg dir #5562 2022-09-28 12:36:53 +07:00
Alex Sharov
cb60382e6d
erigon3: rename "history.v2" to "history.v3" to avoid naming miss-match with "erigon3" (#5519) 2022-09-26 10:54:42 +07:00
Alex Sharov
9fb8a190bc
erigon22: folder snapshots/history (#5351) 2022-09-18 17:41:01 +07:00
Temirlan
44266a9237
rcpdaemon, erigon: add --rpc.evmtimeout flag (#5395) 2022-09-17 13:25:27 +07:00
ledgerwatch
693017c554
Cleanup Tevm experimental code (#5259)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-09-01 19:49:29 +01:00
ledgerwatch
73e2d1146e
Cleanup interfaces (#5254)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-09-01 16:44:37 +01:00
Håvard Anda Estensen
65a0caeb94
Use strings.EqualFold for string comparison (#5227) 2022-08-30 14:37:14 +07:00
Alex Sharov
fb2294d124
Erigon22: basic txNum forward/unwind (#5176) 2022-08-25 12:24:01 +07:00
Alex Sharov
69fbfc9bef
Snapshots: Erigon update list in db only after Downloader confirmation, rpcdaemon read list from db (#5150) 2022-08-23 16:28:07 +07:00
Alex Sharov
cb9f86fcbc
erigon22: incremental hash state stage (#5111) 2022-08-19 10:00:47 +07:00
Alex Sharov
46ef7e5305
erigon22: incremental hash state stage (#5102) 2022-08-19 09:35:43 +07:00
Håvard Anda Estensen
ad865ac758
Enable staticcheck linter (#5084) 2022-08-17 12:17:45 +07:00
Alex Sharov
db95b9a194
RPCDaemon: improve UX - when erigon not available - still can use snpashots (#5073) 2022-08-16 15:45:27 +07:00
Alex Sharov
a9801d36db
fix nil pointer at startup when not all indices available yet #5070 2022-08-16 08:44:41 +07:00
Alex Sharov
52987a56f3
rpcdaemon: start without panic when --snapshots=false #5043 2022-08-13 22:16:24 +07:00
Alex Sharov
5ee318e722
--db.read.concurrency must be not less than 10 (#5036)
* save

* save
2022-08-13 16:16:18 +07:00
Alex Sharov
4594ce5ef7
erigon22: history.v2 flag, align rpcdaemon22 (#5016)
* save

* save

* save

* save

* save
2022-08-12 16:13:14 +07:00
Alex Sharov
18757053cf
fix merge conflict (#4998) 2022-08-11 09:18:17 +07:00
fenghaojiang
12cf311b7c
feat: add erigon_getLogs with timestamp field to erigon rpcdaemon and fix the issue 4982 (#4968)
* add_abigen_error_handle

* add abigen error type test code

* add field timestamp in `eth_getLogs` api

add field timestamp in `eth_getLogs` api

* undo add field timestamp in `eth_getLogs`

* add `erigon_getLogs` api and add field `timestamp`

add `erigon_getLogs` api and add field `timestamp`

* feat: add `erigon_getLogs` with timestamp field to erigon rpcdaemon

feat: add `erigon_getLogs` with timestamp field to erigon rpcdaemon

* fix: issue `4982` roaring out of range

fix: issue 4982 roaring out of range

* convert rangeEnd to latest

convert rangeEnd to latest when range end is a big value that go out of range of MaxUint32

* add begin condition

add begin condition in case of bigger than latest block

* add annotation to unreachable code
2022-08-11 09:16:40 +07:00
Alex Sharov
cebb44b486
up_metrics version (#4986)
* save

* save

* save
2022-08-10 18:39:27 +07:00
Alex Sharov
e702e48bc3
disable StateCache when rpcdaemon when embedded #4985 2022-08-10 17:30:02 +07:00
Alex Sharov
7a2e7e8c06
enable_remote_rpcdaemon (#4938) 2022-08-05 10:15:40 +07:00
Andrew Ashikhmin
5ea692f2de
Remove authrpc.* flags from rpcdaemon (#4931)
* README: Move port 8551 from RPC to erigon ports

* Some renaming for consistency

* Remove authrpc.* flags from rpcdaemon

* docker-compose: move --authrpc.jwtsecret to erigon

* minor typo
2022-08-04 12:51:01 +02:00
Andrew Ashikhmin
29d2f16bf0
Fix auth RPC logging (#4899) 2022-08-02 13:24:25 +02:00
Andrew Ashikhmin
7199dcf7a2
Rename engine.* flags to authrpc.* for consistency with geth (#4890)
* Update README re. Engine API

* Remove obsolete code

* Don't apply --rpc.accessList to Engine API listener

* Simplify startAuthenticatedRpcServer

* Rename engine.* cmd flags to authrpc.* for consistency with geth

* More renamings

* Introduce --authrpc.vhosts flag
2022-08-02 13:15:01 +07:00