* db: migrate from lmdb-zero to heed
* fix: check resizing operation and wait to avoid crash with multiple batches, fix exists check at batch
* build: fix missing deps at Cargo.lock
* lmdb: single environment, migrate existing databases with provided non-default environment name
* fix: revert chunk size to 128mb
* lmdb: ability to use multiple shared environments
* build: remove unused dependency
* fix: resize to have correct multiplier of the system page size
* lmdb: speed up prefix iter by storing keys
* lmdb: default env name
* lmdb: wait db resize before read, reduce timeout before resizing
* lmdb: use static reader for iterator, count existing batches for stable resize
* fix: check batches count on resize waiting
* lmdb: use separate databases instead of prefixes, use default db for values without prefixes, migrate old environment
* fix: pop pos key
* lmdb: count all open transactions to finish before resizing
* lmdb: immediate resize if there are no open transactions
* lmdb: remove env state when there are no more stores
* lmdb: use atomic for resize and resize checking flags
* lmdb: sleep 10ms when waiting all opened txs to be closed
* lmdb: use atomic open txs and stores count
* lmdb: use index to detect separator, ignore unknown db key to not have a panic
* lmdb: store max 10k keys in the iterator
* lmdb: check iter result on getting total
* lmdb: handle errors at iterator
* lmdb: handle an error when db with provided key not found
* lmdb: fix iterate over 10k keys
* lmdb: document migration resize safety
* lmdb: fix iter test
* lmdb: clear new db after unsuccessful migration, handle read error on migration to interrupt process
* store: bring back old key methods to reproduce data migration
* lmdb: return an error on unsuccessful migration
* lmdb: migration test, clean data after allocate test
* lmdb: info migration log
* fix: move iterator before handling an error to allow skip bad value
* lmdb: return an error if removal of old DB file failed after migration
* lmdb: lifetime for iterator, use write transaction at batch iterator
* lmdb: migration progress
* fix: tests
* lmdb: immediately set resizing flag, ignore resizing flag while there are more than 0 opened txs to avoid stuck, optimize tx counter for some operations
* lmdb: key for successful migration
* lmdb: fix put database creation at separate block to avoid lifetime issues when returning an error on migration
* tui: show server initialization status and error
* fix: compilation issues
* fix: add documenting to status, remove unused imports
* fix: do not empty server value
* fix: server ref
* tui: do not quit on q when another dialog is showing (progress or error)
* fix: server stop on tui shutdown
* fix: stop server if tui was stopped after start
* server: panic on error at non-tui mode like before with unwrap
* fix: pop dialog
* fix: do not return result on tx after server start
* tui: close current dialog before quit
* tui: pass stop state to server creation after tui quit
* tui: exit code 1 after error, also for non-tui
* tui: better exit code
* add workflow
* branches:
- snap_addition
* Add snap package build workflow
* Add snap package build master, staging
* snap version from Cargo.toml
* Seems like staging branch should have grade: devel quality level
* Set snap grade based on branch
* add multi arch
* Update snap.yaml
* snap: use arm platform for arm build
* snap: multi platform ci build
---------
Co-authored-by: ardocrat <ardocrat@gri.mw>
* Change default IP address for P2PConfig to IPv6
Feature request: Change default P2P listen host from 0.0.0.0 to :: for dual-stack IPv4+IPv6 support.
As tested on several windows/linux machines and not found issue. Worked with ipv4 or ipv6 or dual ipv4+ipv6.
* docs+config add p2p listen host options
---------
Co-authored-by: Joerg <wiesche89@googlemail.com>
* ci: include .git directory into build
* p2p: include git ref into version for user agent, show git commit hash instead of last tag into log
* p2p: do not show anything after version if git commit hash is empty
* fix: user agent typo
* peer: unknown state for new peers, check peers state on every monitor (128 healthy non-connected + 128 defuncts + 128 unknown), mark peer as defunct when ping not passed, do not crash on toml parse with dns failure
* p2p: cleanup before selection at monitor, add outbound to connected list only when there is not enough peers + disconnect extra peer immediately, reconnect to seeds at monitor to avoid stuck, update only defunct state to unknown when received existing peer address
* p2p: reduced amount of total peers to check at monitor
* p2p: do not check healthy and defunct peers more often than once per hour, store last connection attempt, do not ask for more peers when there is enough outbound
* peer: update last_attempt when changing peer state to other than Banned
* fix: log of peers amount to check
* ghcr: add arm platform, remove attestation
* ghcr: checkout code to get version
* ghcr: fix tag var format
* docker: --no-tui flag for entrypoint
* docker: install ca-certificates to be able to use grin client inside container
* docker: add default volume, expose API port exposable by making IP address public
* adding --no-tui
* revert next line
* english comments
* bin: more detailed no-tui flag description
---------
Co-authored-by: Jörg Wieschebrock <Joerg.Wieschebrock@krone.de>
* bin: ability to use chain type argument for 'run' subcommand
* docker: single image for mainnet and testnet, update build docs
* docker: root user
* github: ghcr publish
* github: build image for master branch only
* docs: fix paths
* docker: move 'server run' to command
* Revert "bin: ability to use chain type argument for 'run' subcommand"
This reverts commit fc2d9199c3ff80c5c7305e3fc5b1f6fe86e8dacf.
* docker: disable tui at config
* Addition of initial seed check logic
* updated to call from command line, now need to do something about peer store root output
* rework check to delete temp files, add output options, testing
* Update versioning on master to 5.4.0-alpha.0
* updates for 1.80 and other accumulated warnings
* further warning cleanups
* move dead code tag to function defn rather than module
* first pass compilation of croaring update
* cargo.lock
* add roaring arch flag into CI build scripts
* revert CI to use windows 2019 image
* add more debug
* more debug info
* update range arguments to bitmap remove_range function calls
* remove unnecessary cast