Commit Graph

2312 Commits

Author SHA1 Message Date
ledgerwatch
ad4182ca36
Re-introduced cleanup of temporary table (#3999)
* Re-introduced cleanup of temporary table

* Fix sign

* Fix lint

* Fix lint

* Revert

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2022-04-27 19:11:15 +01:00
Andrew Ashikhmin
c9b26c23b3
Check that safe & finalized blocks are canonical for no-op forkChoice (#3997)
* Place finishHandlingForkChoice after startHandlingForkChoice

* forkChoiceMessage -> forkChoice

* Check that safe & finalized blocks are canonical for no-op forkChoice
2022-04-27 17:23:13 +02:00
Alex Sharov
8de3e8d0e9
TxLookup fix 2 (#3994)
* save

* save

* tolerate some fails

* tolerate some fails

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-04-27 12:37:08 +01:00
Alex Sharov
b25cbb439c
save (#3983) 2022-04-27 07:06:12 +01:00
Andrew Ashikhmin
4d2db4467e
FullSync instead of FastSync (#3980) 2022-04-26 17:19:24 +02:00
Andrew Ashikhmin
3e1d4fab10
Forgot to check err status (#3978)
* Forgot to check err status

* Invalid header shouldn't fail the entire stage
2022-04-26 15:17:54 +02:00
Alex Sharov
61515ed21e
Bsc: enable syncmode=snap by default #3973 2022-04-26 13:06:18 +07:00
Alex Sharov
e04f7fc9f8
Integration: allow headers --reset (#3972) 2022-04-26 12:54:05 +07:00
ledgerwatch
9c2ea3d41b
Update stage_headers.go (#3966) 2022-04-26 08:26:44 +07:00
ledgerwatch
538543ad17
Experiment files 1 by 1 (#3959)
* Experiment files 1 by 1

* Remove check

* sort preverified snapshots

* docs: docker permissions

* sort preverified snapshots

* sort preverified snapshots

* sort preverified snapshots

* sort preverified snapshots

* sort preverified snapshots

* sort preverified snapshots

* save

* Fix speed log, remove file name

* Move timer out of the loop

* Calculate total size of downloaded files

* Fixes

* Fix

* Fix

* Fix

* Move downloadData

* Fix

* Revert "Fix"

This reverts commit 038e02b8a4d23cd32ddb111e9f325fc4ce1bbe2b.

* Revert "Move downloadData"

This reverts commit 8130a4d9bdc0705082eb7fe94e2261c9313f8482.

* Revert "Fix"

This reverts commit 1dca25bd68772bc42ac710c24698c8670f9f6b86.

* Revert "Fix"

This reverts commit ee5a1e82abd47bef4f9d8f0f68b8497476d29c0b.

* Revert "Fix"

This reverts commit 8af7be71d4685e0d6115fef91ed2f304695e1df9.

* Revert "Fixes"

This reverts commit 50509af81f3721cca957cd15d0286e8f30e5097b.

* Revert "Calculate total size of downloaded files"

This reverts commit 64a26df54f6226d739c8a5b57b32ad5af07d3061.

* Remove progress

* Remove progress

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
2022-04-25 19:32:27 +01:00
battlmonstr
fc3eecae5e
RPC: admin.peers() (#3960)
* RPC: admin.peers()

This RPC method returns information about the connected remote nodes.
https://geth.ethereum.org/docs/rpc/ns-admin#admin_peers

The peers are collected from all configured sentries.
See: https://github.com/ledgerwatch/interfaces/pull/102

Test with:
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc": "2.0", "method": "admin_peers", "params": [], "id":1}' localhost:8545

* save

* liner fix

Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
2022-04-25 14:40:04 +01:00
Alex Sharov
874cd5dca0
bsc: disable snap sync (#3955) 2022-04-25 08:52:25 +07:00
Giulio rebuffo
5e1900cc48
cleaned up forkchoices db insertions #3949 2022-04-24 08:13:49 +07:00
Håvard Anda Estensen
6844e74ad2
Replace ioutil with io and os (#3946) 2022-04-23 15:43:00 +01:00
Alex Sharov
62c377521b
Torrent conns print (#3943)
* save

* save
2022-04-22 18:24:21 +07:00
battlmonstr
92db317e06
Observer - P2P network crawler (#3928)
Observer crawls the Ethereum network and collects information about the nodes.
2022-04-22 12:02:12 +01:00
Alex Sharov
0d6775fd95
torrent: print peers amount in logs (#3942) 2022-04-22 17:37:35 +07:00
Giulio rebuffo
c5b1836481
Added Ethstats service (#3931)
* somewhat there but not yet

* lol

* more efficient ethstats

* lint

* not die on no wifi
2022-04-22 07:23:52 +01:00
Alex Sharov
58c86d550d
Snapshots: Max index parallelism to 4 (#3925)
* save

* save

* Readme update: built-in rpc daemon and syncmode=snap

* save

* save

* save
2022-04-21 17:49:42 +07:00
Alex Sharov
9051d95836
Downloader tables, mdbx-based torrent pieces completion store (#3923)
* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save
2022-04-21 10:34:31 +07:00
Alex Sharov
6aa4999729
Parallel indexing (#3921) 2022-04-21 10:34:10 +07:00
Alex Sharov
e1d7cc3d3f
Enable: syncmode=snap by default (goerli, mainnet, bsc) (#3910) 2022-04-18 14:40:40 +07:00
Alex Sharov
768e1204f6
integration: check that snapshots are nil #3906 2022-04-17 09:54:00 +07:00
Giulio rebuffo
ef14176007
Caching Least Recently Used Contract Code in Stage Execution (#3887)
* caching gets

* whitelist

* fix

* less ram

* comment
2022-04-14 23:34:03 +02:00
ledgerwatch
156da607e7
More compact representation of huffman trees in the seg files (#3875)
* More compact representation of huffman trees in the seg files

* Update to latest erigon-lib

* recompress

* recompress

* recompress

* uncompress: buf fix

* Update to latest erigon-lib

* Revert default sync mode

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
2022-04-13 16:29:44 +01:00
alex.sharov
8db37cfd97 change default syncmode 2022-04-13 19:09:20 +07:00
Andrew Ashikhmin
b41fe19ecb
Memorize bad PoS headers (#3879)
* Memorize bad PoS headers

* More places to ReportBadHeaderPoS
2022-04-12 17:05:23 +02:00
Alex Sharov
ff44db147e
Torrent: Increase peers amount to improve Swarm-ing, can do it now because have ratelimiter #3877 2022-04-12 09:09:09 +07:00
Alex Sharov
c56d32682e
fix_nil_pointer (#3871) 2022-04-11 17:29:53 +07:00
Alex Sharov
54ec6df6e1
ErigonLib: move types to own package (#3865) 2022-04-11 10:05:07 +07:00
ledgerwatch
f56d4c5881
Switch peerId from 256 to 512 bit (as in stable) (#3862)
* Switch peerId from 256 to 512 bit (as in stable)

* go mod tidy

* Fix some tests

* Fixed

* Fixes

* Fix tests

* Update to erigon-lib main

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-04-10 08:01:25 +01:00
Alex Sharov
9b47daee44
Default syncmode=snap for Mainnet, Bsc, Goerli (#3861)
* change syncmode default to snap sync

* save
2022-04-10 07:20:20 +01:00
Andrea Lanfranchi
03bd96ef8c
Remove unneeded Plainstate lookups for EOAs (#3860) 2022-04-10 09:28:41 +07:00
alex.sharov
072e49653a A bit less logs 2022-04-09 10:45:46 +07:00
alex.sharov
637c981350 Fix for slow LogIndex prune 2022-04-09 10:29:40 +07:00
alex.sharov
fea26a4c0d Fix for slow LogIndex prune 2022-04-09 10:14:39 +07:00
Alex Sharov
b512d4423a
Fix for slow LogIndex prune (#3858)
* save

* save
2022-04-09 10:11:18 +07:00
Alex Sharov
3d0b339124
wait for snapshots not only for POW (#3857) 2022-04-09 09:45:18 +07:00
alex.sharov
f02a390dad snapshots: delete portion of ancient blocks on each sync cycle 2022-04-08 14:43:11 +07:00
Andrew Ashikhmin
9b9da14cd1
Check that safe & finalized blocks are ancestors of head block (#3839)
* Check that safe & finalized blocks are ancestors of head block

* Add logging
2022-04-07 09:37:12 +02:00
Andrew Ashikhmin
634e9e4f3c
Prohibit EIP-2718 txn wrapped as RLP strings (#3827) 2022-04-06 10:40:44 +02:00
alex.sharov
ce95cb496d download on empty 2022-04-06 09:40:14 +07:00
Alex Sharov
67a623e264
Open rwdir once(#3833) 2022-04-06 05:54:53 +07:00
ledgerwatch
9898376cdc
Fix nil pointer error (#3825)
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-04-05 12:10:33 +01:00
Alex Sharov
80bd44fce5
Snapsthos: build indices on retire blocks (#3823)
* grpc up

* grpc up

* grpc up
2022-04-05 16:22:11 +07:00
Giulio rebuffo
1b0d7c80bf
Better batches for Execution (Hashmaps based instead of BTree based) (#3814) 2022-04-04 14:11:59 +07:00
Alex Sharov
ca66e64f22
Limit amount of deletes during one sync cycle (#3816) 2022-04-04 08:38:38 +07:00
Alex Sharov
68153ff6e6
Relax segments expectation (#3812)
* skip empty seg

* skip empty seg

* skip empty seg
2022-04-02 10:47:01 +07:00
alex.sharov
d8d13e07d1 fix linter 2022-04-01 15:08:13 +07:00
Alex Sharov
d1218181b0
Snapshots: geth compatibility, use --syncmode=snap flag (#3808) 2022-04-01 15:00:50 +07:00
Alex Sharov
8b03582558
compressor: log lvl #408
* save

* save
2022-04-01 10:44:30 +07:00
Andrew Ashikhmin
6ff6c39d13
Prefer forkchoice head as latest block in RPC (#3806)
* LastForkchoice accessors

* Update erigon-lib

* Prefer forkchoice head as latest block in RPC

* Fix typo
2022-04-01 08:33:50 +07:00
Alex Sharov
84cff259b5
snapshots: prune txlookup (#3794) 2022-03-30 11:50:16 +07:00
Andrew Ashikhmin
816ad30eff
Small Merge-related clarifications & improvements (#3785)
* Hd.Fetching -> FetchingNew

* ReadHeadHeaderHash makes more sense in verifyAndSaveNewPoSHeader

* Potentially more correct LatestValidHash in case of payload with invalid transactions
2022-03-29 11:47:07 +02:00
Alex Sharov
89d4477df3
Snapshots: nil indices on p2p fix (#3772) 2022-03-27 10:07:58 +07:00
ledgerwatch
9ea6398524
Fixes to subscribe logs (#3769)
* Fixes to subscribe logs

* Add criteria to logs subscription

* Skeleton of RPC daemon event log distribution

* Simplify

* Send aggregated filter to Erigon

* Change API

* Print

* Fixes

* Fix topics filtering

* Fill txHash and blockHash

* Timing logs, fill tx index

* Print

* More print

* Print

* Asynchronous sending of log events to RPC daemon

* Remove prints

* Only extract logs if there are subscribers

* Check empty when RPC daemon is removed

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-03-26 18:21:31 +00:00
Alex Sharov
e0dfb8fb22
Snapshots: handle well gaps in idx files (#3762)
* handle well gaps in idx files

* handle well gaps in idx files
2022-03-24 14:19:14 +07:00
alex.sharov
e2ac8e56a6 save 2022-03-24 12:18:50 +07:00
Alex Sharov
85e47d83d2
Snapshots: remove "experimental" prefix from cli flag (#3760) 2022-03-24 12:17:31 +07:00
Alex Sharov
a357421719
Snapshots: notify rpcdaemon about new snapshot (#3755) 2022-03-24 09:25:38 +07:00
Giulio rebuffo
b7fb85df6a
demoted logs (#3753) 2022-03-23 10:28:32 +01:00
Andrew Ashikhmin
74a7d7c75a
Refactor PoS downloader (#3717)
* Remove blockHeight arg from FeedHeaderPoW

* Revert "Remove blockHeight arg from FeedHeaderPoW"

This reverts commit 9bf92921db11cd4e13386fcee29f30241d070fc6.

* Move PayloadMessage & ForkChoiceMessage to package engineapi

* RequestList instead of newPayloadCh & forkChoiceCh

* Introduce request status

* Send reply only when request status is New

* Move BeaconRequestList to HeaderDownload

* Don't SetFetching when PoS (Fetching means handling newBlockHashes)

* Merge Syncing & Synced into DataWasMissing

* Introduce SyncStatus

* onlyNew arg in WaitForRequest

* Move waitingForBeaconChain into RequestList

* Interrupt instead of skipCycleHack

* Introduce timeout for PoS headers

* Split downloadMissingPoSHeaders

* Move StartPoSDownloader into HeaderDownload

* Move Stopping interrupt to StartPoSDownloader

* Move stopping PayloadStatus back to HeadersPOS

* cleanUpPoSDownload

* Post-merge fix

* TestBogusForkchoice

* TestPoSDownloader

* requestStatus in attemptPoSDownload

* Broadcast in SetStatus

* Cosmetics

* attemptPoSDownload -> schedulePoSDownload

* Demote some logs to Trace
2022-03-22 17:49:12 +01:00
Alex Sharov
36b9cc2982
Snapshots: initial sync fix (#3750) 2022-03-22 10:33:15 +07:00
Alex Sharov
4cf4c1bac1
Snapshots: better support of p2p (#3749) 2022-03-21 20:36:03 +07:00
Alex Sharov
9100e0dc3c
Snapshots: fix for fresh sync (#3748) 2022-03-21 14:07:39 +07:00
Alex Sharov
5f4bb98264
Snapshots: do indexing for older ranges if need (#3733)
* save

* save

* save

* save
2022-03-21 10:28:24 +07:00
Alex Sharov
f314222180
Snapshots: start seed new large .seg files (#3724) 2022-03-18 11:12:18 +07:00
primal_concrete_sledge
7d168884fe
Logs sub (#3666)
* save

* Add onLogs

* Fix lint

* Add proper logs

* Update go.mod

* goimports

* Add unwind
2022-03-17 07:40:18 +00:00
Andrew Ashikhmin
2785a57d1c
More Merge logging (#3712)
* More Merge logging

* Even more logging

* Marshall incoming payload json

* Fix json formatting

* Revert json marshalling

* Some extra logs
2022-03-16 06:55:21 +01:00
Alex Sharov
469b75c3d3
Snapshots: retire blocks by default (#3707) 2022-03-16 09:57:48 +07:00
ledgerwatch
8b00636e21
[erigon2] history indices based on Elias Fano (#3679)
* [erigon2] history indices based on Elias Fano

* Tidy

* Update

* tx lookup to support blocTo in integration

* Update to fix

* Update

* Fix

* Update to erigon-lib main

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-03-13 23:11:49 +00:00
Alex Sharov
f03d08c5ce
Snapshots: retire testing tool (#3684) 2022-03-12 17:26:11 +07:00
Alex Sharov
aed679c8a0
snapshots: enum file types (#3683) 2022-03-12 15:27:55 +07:00
Alex Sharov
b003d07839
Add system-txs to begin end of block (#3654)
* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* up torrent

* up torrent

* up torrent

* up torrent

* up torrent

* up torrent

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save
2022-03-10 07:48:58 +00:00
Alex Sharov
7ae579ba59
open snapshots in embedded rpcdaemon (#3670) 2022-03-10 09:20:47 +07:00
Alex Sharov
0b2ce6f845
rpcdaemon: limit amount of read transactions (#3637)
* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* a

* a

* a

* a

* a

* a

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* fefefe

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save
2022-03-08 10:43:14 +07:00
Zachinquarantine
673d3a1646
Remove mentions of Morden testnet (#3642)
* Update index.rst

* Update handler.go
2022-03-05 10:05:49 +07:00
yperbasis
d470349830 Sleepier stageLoopIsBusy + more logging 2022-03-03 17:51:25 +01:00
Andrew Ashikhmin
4607179849
Handle a corner case in forkchoiceUpdated (#3640)
* Fix typo

* fix typos

* Handle corner case when unwinding to geneis

* No-op ForkChoice
2022-03-03 16:09:03 +01:00
battlmonstr
47df98a499
Use "err" key for logging errors. (#3632)
log.Warn/Error uses "err" key to log errors in most places.
This renames "error" to "err" in some places to adhere to this convention.
2022-03-01 15:40:51 +00:00
Enrique Jose Avila Asapche
a65f12b248
State override support (#3628)
* added stateOverride type

* solved import cycle

* refactoring

* imported wrong package

* fixed Call arguments

* typo

* override for traceCall
2022-03-01 15:40:24 +00:00
Alex Sharov
c5e619927d
Add timings of forward stages to logs (#3620)
* save

* save
2022-02-25 07:44:13 +00:00
Alex Sharov
ac15d2b922
snapshots: better logging (#3611) 2022-02-24 16:28:46 +07:00
Alex Sharov
b94bc84a3b
snapshots: command to debug retire blocks (#3603)
* snapshots: command_to_debug_retire

* snapshots: command_to_debug_retire
2022-02-24 11:30:34 +07:00
ledgerwatch
17b2a9ba93
Bor fixes (#3553)
* Integration to work with bor

* Turn off validator set check

* disable verifySeal, add skeleton of postExec stage

* Pass around syscall

* Print

* Print more

* Default heimdall values for integration

* restore contract

* Print

* Print

* Print

* Print

* Print

* Print

* Print

* Print

* Fix nonce of system contract

* Remove prints

* Revert some more printing

* More fixes

* Print log

* Fix transfer log

* More printing

* More printing

* Print

* Print

* Print

* Print

* Print

* Print

* Print

* Fix validaor reward

* Remove printing

* Remove more prints

* Less printing

* Fetch validators from heimdall

* Remove syscall from Seal and CalcDifficulty

* Remove syscall from Prepare

* Print

* Remove DNS discovery

* Print apply snapshot

* Print

* Chunk up snapshot generation

* Chunk up snapshot generation

* Better logs when snapshotting

* Handle parents

* Prevent shadowing of snap

* Fix heimdall fetch

* Logging fixes

* Save generated snapshots

* Add header

* Less logging

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2022-02-24 00:03:10 +00:00
Andrew Ashikhmin
37ccbc53d6
Refactor payload building (#3592)
* Bump MaxPendingPayloads

* UnknownPayload error

* Improve ExchangeTransitionConfigurationV1 comment

* Extract MakeEmptyHeader

* Move MakeEmptyHeader to chain_makers

* Start with empty block as pending payload

* Only build payloads with the right parent hash

* Double check parent hash in SpawnMiningCreateBlockStage

* Simpler error formatting

* ReadHeadBlockHash instead of ReadHeadHeaderHash

* Avoid rebuilding already built blocks

* getPayload should stop the build process

* Tweaking stageLoopIsBusy

* Don't update pending payload after engine_getPayload
2022-02-23 21:27:38 +01:00
alex.sharov
a2feb80c9b snapshots: fix test 2022-02-23 19:54:58 +07:00
Alex Sharov
81d51e1589
snapshots: better files sort and filter (#3582) 2022-02-23 10:54:35 +07:00
battlmonstr
4337871f7f
Rename log/logger to follow conventions. (#3579)
* use "log" for struct fields
* use "logger" for function parameters and local vars

This is a compromise between:
1) using logger := log.New() to avoid aliasing (log := log.New())
2) and keeping it short when logging e.g.: srv.log.Info(...)
2022-02-22 18:17:15 +00:00
battlmonstr
e6c056e666
Rename Datadir/dataDir to follow conventions. (#3576)
* rename from Datadir to DataDir (functions and public vars)
* rename dataDir to datadir (local variables)
2022-02-22 17:39:48 +00:00
Giulio rebuffo
b49381821f
Fixed get-payload and Hanging ForkChoice (#3575)
* done

* removed sleep

* f

* errors.Is(err, io.EOF) instead of err == io.EOF

Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
2022-02-22 14:47:23 +01:00
Alex Sharov
b08cb44353
embed rpcdaemon: enable it only by --http flag (#3574) 2022-02-22 16:23:54 +07:00
Alex Sharov
5cd561bd74
block snapshots merge (#3558) 2022-02-22 08:55:24 +07:00
Andrew Ashikhmin
980276c322
Fix coinbase in stage_mining_exec (#3564)
* Simplify TerminalBlockHash & TerminalBlockNumber

* Simplify FeedHeaderPoS

* More accurate comment

* Relax TerminalBlockHash check

* Extract the sleep hack into stageLoopIsBusy

* Several short naps instead of a single longish sleep

* Fix coinbase in stage_mining_exec

* More orthodox loop

* typo in comment
2022-02-21 18:05:39 +01:00
Alex Sharov
226982d293
Use class dir.Rw - to separate Ro and Rw access to snapshotDir (#3534)
* save

* save

* save

* save

* save

* save

* save
2022-02-18 09:24:17 +07:00
Andrew Ashikhmin
0701c83222
Fix stall on unwind in handleForkChoice (#3536)
* ReadHeader instead of ReadHeaderByHash

* Add Engine API to rpcdaemon README

* Fix nil pointer dereference in HandlePendingBlock

* Fix latestValidHash JSON

* Delete GetPayloadBodiesV1

* Break infinte unwind loop in handleForkChoice

* More logging
2022-02-17 18:30:57 +01:00
Alex Sharov
e74b9ef9ff
Embed rpcdaemon fixes (#3535)
* save

* save
2022-02-17 11:24:21 +07:00
Alex Sharov
237a7d24d0
Embed RPCDaemon (#3522)
* save

* save

* save

* save

* save
2022-02-16 17:38:54 +00:00
Andrew Ashikhmin
3663f8c709
Explicit error for purged change sets (#3528) 2022-02-16 16:44:16 +01:00
Alex Sharov
7960d0a472
Snapshot: link.header is nil sometime (#3520)
* save

* save

* save

* save

* save

* save

* save

* save

* save

* Add another check

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-02-16 12:55:43 +00:00