diff --git a/Dockerfile b/Dockerfile index 5cfacc8ab0..83270f3997 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:alpine as build +FROM rust:bookworm AS build ARG STACKS_NODE_VERSION="No Version Info" ARG GIT_BRANCH='No Branch Info' @@ -8,15 +8,13 @@ WORKDIR /src COPY . . -RUN apk add --no-cache musl-dev - RUN mkdir /out RUN cargo build --features monitoring_prom,slog_json --release RUN cp target/release/stacks-node /out -FROM alpine +FROM debian:bookworm-slim COPY --from=build /out/ /bin/ diff --git a/Dockerfile.debian b/Dockerfile.debian deleted file mode 100644 index ce21964039..0000000000 --- a/Dockerfile.debian +++ /dev/null @@ -1,21 +0,0 @@ -FROM rust:bookworm as build - -ARG STACKS_NODE_VERSION="No Version Info" -ARG GIT_BRANCH='No Branch Info' -ARG GIT_COMMIT='No Commit Info' - -WORKDIR /src - -COPY . . - -RUN mkdir /out - -RUN cargo build --features monitoring_prom,slog_json --release - -RUN cp target/release/stacks-node /out - -FROM debian:bookworm-slim - -COPY --from=build /out/ /bin/ - -CMD ["stacks-node", "mainnet"] diff --git a/Dockerfile.memtest b/contrib/tools/Dockerfile.memtest similarity index 86% rename from Dockerfile.memtest rename to contrib/tools/Dockerfile.memtest index 3246f3a7c3..5bf80de769 100644 --- a/Dockerfile.memtest +++ b/contrib/tools/Dockerfile.memtest @@ -1,6 +1,6 @@ FROM rust:latest -WORKDIR /src/blockstack-core +WORKDIR /src/stacks-core RUN apt-get update RUN apt-get install valgrind heaptrack -y diff --git a/contrib/tools/block-replay.sh b/contrib/tools/block-replay.sh index b936861ff5..eb21fa7c88 100755 --- a/contrib/tools/block-replay.sh +++ b/contrib/tools/block-replay.sh @@ -375,7 +375,6 @@ usage() { echo " ${COLBOLD}${0}${COLRESET}" echo " ${COLYELLOW}--testing${COLRESET}: only check a small number of blocks" echo " ${COLYELLOW}-t|--terminal${COLRESET}: more terminal friendly output" - echo " ${COLYELLOW}-u|--upload${COLRESET}: upload results to s3" echo " ${COLYELLOW}-n|--network${COLRESET}: run block replay against specific network (default: mainnet)" echo " ${COLYELLOW}-b|--branch${COLRESET}: branch of stacks-core to build stacks-inspect from (default: develop)" echo " ${COLYELLOW}-r|--reserved${COLRESET}: how many cpu cores to reserve for system tasks" @@ -387,7 +386,7 @@ usage() { ## install missing dependencies -for cmd in curl tmux git wget tar gzip grep cargo pgrep aws; do +for cmd in curl tmux git wget tar gzip grep cargo pgrep; do command -v "${cmd}" >/dev/null 2>&1 || { case "${cmd}" in "cargo") @@ -396,9 +395,6 @@ for cmd in curl tmux git wget tar gzip grep cargo pgrep aws; do "pgrep") package="procps" ;; - "aws") - package="awscli" - ;; *) package="${cmd}" ;; diff --git a/docs/release-process.md b/docs/release-process.md index 3d7d32545c..00928e48a0 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -16,10 +16,10 @@ Normal releases in this repository that add new features are released on a monthly schedule. The currently staged changes for such releases are in the [develop branch](https://github.com/stacks-network/stacks-core/tree/develop). It is generally safe to run a `stacks-node` from that branch, though it has received less rigorous testing than release tags or the [master branch](https://github.com/stacks-network/stacks-core/tree/master). -If bugs are found in the `develop` branch, please do [report them as issues](https://github.com/stacks-network/stacks-core/issues) on this repository. +If bugs are found in the `develop` branch, please do [report them as issues](https://github.com/stacks-network/stacks-core/issues) in this repository. For fixes that impact the correct functioning or liveness of the network, _hotfixes_ may be issued. -These are patches to the main branch which are backported to the develop branch after merging. +These are patches to the default branch which are backported to the develop branch after merging. These hotfixes are categorized by priority according to the following rubric: - **High Priority**. Any fix for an issue that could deny service to the network as a whole, e.g., an issue where a particular kind of invalid transaction would cause nodes to stop processing requests or shut down unintentionally. Any fix for an issue that could cause honest miners to produce invalid blocks. @@ -58,27 +58,33 @@ The timing of the next Stacking cycle can be found [here](https://stx.eco/dao/to - A label should be applied to each such issue/PR as `X.Y.Z.A.n-blocker`. -3. Since development is continuing in the `develop` branch, it may be necessary to cherry-pick some commits into the release branch. +3. Perform a [block-replay](../contrib/tools/block-replay.sh) using an existing chainstate, or sync from genesis + +4. Since development is continuing in the `develop` branch, it may be necessary to cherry-pick some commits into the release branch or open a PR against the release branch. - Create a feature branch from `release/X.Y.Z.A.n`, ex: `feat/X.Y.Z.A.n-pr_number`. - Add cherry-picked commits to the `feat/X.Y.Z.A.n-pr_number` branch - Merge `feat/X.Y.Z.A.n-pr_number` into `release/X.Y.Z.A.n`. -4. Open a PR to update the [CHANGELOG](../CHANGELOG.md) in the `release/X.Y.Z.A.n` branch. +5. If necessary, open a PR to update the [CHANGELOG](../CHANGELOG.md) in the `release/X.Y.Z.A.n` branch. - Create a chore branch from `release/X.Y.Z.A.n`, ex: `chore/X.Y.Z.A.n-changelog`. + - Update [versions.toml](../versions.toml) to match this release: + - Update the `stacks_node_version` string to match this release version. + - Update the `stacks_signer_version` string to match `stacks_node_version`, with an appending `0` for this release version. - Add summaries of all Pull Requests to the `Added`, `Changed` and `Fixed` sections. - - Update the `stacks_node_version` string in [versions.toml](../versions.toml) to match this release. - Pull requests merged into `develop` can be found [here](https://github.com/stacks-network/stacks-core/pulls?q=is%3Apr+is%3Aclosed+base%3Adevelop+sort%3Aupdated-desc). **Note**: GitHub does not allow sorting by _merge time_, so, when sorting by some proxy criterion, some care should be used to understand which PR's were _merged_ after the last release. -5. Once `chore/X.Y.Z.A.n-changelog` has merged, a build may be started by manually triggering the [`CI` workflow](../.github/workflows/ci.yml) against the `release/X.Y.Z.A.n` branch. + - This PR must be merged before continuing to the next steps + +6. A build may be started by manually triggering the [`CI` workflow](../.github/workflows/ci.yml) against the `release/X.Y.Z.A.n` branch. -6. Once the release candidate has been built and binaries are available, ecosystem participants shall be notified to test the tagged release on various staging infrastructure. + - **Note**: A `stacks-signer` release will also be produced when this workflow is run -7. The release candidate will test that it successfully syncs with the current chain from genesis both in testnet and mainnet. +7. Once the release candidate has been built and binaries are available, ecosystem participants shall be notified to test the tagged release on various staging infrastructure. 8. If bugs or issues emerge from the rollout on staging infrastructure, the release will be delayed until those regressions are resolved. @@ -90,7 +96,7 @@ The timing of the next Stacking cycle can be found [here](https://stx.eco/dao/to 10. Finally, the following merges will happen to complete the release process: - Release branch `release/X.Y.Z.A.n` will be merged into the `master` branch. - - Then, `master` will be merged into `develop`. + - Then, `release/X.Y.Z.A.n` will be merged into `develop`. ## Consensus Breaking Release Process diff --git a/sample/conf/mainnet-miner-conf.toml b/sample/conf/mainnet-miner-conf.toml index 1ecfbc3508..2b6b0ace5a 100644 --- a/sample/conf/mainnet-miner-conf.toml +++ b/sample/conf/mainnet-miner-conf.toml @@ -4,7 +4,6 @@ rpc_bind = "127.0.0.1:20443" p2p_bind = "127.0.0.1:20444" prometheus_bind = "127.0.0.1:9153" seed = "" -local_peer_seed = "" miner = true mine_microblocks = false # Disable microblocks (ref: https://github.com/stacks-network/stacks-core/pull/4561 ) diff --git a/sample/conf/mocknet.toml b/sample/conf/mocknet.toml new file mode 100644 index 0000000000..607dd40505 --- /dev/null +++ b/sample/conf/mocknet.toml @@ -0,0 +1,14 @@ +[node] +# working_dir = "/dir/to/save/chainstate" # defaults to: /tmp/stacks-node-[0-9]* +rpc_bind = "0.0.0.0:20443" +p2p_bind = "0.0.0.0:20444" +prometheus_bind = "0.0.0.0:9153" + +[burnchain] +mode = "mocknet" + +# Used for sending events to a local stacks-blockchain-api service +# [[events_observer]] +# endpoint = "localhost:3700" +# events_keys = ["*"] + diff --git a/stacks-signer/release-process.md b/stacks-signer/release-process.md index 54bebafad0..4cf84f2317 100644 --- a/stacks-signer/release-process.md +++ b/stacks-signer/release-process.md @@ -63,7 +63,7 @@ The timing of the next Stacking cycle can be found [here](https://stx.eco/dao/to - Add cherry-picked commits to the `feat/signer-X.Y.Z.A.n.x-pr_number` branch - Merge `feat/signer-X.Y.Z.A.n.x-pr_number` into `release/signer-X.Y.Z.A.n.x`. -4. Open a PR to update the [CHANGELOG](./CHANGELOG.md) in the `release/signer-X.Y.Z.A.n.x` branch. +4. If necessary, open a PR to update the [CHANGELOG](./CHANGELOG.md) in the `release/signer-X.Y.Z.A.n.x` branch. - Create a chore branch from `release/signer-X.Y.Z.A.n.x`, ex: `chore/signer-X.Y.Z.A.n.x-changelog`. - Add summaries of all Pull Requests to the `Added`, `Changed` and `Fixed` sections. @@ -86,5 +86,5 @@ The timing of the next Stacking cycle can be found [here](https://stx.eco/dao/to Announcements will then be shared in the `#stacks-core-devs` channel in the Stacks Discord, as well as the [mailing list](https://groups.google.com/a/stacks.org/g/announce). 9. Finally, the following merges will happen to complete the release process: - - Release branch `release/signer-X.Y.Z.A.n.x` will be merged into the `master` branch. - - Then, `master` will be merged into `develop`. + - Release branch `release/X.Y.Z.A.n` will be merged into the `master` branch. + - Then, `release/X.Y.Z.A.n` will be merged into `develop`.