Releases: stratum-mining/stratum
v1.5.0
General release information
Highlights of this release:
-
Translator Proxy was re-written with new functionality, namely:
- aggregated and non-aggregated modes
- optional vardiff
- ability to fallback
-
Job Declarator Client was re-written with new functionality, namely:
- allowing multiple downstream clients at the same time
- allowing downstream clients to establish Standard Channels
-
new
stratum-translationcrate modularizes Sv1 β Sv2 translation logic -
BIP141 fields are now stripped from coinbase on Extended Jobs
-
new APIs added to
network_helpers_sv2, expanding ways it can be used
Crate changes
sv2_ffi
this crate was deprecated
roles_logic_sv2
crate version was bumped from 3.0.0 to 4.0.0
based on interactions with early adopters, some modules of roles_logic_sv2 were isolated into standalone crates, namely:
handlers_sv2parsers_sv2channels_sv2
handlers_sv2
new crate published at version 0.1.0
parsers_sv2
new crate published at version 0.1.1
channels_sv2
new crate published at version 0.1.0 and then bumped to 1.0.2
network_helpers_sv2
crate version was bumped from 4.0.0 to 4.0.1
stratum-common
crate version was bumped from 4.0.0 to 4.0.1
common_messages_sv2
crate version was bumped from 5.0.0 to 6.0.1
binary_codec_sv2
crate version was bumped from 2.0.0 to 3.0.0
binary_sv2
crate version was bumped from 3.0.0 to 4.0.0
framing_sv2
crate version was bumped from 5.0.0 to 5.0.1
codec_sv2
crate version was bumped from 2.1.0 to 3.0.1
mining_sv2
crate version was bumped from 4.0.0 to 5.0.1
job_declaration_sv2
crate version was bumped from 4.0.0 to 5.0.1
template_distribution_sv2
crate version was bumped from 3.0.0 to 4.0.1
sv1_api
crate version was bumped from 2.1.0 to 2.1.1
rpc_sv2
crate version was bumped from 1.1.0 to 1.1.1
PR List
- isolate
channels_sv2andparsers_sv2into standalone crates by @plebhash in #1795 - introduce custom difficulty TP on Integration Tests by @plebhash in #1760
- Fix broken Getting Started link in README by @Cyber-Lord in #1803
- Improve tracing defaults and add download warning log by @lucasbalieiro in #1807
- standardize rewards to pool/solo mining into a single
scriptPubKeyby @lucasbalieiro in #1800 - Rename
config-helperstoconfig_helpers_sv2and remove of unusedroles-logic-sv2by @GitGab19 in #1812 - Update rpc_sv2 version to 1.1.0 in Cargo.toml and Cargo.lock by @GitGab19 in #1815
- ci: add semver checks for config-helpers in workflow by @GitGab19 in #1813
- deprecate
test/scalecrate by @lucasbalieiro in #1809 - bump:
sv1_apiv1.0.1 β v2.0.0 by @GitGab19 in #1820 - add noise stream by @Shourya742 in #1792
- Refactor handler by @Shourya742 in #1806
- Update roles rust edition to 2021 by @lucasbalieiro in #1818
- remove pool and miner tag from
extranonce_prefixby @plebhash in #1824 - run clippy and fmt across codebase by @lucasbalieiro in #1830
- fix overlooked consequences of
SetupConnection.REQUIRES_WORK_SELECTIONby @plebhash in #1826 - allow updating Standard Channel Server state with Extended Job from Group Channel by @plebhash in #1828
- Disambiguate handler method names for client/server message processing by @Shourya742 in #1831
- downgrade
roles_logic_sv2to 4.0.0 by @GitGab19 in #1836 - strip BIP141 from Extended Jobs by @plebhash in #1832
- feat: add stratum-translation library for SV1βSV2 protocol translation by @GitGab19 in #1833
- Deprecate
sv2-fficrate by @GitGab19 in #1835 - fix sigops calculation for
CoinbaseOutputContraintsby @plebhash in #1838 - feat: add set_chain_tip method to client channels' APIs by @GitGab19 in #1839
- Finishes rust docs for
channel_sv2by @lucasbalieiro in #1817 - Turns
channel_sv2::client::*no_stdcompatible by @lucasbalieiro in #1840 - make
parsers_sv2no_stdcompatible by @lucasbalieiro in #1842 - fix
SetCustomMiningJobedge cases by @plebhash in #1845 channels_sv2adaptations for new JDC by @plebhash in #1846- enforce full allocation of template revenue on
JobFactory::new_coinbase_tx_prefix_and_suffixby @plebhash in #1849 - improve sniffer logging data by @lucasbalieiro in #1855
- fix the divergence of field names in DeclareMiningJob by @lucasbalieiro in #1856
- revert renaming
MAX_EXTRANONCE_LENby @plebhash in #1864 - Fix display trait behavior for
Str0255andB0255by @lucasbalieiro in #1865 - remove unnecessary Cargo.lock and add to .gitignore by @lucasbalieiro in #1868
- fix: remove unwrap in JDS by @GitGab19 in #1879
- chore: Clippy update by @Shourya742 in #1888
- Improve handlers by @Shourya742 in #1886
- Add close channel method to pool by @Shourya742 in #1890
JobStoreas generic by @plebhash in #1884- implements display traits for sv1 messages by @lucasbalieiro in #1891
- Make vardiff pool statically dispatch by @Shourya742 in #1896
- improve pool vardiff error logs by @plebhash in #1900
- Speed up (sv2 native) CPU miner by @Sjors in #1901
- New Job Declarator Client by @Shourya742 in #1843
- fix: correct typo 'Startum' to 'Stratum' in V1 protocol documentation by @BRIGHTON-ASUMANI in #1893
- New Translator Proxy by @GitGab19 in #1791
- cover
handlers_sv2onrelease-libs.yamlby @plebhash in #1908 - deprecate channel_logic and job_creator modules from
roles_logic_sv2crate by @GitGab19 in #1906 - ci(msrv): enforce locked builds in MSRV workflow by @Sjors in #1905
- bump PATCH of
binary_sv2crate by @GitGab19 in #1909 - specify dependencies versions of
stratum_translationcrate by @GitGab19 in #1910 - Fix
stratum-commonv4.0.0 andrpc_sv2v1.1.0 version conflict by @GitGab19 in #1913 - bump PATCH for
codec_sv2+framing_sv2+parsers_sv2+common_messages_sv2by @plebhash in #1912
New Contributors
- @Cyber-Lord made their first contribution in #1803
- @BRIGHTON-ASUMANI made their first contribution in #1893
Full Changelog: v1.4.0...v1.5.0
v1.4.0
General release information
Highlights of this release:
- Implemented recent
Job Declaration(JD) spec changes in SRI - Introduced simplified and unified channel/job APIs in
roles_logic_sv2, enabling correct SV2 behavior across all channel states without imposing architectural decisions on adopters. Pool migrated to use these APIs - Modularized
vardifflogic to make it reusable across roles - Deprecated
mining_proxy_sv2and cleaned uproles_logic_sv2internals - Simplified UX for configuring custom coinbase output with user-defined reward address
- Added documentation for all roles: Pool, JDS, JDC, and tProxy
This release also includes internal refactors, documentation improvements, and CI/test enhancements.
Crate changes
const_sv2
this crate has been deprecated
roles_logic_sv2
some new modules were introduced, namely:
channels
some modules were refactored, namely:
handlerschannel_logic
it had the following modules removed, namely:
common_propertiesjob_dispatcher
crate version was bumped from 2.0.0 to 3.0.0
stratum_common
crate version was bumped from 2.0.0 to 3.0.0
network_helpers_sv2
crate version was bumped from 3.0.0 to 4.0.0
job_declaration_sv2
crate version was bumped from 3.0.0 to 4.0.0
mining_sv2
crate version was bumped from 3.0.0 to 4.0.0
common_messages_sv2
crate version was bumped from 4.0.0 to 5.0.0
framing_sv2
crate version was bumped from 4.0.0 to 5.0.0
noise_sv2
crate version was bumped from 1.3.0 to 1.4.0
template_distribution_sv2
crate version was bumped from 3.0.0 to 3.1.0
codec_sv2
crate version was bumped from 2.0.0 to 2.1.0
sv2_ffi
crate version was bumped from 2.0.0 to 2.1.0
binary_sv2
crate version was bumped from 2.0.0 to 3.0.0
PR List
- Use same(1.44.1) tokio version across the project by @jbesraa in #1603
- Make
Snifferunblocking and upgrade TP by @jbesraa in #1592 - rust
1.85set in cargo-semver-check workflow by @GitGab19 in #1622 - Reintroduce TProxy-JD integration test by @jbesraa in #1625
- Improve UpdateChannel/SetTarget handling on Pool and tProxy by @GitGab19 in #1620
- Remove unused
urlmodule by @jbesraa in #1636 - Refactor
IsUpstreamandIsMiningUpstreamtraits to simplify generics used inside handlers by @GitGab19 in #1628 - remove github hooks by @Shourya742 in #1645
- Change
SUBMIT_SOLUTION_JDtoPUSH_SOLUTIONby @jbesraa in #1629 - Renaming of
translator configandmining proxy configby @Sansh2356 in #1639 - JDS documentation improvements by @GitGab19 in #1640
- Move constants to
stratum-commonby @jbesraa in #1642 - #1629 followup by @jbesraa in #1646
- Remove
SetCustomMiningJob::extranonce_sizeby @jbesraa in #1651 - Upgrade
corepcto0.7.0by @jbesraa in #1663 - remove dockerfile from tproxy by @Shourya742 in #1656
- Change async mining terminology by @jbesraa in #1654
- Document pub code in pool by @Shourya742 in #1542
- Add translator docs by @Shourya742 in #1658
- Remove short transaction ids by @jbesraa in #1650
- SV2 Constants Cleanup by @jbesraa in #1667
- add jdc doc by @Shourya742 in #1614
sv1_api: Setup framework to test IsServer by @pool2win in #1668- Combine
Snifferintegration tests by @jbesraa in #1662 - remove run.sh from jd-client by @Shourya742 in #1711
- Add
MockDownstreamby @jbesraa in #1671 - remove special library naming in roles by @Shourya742 in #1709
- using Box for large variants in v1 crate by @Shourya742 in #1716
- remove redundant map_err's in translators by @Shourya742 in #1712
- Add
MockUpstreammodule by @jbesraa in #1715 - Refactor and unification of
CoinbaseOutputtype by @apoelstra in #1719 - introduce simplified APIs for channel and job logic (server side) by @plebhash in #1672
- fix integration tests lockfile by @plebhash in #1721
- stop excluding
config-helpersfromrolesworkspace by @plebhash in #1723 - separate vardiff module by @Shourya742 in #1714
- introduce simplified APIs for channel and job logic (client side) by @plebhash in #1724
- realocate constants to their specific crates by @plebhash in #1728
- add verification on
roles_logic_sv2::channels::*::standard::StandardChannel::set_extranonce_prefixby @plebhash in #1730 - migrate Pool to new
channelsmodule ofroles_logic_sv2by @plebhash in #1718 - Add vardiff test framework by @Shourya742 in #1729
- Refactor CLI argument parsing with
clapby @lucasbalieiro in #1739 - fix group channel handling on pool by @plebhash in #1748
- Update vardiff by @Shourya742 in #1747
- fix unnecessary version bumps by @plebhash in #1749
- add support for Custom Jobs on
channels::serverAPIs by @plebhash in #1741 - Simplify network helpers by @Shourya742 in #1750
- add
get_chain_tipto client channels by @plebhash in #1756 - add
get_share_accountingto client channels by @plebhash in #1757 - update imports in
rolesandteststo reflect library reorganization by @lucasbalieiro in #1744 - Add vardiff to pool by @Shourya742 in #1737
- run Integration Tests via
cargo nextestby @plebhash in #1758 - remove
SetCustomMiningJob.coinbase_tx_value_remainingby @plebhash in #1745 - remove redudant fields from
AllocateMiningJobToken.Successby @plebhash in #1759 - cover crate examples on CI by @plebhash in #1754
- Refactor network helpers pass 2 by @Shourya742 in #1764
- Correct Coinbase Output Length Calculation in
PoolRole Implementation by @lucasbalieiro in #1761 - Handle overlflow in u256 by @GitGab19 in #1752
- run clippy on the entire codebase by @lucasbalieiro in #1769
- change coverage workflows to run only when commits are pushed to main by @lucasbalieiro in #1767
- fix coinbase deserialization by @plebhash in #1772
- decouple job state from channels with JobStore by @coleFD in #1779
- Update readme logos by @pavlenex in #1784
- Refactor sv1 connection by @Shourya742 in #1782
- add check on coinbase output script pubkey for custom job on Pool by @plebhash in #1775
- Implements Display for messages across the codebase by @lucasbalieiro in #1755
- add static lifetime converters to
roles_logic_sv2::parsersmodule by @plebhash in #1790 - fix unnecessary creation of group channels on pool by @plebhash in #1788
- re-introduce dedicated function to deserialize outputs from
NewTemplatemessage by @plebhash in #1777 - deprecate
mining_proxy_sv2and related modules ofroles_logic_sv2by @plebhash in #1765 - use cursor in deserialize_template_outputs by @Shourya742 in #1794
- Implements roles functionality to write logs t...
v1.3.0
General release information
This release migrates the old CI system based on Message Generator into the new SRI Integration Tests Framework.
crate changes
noise_sv2
no_std compatibility was made optional
crate version was bumped from v1.2.1 to v1.3.0
codec_sv2
no_std compatibility was made optional
crate version was bumped from v1.3.1 to v2.0.0
key-utils
was made no_std-compatible (optionally)
crate version was bumped from v1.1.0 to v1.2.0
roles_logic_sv2
some modules were refactored, namely:
handlersjob_creatorjob_dispatcherchannel_logic
it had the following modules removed:
routersselectors
crate version was bumped from v1.2.3 to v2.0.0
network_helpers_sv2
the async_std flavors were removed, leaving only tokio flavor
Connection no longer returns AbortHandles
crate version was bumped from v2.0.2 to v3.0.0
framing_sv2
with_serde feature flag was removed
crate version was bumped from v3.0.0 to v4.0.0
common_messages_sv2
with_serde feature flag was removed
crate version was bumped from v3.0.0 to v4.0.0
job_declaration_sv2
with_serde feature flag was removed
crate version was bumped from v2.0.0 to v3.0.0
mining_sv2
with_serde feature flag was removed
ExtendedExtranonce was refactored
crate version was bumped from v2.0.0 to v3.0.0
template_distribution_sv2
with_serde feature flag was removed
crate version was bumped from v2.0.0 to v3.0.0
sv2-ffi
with_serde feature flag was removed
crate version was bumped from v1.0.2 to v2.0.0
buffer_sv2
with_serde feature flag was removed
crate version was bumped from v1.1.1 to v2.0.0
binary_sv2
serde-based functionality was deprecated
crate version was bumped from v1.2.1 to v2.0.0
PR list
- Test Pool role behavior if bad
coinbase_outputis provided by @jbesraa in #1306 - Integration tests cleanup by @jbesraa in #1297
- Propose an implementation of
noise_sv2with optionalno_stdby @Georges760 in #1238 - fix jdc sigterm signalling issue by @Shourya742 in #1321
- fix sigterm issue with translator sv2 by @Shourya742 in #1319
- docs
roles_logic_sv2by @plebhash in #1263 Sniffermessages cleaner by @jbesraa in #1341- Handle
cargo buildwarnings by @jbesraa in #1337 codec_sv2with optionalno_stdby @Georges760 in #1346- add vinteum to README by @plebhash in #1361
InterceptMessagecleanup by @plebhash in #1339- Remove benches execution from CI by @GitGab19 in #1357
- Integration tests avoid tmp dir by @plebhash in #1359
- remove MG
standard-coverage-testby @plebhash in #1363 integration_tests_sv2docs cleanup by @plebhash in #1340- Remove
replacement_mesage_typeby @jbesraa in #1367 - Allow backtrace print to stdout in integration tests by @jbesraa in #1382
- Add retry logic to ensure the pool waits and connect to TP by @Shourya742 in #1378
- Handle unwrap when shutting down JDC server by @jbesraa in #1352
- replace bitcoind with corpc-node crate by @Shourya742 in #1386
- avoid running workflows AFTER merging PRs by @plebhash in #1373
- retry mechanism addition to download bitcoind tarball by @GitGab19 in #1393
- cleanup
template-provider-testcrate fromexamplesby @plebhash in #1403 - remove benches workflow from CI by @GitGab19 in #1391
- disable codecov github checks annotation by @Shourya742 in #1400
- simplify
[package.metadata.docs.rs]on remaining crates by @plebhash in #1364 - add CI for Rust Docs by @plebhash in #1313
- guix cleanup by @plebhash in #1405
- cleanup
sv2-proxyexample by @plebhash in #1406 - Braiins/cross testing by @jakubtrnka in #1396
- Refactor ping pong example by @plebhash in #977
- point MG crate to crate.io, than using protocol relative path by @Shourya742 in #1422
- Refactor ping pong encrypted example by @plebhash in #1007
- Sniffer fixes by @jbesraa in #1401
- move Sv1 example to crate by @plebhash in #1404
- Add jds-do-not-fail-on-jdc-shutdown integration test by @Shourya742 in #1360
- remove shutdown notification from downstream disconnect by @Shourya742 in #1427
- remove async std from translator by @Shourya742 in #1424
- remove async-std from mining-device-sv1 by @Shourya742 in #1423
- Protocols v2 no_std support by @Georges760 in #1394
- cleanup
async_stdfromnetwork_helpers_sv2by @plebhash in #1433 - remove with_serde from roles by @Shourya742 in #1454
- remove serde feature from protocol crate by @Shourya742 in #1455
- remove binary sv2 serde by @Shourya742 in #1459
key-utils: make it no_std with astddefault feature by @Georges760 in #1398- Add
tracing-subscriberto itf by @jbesraa in #1430 TemplateProvidercleanup by @jbesraa in #1369- Add TemplateProvider::rpc_info by @jbesraa in #1429
- Remove reject auth test from MG and its footprint by @jbesraa in #1482
- Rename
pool_signaturefield ofchannel_factoryintoadditional_coinbase_script_data, and change the type fromStringtoVec<u8>by @plebhash in #1442 - update action checkout version semver by @Shourya742 in #1494
- sv1 mining device tweaks by @jbesraa in #1485
- Bump
rust-bitcointov0.32.5by @GitGab19 in #1487 - update
common/Cargo.lockby @plebhash in #1509 - remove assumption that coinbase scriptSig prefix contains only BIP34 by @plebhash in #1461
- Fix binary sv2 proc macro by @Shourya742 in #1502
- additional check on
template_idbefore updatinglast_set_new_prev_hashon JDC by @GitGab19 in #1512 poolconfig struct changes by @jbesraa in #1493- Test JDC connection with TP by @jbesraa in #1508
- remove env-filter by @Shourya742 in #1499
- run MG tests from new repo by @plebhash in #1428
- Test Translator, JD and miner setup by @jbesraa in #1354
- Upgrade actions in ci by @jbesraa in #1520
PoolMessagesremoval in favor of genericAnyMessageby @GitGab19 in #1521- Add sv2 mining device to itf by @jbesraa in #1526
- Use stable rust in
clippycheck and move to a shell script by @jbesraa in #1492 - Split tests by @jbesraa in #1529
- Prevent TP from immediately failing by @jbesraa in #1527
- Restructure JD configs by @jbesraa in #1507
- fix JDC listening address on example config files by @plebhash in #1536
- refactor: update dependencies for bip32 key derivation util by @average-gary in #1528
prev_hashaddition inLastDeclareJobto av...
v1.2.1
General release information
This is a PATCH release.
After v1.2.0 we identified a bug on roles_logic_sv2 crate, which is described in detail on #1324
The bug manifested while mining on testnet4. Originally, the non-future job creation logic on roles_logic_sv2 always used the system time for the header timestamp, instead of the timestamp defined by the SetNewPrevHash message sent by the Template Provider. This went un-noticed for a long time, until it was noticed while mining on testnet4 (where blocks are regularly mined with timestamps pushed into the future in order to exploit the difficulty adjustment mechanism).
Now, non-future jobs are always created by using the original timestamp defined by the Template Provider.
What's Changed
- simplify
[package.metadata.docs.rs]onprotocolscrates by @plebhash in #1318 - Fix timestamp bug -
min_ntimebecomes always the one sent by TP by @GitGab19 in #1325
Full Changelog: v1.2.0...v1.2.1
v1.2.0
General release information
This release adds new Rust Docs for the following crates:
buffer_sv2binary_sv2framing_sv2template_distribution_sv2mining_sv2job_declaration_sv2common_messages_sv2binary_sv2binary_codec_sv2derive_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_sv2framing_sv2template_distribution_sv2mining_sv2job_declaration_sv2common_messages_sv2binary_sv2binary_codec_sv2derive_codec_sv2serde_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_messagevsnext_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_stdfor 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
tproxyinitializer for Integration Tests by @jbesraa in #1254 SnifferImprovements by @jbesraa in #1258sv1-mining-devicelib by @jbesraa in #1249- Allow altering messages exchanged by roles in test env by @jbesraa in #1228
tp_authority_public_keyupdate in pool & jdc configs by @GitGab19 in #1277- lock version for cargo semver-checks by @plebhash in #1276
common_messages_sv2docs 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_typeby @plebhash in #1284- fix unwrap on
sv1-mining-devicetcp connection by @plebhash in #1289 - remove redundant
Dropimplementation from ITFTemplateProviderby @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_sv2docs by @jbesraa in #1243sv2-mining-proxylib by @jbesraa in #1252- use
cargo semver-checksv0.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_sv2patch by @plebhash in #1302 - bump
derive_codec_sv2as a consequence of Rust Docs by @plebhash in #1303 framing-sv2doc 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
subprotocolcratesno_stdsupport 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_sv2jd_clientjd_servermining_proxy_sv2translator_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.mdby @plebhash in #1140 - stop publishing some crates by @plebhash in #1143
- update
roles/Cargo.lockby @plebhash in #1150 pre-pushgithook for fmt only + removeactby @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
PoolSv2lib code out ofmain.rsby @jbesraa in #1097 - Move
TranslatorSv2lib code out ofmain.rsby @jbesraa in #1092 - Move
JDServerlib code out ofmain.rsby @jbesraa in #1095 - publish libs to
crates.ioon 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_managementby @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
cbindgento v0.21.0 by @jbesraa in #1170 - use 1.75.0 toolchain on sv2-header-check.yaml by @plebhash in #1172
- Separate
libcode frombininmining-deviceby @jbesraa in #1163 - use fixed
temp_dirfor TP on integration tests by @plebhash in #1177 - Remove dev branch occurances in ci by @Shourya742 in #1182
- Rust docs for
protocols::v2::const-sv2by @GitGab19 in #1160 - fix
network_helpers_sv2import onmining_poolmod by @plebhash in #1187 - add
--nominal-hashrate-multipliertomining-deviceby @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
PoolSv2integration tests by @jbesraa in #1066- add codecov upload action in coverage.yaml by @Shourya742 in #1197
- Rust docs
noise_sv2by @Shourya742 in #1111 - Enable
all-featureflag 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
bosminersubscribe edge case by @plebhash in #965 - Bump sv1 version by @Fi3 in #966
- add "Project Maturity" section to
README.mdby @plebhash in #967 - Add missing
TemplateDistributionTypescase by @jbesraa in #960 - [patch + MG test] tproxy receiving old share by @plebhash in #910
- fix
translation-proxy-old-share.shpermission by @plebhash in #1000 - config examples testnet4 by @plebhash in #990
- Handle
jd-clientconfig error by @jbesraa in #987 - Add commit guidance to
CONTRIBUTION.MDby @jbesraa in #991 - Add UT for JDS module by @Shourya742 in #1017
- fix
GetSizeforSubmitSolutionJdby @plebhash in #1019 - Move scripts to folder by @jbesraa in #994
- MG understands
SubmitSolutionas a valid JD message by @plebhash in #1003 - Redefining lastDeclareJob by @Shourya742 in #1022
Framingcrate refactor: cleanupheader.rsand removeFrametrait by @jbesraa in #976Framingcrate refactor: cleanupframing.rsby @jbesraa in #982- Adjust
test_diff_managementtest by @jbesraa in #995 - Add MSRV 1.75 workflow check by @jbesraa in #981
- add
ActionResult::SustainConnectionto MG by @plebhash in #1024 - split MG CI jobs by @plebhash in #1056
- add
Aggregate MG Test Resultsjob to MG CI by @plebhash in #1060 - refine
Aggregate MG Test Resultsjob to MG CI by @plebhash in #1064 - Add
JobDeclaratorClientstruct 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
SubmitSolutionwith missing txs by @plebhash in #1025 test_diff_management: adjusttotal_run_timeto 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_stdinto an optional feature onprotocolscrates by @plebhash in #932 - add missing
implforSeq0255onbinary_sv2/serde-sv2by @plebhash in #1085 - import
TryIntoontemplate_distribution_sv2by @plebhash in #1086 - Remove toml dependency by @Shourya742 in #1087
- bump protocols versioning by @plebhash in #1084
- bump
common_messages_sv2version by @plebhash in #1088 - bump
roles_logic_sv2version by @plebhash in #1089 - bump
binary_sv2version 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-featuresfor roles_logic_sv2 by @plebhash in #1100 - patch
roles_logic_sv2with_serdeflag by @plebhash in #1101 - use rust stable for semver CI by @plebhash in #1104
- update
roles/Cargo.lockby @plebhash in #1103 - Fix JDC fallback to solo-mining by @lorbax in #1055
- rm
release-bin.yamlby @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.2by @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