* Explain verification modes
* Explain block write modes
* Expand upgrade goals
* Document testing requirements
* Update current format docs
* Move the detailed checklist to the ticket template
* Move an example back
* Reword confusing paragraphs
Co-authored-by: Arya <aryasolhi@gmail.com>
* Explain the difference between major and minor/patch versions
* Simplify upgrade wording
Co-authored-by: Marek <mail@marek.onl>
---------
Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: Marek <mail@marek.onl>
* Document branch protection rules
* Document automatic jobs for new crates
* Link to patch workflow docs
* Update book/src/dev/continuous-integration.md
Co-authored-by: Marek <mail@marek.onl>
---------
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
Co-authored-by: Marek <mail@marek.onl>
* Add tree key format and cached root upgrades
* Document the changes in the upgrades
* Remove unnecessary clippy::unwrap_in_result
* Fix database type
* Bump state version
* Skip some checks if the database is empty
* Fix tests for a short state upgrade
* Disable format checks in some tests
* Document state performance issues
* Clarify upgrade behaviour
* Clarify panic messages
* Delete incorrect genesis trees write code
* Fix metrics handling for genesis
* Remove an unused import
* Explain why genesis anchors are ok
* Update snapshots
* Debug a failing test
* Fix some tests
* Fix missing imports
* Move the state check in a test
* Fix comment and doc typos
Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: Arya <aryasolhi@gmail.com>
* Clarify what a long upgrade is
* Rename unused function arguments
Co-authored-by: Marek <mail@marek.onl>
* Add all_unordered log regex matching methods
* Fix timing issues with version upgrades and other logs
* Fix argument name in docs
Co-authored-by: Marek <mail@marek.onl>
* Explain match until first for all regexes behaviour better
---------
Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: Arya <aryasolhi@gmail.com>
* ref(workflows): consolidate workflows based on their purpose
This also renames the workflows to make their naming more consistent and adding a naming convention
Fixes: #6166Fixes: #6167
* fix(workflows): use correct name for patch
* fix(workflow): docker unit tests
* fix(release): validation error
Error:
```
Validation Failed: {"resource":"Release","code":"invalid","field":"target_commitish"}
```
Fixes: https://github.com/release-drafter/release-drafter/issues/1125
* fix(workflows): reference correct name
* fix: remove extra workflow
* fix(workflows): use larger runners
* fix(workflow): remove code already in docker unit-test
* fix(unit-tests): start zebra the right way
* fix: typo in patch name
* chore: move job to logical order
* imp(workflows): use better name for gcp tests
* add: missing merge changes
* chore: use better name for find-disks
* fix(ci): use the `entrypoint.sh` to change the Network
* fix(ci): add missing `ZEBRA_CONF_PATH` variable
* fix(ci): allow to build the entrypoint file with testnet
* fix(entrypoint): allow to create a dir and file with a single variable
* refactor: test config file in CI and CD with a reusable workflow
* fix(ci): wrong name used
* fix(ci): use checkout
* fix(ci): improve docker config tests
* fix(ci): use better name for protection rules
* Fix changed workflow file name in docs patch file
* Apply suggestions from code review
Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Arya <aryasolhi@gmail.com>
* fix(cd): depend on file tests
* fix(docs): adapt to new workflow name
* fix: revert test coverage on CD
* chore: reduce diff
* fix(ci): allow using variable images for reusable workflows
* fix(dockerfile): use variables or default for config path and file
* fix(entrypoint): if `$ZEBRA_CONF_PATH` is set, do not override it
* Fix patch job names and remove failure job testnet dependencies
---------
Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Arya <aryasolhi@gmail.com>
* Enable getblocktemplate-rpcs in production builds
* Update mining instructions
* Consistently use ZF funding stream addresses in examples
* Simplify skip_getblocktemplate()
* Set the test miner address based on the network
* Correctly skip checks in lightwalletd send transactions test
* Wait longer for transaction query
* Wait longer before re-checking the mempool
* Skip mempool checks if it wasn't queried by lightwalletd
* rustfmt
* clippy and rustfmt
* Fix attribute issue
* Fix typo
Co-authored-by: Arya <aryasolhi@gmail.com>
---------
Co-authored-by: Arya <aryasolhi@gmail.com>
* ref(docker): combine test and prod entrypoints into one
This makes the following changes
- Uses `-x` instead of echoing the variables values
- Sets default values where required
- Create a function to list directories
- Create a function to run cargo tests
- Use a better approach to handle different options in the `case` manegement for tests and production
- Replaces all instances of `runtime-entrypoint.sh` with `entrypoint.sh`
* chore: use 2 spaces insted of 4 for indentation
* fix: add missing `test-threads` to `fully_synced_rpc_`
* fix: allow 3 arguments instead of 2 to handle `fully_synced_rpc_` correctly
* chore: remove extra file
* chore: add comments to main parts of the file
* fix(ci): just create the `$ZEBRA_CONF_PATH` if `$ENTRYPOINT_FEATURES` is not set
* fix(entrypoint): just print ${ZEBRA_CONF_PATH} if exists
* fix: missing condition
* ref: handle tests better if `$ENTRYPOINT_FEATURES` is set
* fix(ci): We just want `ZEBRA_CONF_PATH` to be set in the `release` image
* fix(entrypoint): fix the overall `case` logic
* fix(ci): allos to run with custom config in CI image
* fix(ci): more edgecases
* fix: we don't need to find files, but subdirectories
* fix(ci): handle Signal Forwarding and exit codes for `cargo`
* fix(ci): parse `fully_synced_rpc_` test correctly
* chore: add missing cache dir variable for LWD
* fix(entrypoint): handle an arbitrary number of arguments
* fix(entrypoint): handle features list
* fix(entrypoint): typo
* chore: typo
* Add instructions for changing crate owners
* Explain new owner invites
* Remove duplicate `cargo login` instructions from the release checklist
* Remove owners as well
* Missing log line
* imp(doc): add missing Docker variables and examples
* imp(doc): segment environment variables by role
* imp(doc): use code instead of strong styling for variables
* chore: review fixes
* fix(doc): use a better example for advanced usage
* Update links in Tracing section
* Move Sentry to Tracing section
* Refactor the section on features in `README.md`
- I tried to keep only the most relevant features for users.
- I tried using links that lead to the most descriptive pages.
These changes are subjective.
* Remove the networking section from `README.md`
The network requirements are well documented in section System
Requirements in the Zebra book. The readme already points to this
section in a link in section Getting Started.
The motivation for this change is to keep the readme short.
* Update README.md
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
---------
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
* upgrade docs for new lightwalletd repo zebra is using now
* Update book/src/user/lightwalletd.md
Co-authored-by: Marek <mail@marek.onl>
---------
Co-authored-by: Marek <mail@marek.onl>
* zebra-chain changes from the subtree-boundaries branch
```sh
git checkout -b subtree-boundaries-zebra-chain main
git checkout origin/subtree-boundaries zebra-chain
git commit
```
* Temporarily populate new subtree fields with None - for revert
This temporary commit needs to be reverted in the next PR.
* Applies suggestions from code review
* removes from_repr_unchecked methods
* simplifies loop
* adds subtrees to zebra-state
* uses split_at, from_repr, & updates state-db-upgrades.md
* Update book/src/dev/state-db-upgrades.md
Co-authored-by: teor <teor@riseup.net>
* renames partial_subtree to subtree_data
* tests that subtree serialization format
* adds raw data format serialization round-trip test
* decrements minor version and skips inserting subtrees in db
---------
Co-authored-by: teor <teor@riseup.net>
* fix(doc): consolidate firebase hosting in prod project
* fix(deploy): use correct environment and permissions
* ref(firebase): use a single firebase configuration
* fix(firebase): entrypoint no longer needed
* ref(docs): deploy docs on PR for preview
* fix(docs): allow to comment on PR
* fix(docs): allow enough time to build docs
* fix(docs): cancel previous docs build
* fix(docs): use a more specific group
* fix(firebase): extra permissions
* fix: commit `.firebaserc`
* fix(mdbook): use different actual directory
* fix(deploy): increase Rust build timeout
* chore: more timeout for building and publishing
* fix(deploy): login to GCP before deploying
This is to avoid timeout issues with the GCP credentials
* chore: lint code
* chore: revert SC2002 fix try
* Move the state format into a new doc
* Add upgrade instructions
* Link to the format upgrade docs from the upgrade code
* Fix typo
Co-authored-by: Marek <mail@marek.onl>
---------
Co-authored-by: Marek <mail@marek.onl>
* Activate production features on docs.rs
* Make version requirements more flexible to work around unpublished versions
* Remove a redundant feature requirement that causes publishing issues
* fix release auto-replacement format
* cargo release replace --verbose --execute --package zebrad
* Add a missing 1.0.1 changelog entry
* Fix incorrect commands in the release checklist
* Check the crates.io release script in CI, to avoid release failures
* Fix release date in changelog
* Fix workflow typo
* Add --no-confirm to the workflow
* Fix outdated version in release check command
* After the release, add a "remove do-not-merge" step
* Set git identity before committing
* Don't overwrite tweaked versions on upgrade
* cargo release version doesn't support --dependent-version
* Update the same commands in the release checklist
* Commit to git after each change
* And in the checklist
* Add cargo release config
* In CI, allow any branch and provide a fake previous tag name
* Remove redundant `cargo release commit`
* Use a simpler release version process
* Start simplifying the release dry run in CI
* Fix a cargo dependency lint
* just skip the failing crates for now
* Fix the release checklist to match CI
* Use the latest versions of all Zebra dependencies
* Install from crates.io not git
* Move git instructions to install.md
* Add versions back to install.md
* Automate release replacements in Cargo.toml
* Re-add h4 to re-enable links to those sections
* Remove release replacements from zebra/Cargo.toml
* Add release replacements to zebrad/Cargo.toml
* Put the toml table in the right place
* Try another place in Cargo.toml
* Let's try again without "package."
* Remove duplicate release metadata from Cargo.toml
* Apply suggestions from code review
Co-authored-by: Marek <mail@marek.onl>
---------
Co-authored-by: Marek <mail@marek.onl>
* Add `fastmod --hidden` to mass-renames.md
* Do multiple skip paths
* Do multiple sed renames in the same sed
---------
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* rename verifiers
* rename `PreparedBlock` to `SemanticallyVerifiedBlock`
* rename `CommitBlock` to `SemanticallyVerifiedBlock`
* rename `FinalizedBlock` to `CheckpointVerifiedBlock`
* rename `CommitFinalizedBlock` to `CommitCheckpointVerifiedBlock`
* rename `FinalizedWithTrees` to `ContextuallyVerifiedBlockWithTrees`
* rename `ContextuallyValidBlock` to `ContextuallyVerifiedBlock`
* change some `finalized` variables or function arguments to `checkpoint_verified`
* fix docs
* document the difference between `CheckpointVerifiedBlock` and `ContextuallyVerifiedBlock`
* fix doc links
* apply suggestions to request
Co-authored-by: Marek <mail@marek.onl>
* apply suggestions to service
Co-authored-by: Marek <mail@marek.onl>
* apply suggestions to finalized_state.rs and write.rs
Co-authored-by: Marek <mail@marek.onl>
* fmt
* change some more variable names
* change a few missing generics
* fix checkpoint log issue
* rename more `prepared` vars `semantically_verified`
* fix test regex
* fix test regex 2
---------
Co-authored-by: Marek <mail@marek.onl>
* Move releases info to `Building Zebra`
* Move Zebra use-cases to `Using Zebra`
* Point the links in Zebra use-cases to docs
* Move the contents of `Release Candidates`
* Refactor the `System Requirements` link
* Update the syncing times
* Update notes on performance
* Move data usage to `System Requirements`
* Remove "building Zebra" from lightwalletd docs
I think we can assume people will follow the previous parts of the docs
for how to build Zebra.
* Move lightwalletd details from `README.md` to docs
`README.md` already mentions lightwalletd from the `Using Zebra`
section, and refers the reader to the docs where the details were moved
and refactored.
* Mention `lightwalletd` and mining in Running Zebra
* Move Troubleshooting to its own file
* Move "Improving Performance" to its own file
* Move instructions for ARM to "Installing Zebra"
* Reword the Testnet sync duration description
Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>
* Move "Improving Performance" to "Troubleshooting"
* Remove the Testnet unreliability caveat
---------
Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>
* Fix dead links
* Fix the `docker build` command
The `docker build` command requires a `PATH` at its end, otherwise it
doesn't work.
* Remove redundant sections
* Restore & refactor the `Alternatives` subsection
---------
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Simplify the summary in the book
* Refactor the system requirements
* Apply suggestions from code review
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
---------
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
* refuse to run Zebra if it is too old
* update the release checklist to consider the constants
* bring newline back
* apply new end of support code
* attempt to add tests (not working yet)
* move eos to progress task
* move tests
* add acceptance test (not working)
* fix tests
* change to block height checks (ugly code)
* change warn days
* refactor estimated blocks per day, etc
* move end of support code to its own task
* change test
* fix some docs
* move constants
* remove uneeded conversions
* downgrade tracing
* reduce end of support time, fix ci changing debugs to info again
* update instructions
* add failure messages
* cargo lock update
* unify releaase name constant
* change info msg
* clippy fixes
* add a block explorer
* ignore testnet in end of support task
* change panic to 16 weeks
* add some documentation about end of support
* Tweak docs wording
---------
Co-authored-by: teor <teor@riseup.net>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>