Releases: stratum-mining/stratum
v1.2.0
General release information
This release adds new Rust Docs for the following crates:
buffer_sv2
binary_sv2
framing_sv2
template_distribution_sv2
mining_sv2
job_declaration_sv2
common_messages_sv2
binary_sv2
binary_codec_sv2
derive_codec_sv2
All the public APIs should now have documentation accessible easily for the library users through https://www.docs.rs/
no_std
support was made into a default on the following crates:
buffer_sv2
framing_sv2
template_distribution_sv2
mining_sv2
job_declaration_sv2
common_messages_sv2
binary_sv2
binary_codec_sv2
derive_codec_sv2
serde_sv2
Finally, a Translator Proxy CI test that was based on the Message Generator was migrated into the new Integration Tests Framework
What's Changed
- bump crates versions for docs on release v1.1.0 by @plebhash in #1222
- Dont provie TP pubkey in test env by @jbesraa in #1225
- const_sv2: remove unused dep (secp256k1) by @Georges760 in #1237
- Fix ambiguous naming on Integration Tests Sniffer API (
next_upstream_message
vsnext_downstream_message
) by @plebhash in #1236 - Update Bencher CLI usage by @epompeii in #1241
- update rustfmt.toml by @Shourya742 in #1246
- Fix missing transaction in light mempool bug by @Shourya742 in #1239
- enforce
no_std
for some protocol/v2 crates by @Georges760 in #1230 - Update CI benchmarks workflows by @GitGab19 in #1255
- Add JDC/S initializers in integration tests by @jbesraa in #1226
- Add
tproxy
initializer for Integration Tests by @jbesraa in #1254 Sniffer
Improvements by @jbesraa in #1258sv1-mining-device
lib by @jbesraa in #1249- Allow altering messages exchanged by roles in test env by @jbesraa in #1228
tp_authority_public_key
update in pool & jdc configs by @GitGab19 in #1277- lock version for cargo semver-checks by @plebhash in #1276
common_messages_sv2
docs by @jbesraa in #1242- Job Declaration Documentation by @jbesraa in #1265
- Docs for Template Distribution Messages by @jbesraa in #1257
- doc binary-sv2 by @Shourya742 in #1231
- Minor warning and error grammar and typo fixes by @pavlenex in #1281
- Utils buffer sv2 docs by @rrybarczyk in #1232
Sniffer::wait_for_message_type
by @plebhash in #1284- fix unwrap on
sv1-mining-device
tcp connection by @plebhash in #1289 - remove redundant
Drop
implementation from ITFTemplateProvider
by @plebhash in #1291 - Duplicate tproxy MG test in integration tests by @jbesraa in #1262
- add unix specific execution permission to tp binary executable by @Shourya742 in #1293
- disable MG tproxy CI by @plebhash in #1298
- Have JDS ping local mempool less frequently by @Sjors in #1299
mining_sv2
docs by @jbesraa in #1243sv2-mining-proxy
lib by @jbesraa in #1252- use
cargo semver-checks
v0.37 and bump crate versions as a follow-up to #1276 by @plebhash in #1300 - change macos-14 to macos-13 by @Shourya742 in #1304
- bump
buffer_sv2
patch by @plebhash in #1302 - bump
derive_codec_sv2
as a consequence of Rust Docs by @plebhash in #1303 framing-sv2
doc cmts to conform to standard by @rrybarczyk in #1179- add codecov.yml to remove ci error by @Shourya742 in #1308
- feat: update println! and eprintln! to info using tracing cargo. by @devworlds in #1309
- Bump TP to 0.1.13 for CI by @Sjors in #1310
subprotocol
cratesno_std
support by @Georges760 in #1315
New Contributors
- @Georges760 made their first contribution in #1237
- @epompeii made their first contribution in #1241
- @devworlds made their first contribution in #1309
Full Changelog: v1.1.0...v1.2.0
v1.1.0
General release information:
This release is focused on improving the protocol crates documentation and adding more testing abilities to the project. Moreover, we have refined our release and git branching process.
noise-sv2
, codec-sv2
, and const_sv2
crates documentation have been re-written. All the public functions should now have documentation accessible easily for the library users through https://www.docs.rs. Documentation was also added for non public functions to make it easier for developers to maintain the code-base. In addition to the documentation, example folder was added for both crates, demonstrating how to use library code in practice.
With a goal to improve our CI checks and code reliability, we developed a new integration test framework. This testing framework allows us to run multiple roles and intercept messages exchanged between them, giving us the ability to assert the roles behavior in different scenarios. While we are not going to remove the Message Generator testing framework completely, we aim to migrate most of the current Message Generator tests to the new testing framework.
We have also changed our release and contributing process. For the contributing process, we stopped using dev
branch and now we are developing and making pull requests against main
branch. and for the release we are tagging every release through Github and creating a specific branch for it. For more info about the release and contributing process please refer to RELEASE.md
and CONTRIBUTING.md
.
From this release we are stopping to release the following crates, as they are only in PoC phase. It is planned to stabilize and start releasing them again during Q1/Q2 2025.
pool_sv2
jd_client
jd_server
mining_proxy_sv2
translator_sv2
Breaking Changes
None
Fixed Bugs
None
Other Notable Changes
None
Changelog
- Consider using release branches by @jbesraa in #1124
- merge
CONTRIBUTING.md
+README-DEV.md
by @plebhash in #1140 - stop publishing some crates by @plebhash in #1143
- update
roles/Cargo.lock
by @plebhash in #1150 pre-push
githook for fmt only + removeact
by @rrybarczyk in #1039- add
lockfiles.yaml
+ rm and gitignore some unnecessary lockfiles by @plebhash in #1102 - Auto rebase workflow addition by @GitGab19 in #1152
- Move
PoolSv2
lib code out ofmain.rs
by @jbesraa in #1097 - Move
TranslatorSv2
lib code out ofmain.rs
by @jbesraa in #1092 - Move
JDServer
lib code out ofmain.rs
by @jbesraa in #1095 - publish libs to
crates.io
on release tags by @plebhash in #1142 - Add PAT in auto-rebase workflow by @GitGab19 in #1153
- test: timeout sv-1 test by @average-gary in #1099
- global release docs by @plebhash in #1154
- ignore
test_diff_management
by @plebhash in #1074 - Fix bencher false alarms on CI by @GitGab19 in #1158
- Add integration tests project by @jbesraa in #1155
- Add Template Provider to integration test project by @jbesraa in #1156
- Use version 1.75.0 of toolchain in scripts by @lorbax in #1168
- Upgrade
cbindgen
to v0.21.0 by @jbesraa in #1170 - use 1.75.0 toolchain on sv2-header-check.yaml by @plebhash in #1172
- Separate
lib
code frombin
inmining-device
by @jbesraa in #1163 - use fixed
temp_dir
for TP on integration tests by @plebhash in #1177 - Remove dev branch occurances in ci by @Shourya742 in #1182
- Rust docs for
protocols::v2::const-sv2
by @GitGab19 in #1160 - fix
network_helpers_sv2
import onmining_pool
mod by @plebhash in #1187 - add
--nominal-hashrate-multiplier
tomining-device
by @plebhash in #1195 const_sv2
- README update to comply with docs standards by @GitGab19 in #1198- move metadata away from workspace manifests by @Shourya742 in #1193
- fix cargo warnings in roles by @jbesraa in #1191
PoolSv2
integration tests by @jbesraa in #1066- add codecov upload action in coverage.yaml by @Shourya742 in #1197
- Rust docs
noise_sv2
by @Shourya742 in #1111 - Enable
all-feature
flag for rust-docs by @GitGab19 in #1211 - Remove image referring to old git flow by @jbesraa in #1214
- update release process by @plebhash in #1216
- fix license formatting by @plebhash in #1218
New Contributors
- @average-gary made their first contribution in #1099
Full Changelog: v1.0.2...v1.1.0
v1.0.2
Global Release v1.0.2
What's Changed
- update deprecated Node.js 16 by @xyephy in #945
- fix(translator): fix HexError(OddLength) in mining.subscribe handler by @nikicat in #851
- Add droppable method for buffer pool and codec by @Fi3 in #950
- revert odd length extranonce1 patch by @plebhash in #952
- Remove useless converstion after u__::arbitrary(g) by @pythcoiner in #959
- Fix 'available' typo by @pythcoiner in #958
- Log Bitcoin target as hex, align targets by @Sjors in #961
- Fix typo Messaege -> Message by @pythcoiner in #962
- patch
bosminer
subscribe edge case by @plebhash in #965 - Bump sv1 version by @Fi3 in #966
- add "Project Maturity" section to
README.md
by @plebhash in #967 - Add missing
TemplateDistributionTypes
case by @jbesraa in #960 - [patch + MG test] tproxy receiving old share by @plebhash in #910
- fix
translation-proxy-old-share.sh
permission by @plebhash in #1000 - config examples testnet4 by @plebhash in #990
- Handle
jd-client
config error by @jbesraa in #987 - Add commit guidance to
CONTRIBUTION.MD
by @jbesraa in #991 - Add UT for JDS module by @Shourya742 in #1017
- fix
GetSize
forSubmitSolutionJd
by @plebhash in #1019 - Move scripts to folder by @jbesraa in #994
- MG understands
SubmitSolution
as a valid JD message by @plebhash in #1003 - Redefining lastDeclareJob by @Shourya742 in #1022
Framing
crate refactor: cleanupheader.rs
and removeFrame
trait by @jbesraa in #976Framing
crate refactor: cleanupframing.rs
by @jbesraa in #982- Adjust
test_diff_management
test by @jbesraa in #995 - Add MSRV 1.75 workflow check by @jbesraa in #981
- add
ActionResult::SustainConnection
to MG by @plebhash in #1024 - split MG CI jobs by @plebhash in #1056
- add
Aggregate MG Test Results
job to MG CI by @plebhash in #1060 - refine
Aggregate MG Test Results
job to MG CI by @plebhash in #1064 - Add
JobDeclaratorClient
struct by @jbesraa in #993 - Add parallelism to cpu miner by @Fi3 in #983
- doc: Add requirements on interoperability tests by @johnnyasantoss in #1047
- Graceful shutdown for mining-proxy by @johnnyasantoss in #1021
- avoid JDS dropping connection on
SubmitSolution
with missing txs by @plebhash in #1025 test_diff_management
: adjusttotal_run_time
to 60s by @plebhash in #1075- Enhance SetupConnection Handling and Implement Job declaration Flag Checks by @Shourya742 in #1035
- Remove job distribution protocol by @Shourya742 in #1072
- JDC parse incoming mining messages from upstream after SetupConnection by @plebhash in #1080
- make
no_std
into an optional feature onprotocols
crates by @plebhash in #932 - add missing
impl
forSeq0255
onbinary_sv2/serde-sv2
by @plebhash in #1085 - import
TryInto
ontemplate_distribution_sv2
by @plebhash in #1086 - Remove toml dependency by @Shourya742 in #1087
- bump protocols versioning by @plebhash in #1084
- bump
common_messages_sv2
version by @plebhash in #1088 - bump
roles_logic_sv2
version by @plebhash in #1089 - bump
binary_sv2
version by @plebhash in #1090 - Add semver check workflow yaml by @Shourya742 in #985
- Translator restart if disconnected from upstream by @lorbax in #1001
- bypass
cargo semver-checks --all-features
for roles_logic_sv2 by @plebhash in #1100 - patch
roles_logic_sv2
with_serde
flag by @plebhash in #1101 - use rust stable for semver CI by @plebhash in #1104
- update
roles/Cargo.lock
by @plebhash in #1103 - Fix JDC fallback to solo-mining by @lorbax in #1055
- rm
release-bin.yaml
by @plebhash in #1109 - Add support for data types defined by sv2 extensions by @Fi3 in #1113
- Update binary-sv2/no-serde-sv2 excport EncodablePrimitive by @Fi3 in #1118
- Remove lib versioning script by @plebhash in #1114
- Release
1.0.2
by @plebhash in #1112
New Contributors
- @pythcoiner made their first contribution in #959
- @jbesraa made their first contribution in #960
- @Shourya742 made their first contribution in #1017
- @johnnyasantoss made their first contribution in #1047
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Global Release v1.0.1
.
PR Changelog
- #939
- #933
- #929
- #930
- #927
- #924
- #926
- #904
- #905
- #913
- #900
- #908
- #875
- #894
- #848
- #898
- #866
- #879
- #800
- #802
- #805
- #887
Crate Version changes
protocols
framing-sv2
: v1.0.0 β v1.1.0codec-sv2
: v1.0.1 β v1.1.0roles-logic-sv2
: v1.0.0 β v1.1.0
roles
jd-client
: v0.1.0 β 0.1.1jd-server
: v0.1.0 β v0.1.1mining-proxy
: v0.1.0 β v0.1.1pool
: v0.1.0 β v0.1.1translator
: v0.1.0 β v0.1.1roles-utils/network-helpers
: v0.1.0 β v2.0.0
utils
key-utils
: v1.0.0 β v1.1.0
v1.0.0
Please refer to https://stratumprotocol.org/blog/sri-1-0-0/ for notes on SRI release v1.0.0