From 7428b5849fedd45568d542b36578de061cf2ac44 Mon Sep 17 00:00:00 2001 From: Wang Defa Date: Fri, 5 Dec 2025 17:45:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9=20Tari=20Solo=20?= =?UTF-8?q?=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init.sh | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/init.sh b/init.sh index b471bb6..0fe4dc9 100644 --- a/init.sh +++ b/init.sh @@ -14,5 +14,46 @@ sed -i 's/"donate-level": 2/"donate-level": 0/' src/config.json sed -i 's/xmrigcc/xxxigcc/' src/version.h sed -i 's/XMRigCC/XXXigCC/' src/version.h +# Add Tari Solo support information to APP_DESC for --version output +sed -i 's/\(#define APP_DESC .*\)"/\1 (with Tari Solo Mining Support)"/' src/version.h + # Modify the config.json to set verbose to true -sed -i 's/"verbose": false/"verbose": true/' src/config.json \ No newline at end of file +sed -i 's/"verbose": false/"verbose": true/' src/config.json + +# Modify BlockTemplate.cpp to support Tari 76-byte solo mining format +echo "Adding Tari Solo Mining support to BlockTemplate.cpp..." + +# Add Tari format detection at the beginning of parse(bool hashes) function +# Find the line "bool xmrig::BlockTemplate::parse(bool hashes)" and add Tari detection after the opening brace +sed -i '/^bool xmrig::BlockTemplate::parse(bool hashes)/,/^{/a\ + \/\/ Detect Tari solo mining format (76 bytes)\ + \/\/ Format: 3 bytes header + 32 bytes mining_hash + 8 bytes nonce + 33 bytes pow\ + if (m_blob.size() == 76) {\ + \/\/ Tari solo mining format - use fixed-size parsing (no varint)\ + BlobReader ar(m_blob.data(), m_blob.size());\ +\ + \/\/ Skip 3-byte header (major_version, minor_version, timestamp - all 0 for Tari)\ + ar.skip(3);\ +\ + \/\/ Skip 32-byte mining_hash\ + ar.skip(32);\ +\ + \/\/ Nonce is at offset 35 (3 + 32)\ + setOffset(NONCE_OFFSET, 35);\ + ar.skip(8); \/\/ Skip nonce (8 bytes, big-endian)\ +\ + \/\/ Skip 33-byte PoW data\ + ar.skip(33);\ +\ + \/\/ For Tari, we do not need to parse miner tx or other Monero-specific fields\ + \/\/ Just accept the template and let XMRig modify the nonce\ + return true;\ + }\ +\ + \/\/ Original Monero varint parsing for non-Tari formats +' src/base/tools/cryptonote/BlockTemplate.cpp + +# Change the original BlobReader to BlobReader to explicitly use varint parsing +sed -i 's/BlobReader ar(m_blob\.data(), m_blob\.size());/BlobReader ar(m_blob.data(), m_blob.size());/' src/base/tools/cryptonote/BlockTemplate.cpp + +echo "✅ Tari Solo Mining support added to BlockTemplate.cpp" \ No newline at end of file