Skip to content

Commit d7e9720

Browse files
committed
Merge branch 'develop' of https://github.com/stacks-network/stacks-core into chore/cleanup-multiple-miners-tests
2 parents 407c98a + 11912b6 commit d7e9720

File tree

18 files changed

+162
-49
lines changed

18 files changed

+162
-49
lines changed

Dockerfile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM rust:alpine as build
1+
FROM rust:bookworm AS build
22

33
ARG STACKS_NODE_VERSION="No Version Info"
44
ARG GIT_BRANCH='No Branch Info'
@@ -8,15 +8,13 @@ WORKDIR /src
88

99
COPY . .
1010

11-
RUN apk add --no-cache musl-dev
12-
1311
RUN mkdir /out
1412

1513
RUN cargo build --features monitoring_prom,slog_json --release
1614

1715
RUN cp target/release/stacks-node /out
1816

19-
FROM alpine
17+
FROM debian:bookworm-slim
2018

2119
COPY --from=build /out/ /bin/
2220

Dockerfile.debian

Lines changed: 0 additions & 21 deletions
This file was deleted.

Dockerfile.memtest renamed to contrib/tools/Dockerfile.memtest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
FROM rust:latest
22

3-
WORKDIR /src/blockstack-core
3+
WORKDIR /src/stacks-core
44

55
RUN apt-get update
66
RUN apt-get install valgrind heaptrack -y

contrib/tools/block-replay.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,6 @@ usage() {
375375
echo " ${COLBOLD}${0}${COLRESET}"
376376
echo " ${COLYELLOW}--testing${COLRESET}: only check a small number of blocks"
377377
echo " ${COLYELLOW}-t|--terminal${COLRESET}: more terminal friendly output"
378-
echo " ${COLYELLOW}-u|--upload${COLRESET}: upload results to s3"
379378
echo " ${COLYELLOW}-n|--network${COLRESET}: run block replay against specific network (default: mainnet)"
380379
echo " ${COLYELLOW}-b|--branch${COLRESET}: branch of stacks-core to build stacks-inspect from (default: develop)"
381380
echo " ${COLYELLOW}-r|--reserved${COLRESET}: how many cpu cores to reserve for system tasks"
@@ -387,7 +386,7 @@ usage() {
387386

388387

389388
## install missing dependencies
390-
for cmd in curl tmux git wget tar gzip grep cargo pgrep aws; do
389+
for cmd in curl tmux git wget tar gzip grep cargo pgrep; do
391390
command -v "${cmd}" >/dev/null 2>&1 || {
392391
case "${cmd}" in
393392
"cargo")
@@ -396,9 +395,6 @@ for cmd in curl tmux git wget tar gzip grep cargo pgrep aws; do
396395
"pgrep")
397396
package="procps"
398397
;;
399-
"aws")
400-
package="awscli"
401-
;;
402398
*)
403399
package="${cmd}"
404400
;;

docs/release-process.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
Normal releases in this repository that add new features are released on a monthly schedule.
1717
The currently staged changes for such releases are in the [develop branch](https://github.com/stacks-network/stacks-core/tree/develop).
1818
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).
19-
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.
19+
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.
2020

2121
For fixes that impact the correct functioning or liveness of the network, _hotfixes_ may be issued.
22-
These are patches to the main branch which are backported to the develop branch after merging.
22+
These are patches to the default branch which are backported to the develop branch after merging.
2323
These hotfixes are categorized by priority according to the following rubric:
2424

2525
- **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
5858

5959
- A label should be applied to each such issue/PR as `X.Y.Z.A.n-blocker`.
6060

61-
3. Since development is continuing in the `develop` branch, it may be necessary to cherry-pick some commits into the release branch.
61+
3. Perform a [block-replay](../contrib/tools/block-replay.sh) using an existing chainstate, or sync from genesis
62+
63+
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.
6264

6365
- Create a feature branch from `release/X.Y.Z.A.n`, ex: `feat/X.Y.Z.A.n-pr_number`.
6466
- Add cherry-picked commits to the `feat/X.Y.Z.A.n-pr_number` branch
6567
- Merge `feat/X.Y.Z.A.n-pr_number` into `release/X.Y.Z.A.n`.
6668

67-
4. Open a PR to update the [CHANGELOG](../CHANGELOG.md) in the `release/X.Y.Z.A.n` branch.
69+
5. If necessary, open a PR to update the [CHANGELOG](../CHANGELOG.md) in the `release/X.Y.Z.A.n` branch.
6870

6971
- Create a chore branch from `release/X.Y.Z.A.n`, ex: `chore/X.Y.Z.A.n-changelog`.
72+
- Update [versions.toml](../versions.toml) to match this release:
73+
- Update the `stacks_node_version` string to match this release version.
74+
- Update the `stacks_signer_version` string to match `stacks_node_version`, with an appending `0` for this release version.
7075
- Add summaries of all Pull Requests to the `Added`, `Changed` and `Fixed` sections.
71-
- Update the `stacks_node_version` string in [versions.toml](../versions.toml) to match this release.
7276

7377
- 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).
7478

7579
**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.
7680

77-
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.
81+
- This PR must be merged before continuing to the next steps
82+
83+
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.
7884

79-
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.
85+
- **Note**: A `stacks-signer` release will also be produced when this workflow is run
8086

81-
7. The release candidate will test that it successfully syncs with the current chain from genesis both in testnet and mainnet.
87+
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.
8288

8389
8. If bugs or issues emerge from the rollout on staging infrastructure, the release will be delayed until those regressions are resolved.
8490

@@ -90,7 +96,7 @@ The timing of the next Stacking cycle can be found [here](https://stx.eco/dao/to
9096

9197
10. Finally, the following merges will happen to complete the release process:
9298
- Release branch `release/X.Y.Z.A.n` will be merged into the `master` branch.
93-
- Then, `master` will be merged into `develop`.
99+
- Then, `release/X.Y.Z.A.n` will be merged into `develop`.
94100

95101
## Consensus Breaking Release Process
96102

sample/conf/mainnet-miner-conf.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ rpc_bind = "127.0.0.1:20443"
44
p2p_bind = "127.0.0.1:20444"
55
prometheus_bind = "127.0.0.1:9153"
66
seed = "<YOUR_SEED>"
7-
local_peer_seed = "<YOUR_SEED>"
87
miner = true
98
mine_microblocks = false # Disable microblocks (ref: https://github.com/stacks-network/stacks-core/pull/4561 )
109

sample/conf/mocknet.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[node]
2+
# working_dir = "/dir/to/save/chainstate" # defaults to: /tmp/stacks-node-[0-9]*
3+
rpc_bind = "0.0.0.0:20443"
4+
p2p_bind = "0.0.0.0:20444"
5+
prometheus_bind = "0.0.0.0:9153"
6+
7+
[burnchain]
8+
mode = "mocknet"
9+
10+
# Used for sending events to a local stacks-blockchain-api service
11+
# [[events_observer]]
12+
# endpoint = "localhost:3700"
13+
# events_keys = ["*"]
14+

stacks-signer/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
1010
## Added
1111

1212
- Introduced the `reorg_attempts_activity_timeout_ms` configuration option for signers which is used to determine the length of time after the last block of a tenure is confirmed that an incoming miner's attempts to reorg it are considered valid miner activity.
13+
- Add signer configuration option `tenure_idle_timeout_buffer_secs` to specify the number of seconds of buffer the signer will add to its tenure extend time that it sends to miners. The idea is to allow for some clock skew between the miner and signers, preventing the case where the miner attempts to tenure extend too early.
1314

1415
### Changed
1516

stacks-signer/release-process.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ The timing of the next Stacking cycle can be found [here](https://stx.eco/dao/to
6363
- Add cherry-picked commits to the `feat/signer-X.Y.Z.A.n.x-pr_number` branch
6464
- Merge `feat/signer-X.Y.Z.A.n.x-pr_number` into `release/signer-X.Y.Z.A.n.x`.
6565

66-
4. Open a PR to update the [CHANGELOG](./CHANGELOG.md) in the `release/signer-X.Y.Z.A.n.x` branch.
66+
4. If necessary, open a PR to update the [CHANGELOG](./CHANGELOG.md) in the `release/signer-X.Y.Z.A.n.x` branch.
6767

6868
- Create a chore branch from `release/signer-X.Y.Z.A.n.x`, ex: `chore/signer-X.Y.Z.A.n.x-changelog`.
6969
- 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
8686
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).
8787

8888
9. Finally, the following merges will happen to complete the release process:
89-
- Release branch `release/signer-X.Y.Z.A.n.x` will be merged into the `master` branch.
90-
- Then, `master` will be merged into `develop`.
89+
- Release branch `release/X.Y.Z.A.n` will be merged into the `master` branch.
90+
- Then, `release/X.Y.Z.A.n` will be merged into `develop`.

stacks-signer/src/chainstate.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ pub struct ProposalEvalConfig {
124124
pub tenure_last_block_proposal_timeout: Duration,
125125
/// How much idle time must pass before allowing a tenure extend
126126
pub tenure_idle_timeout: Duration,
127+
/// How much buffer to add to the tenure idle timeout sent to miners to account for clock skew
128+
pub tenure_idle_timeout_buffer: Duration,
127129
/// Time following the last block of the previous tenure's global acceptance that a signer will consider an attempt by
128130
/// the new miner to reorg it as valid towards miner activity
129131
pub reorg_attempts_activity_timeout: Duration,
@@ -137,6 +139,7 @@ impl From<&SignerConfig> for ProposalEvalConfig {
137139
tenure_last_block_proposal_timeout: value.tenure_last_block_proposal_timeout,
138140
tenure_idle_timeout: value.tenure_idle_timeout,
139141
reorg_attempts_activity_timeout: value.reorg_attempts_activity_timeout,
142+
tenure_idle_timeout_buffer: value.tenure_idle_timeout_buffer,
140143
}
141144
}
142145
}

0 commit comments

Comments
 (0)