mirror of
https://github.com/xmrig/xmrig.git
synced 2025-12-10 01:02:40 -05:00
Compare commits
5 Commits
c94b063f64
...
bc8a42c53e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc8a42c53e | ||
|
|
07e1e77c4f | ||
|
|
50a98a4bb1 | ||
|
|
c50369d65d | ||
|
|
df031be628 |
45
Dockerfile
Normal file
45
Dockerfile
Normal file
@@ -0,0 +1,45 @@
|
||||
# Build in disposable container so run-time container is small
|
||||
FROM alpine:latest as build
|
||||
|
||||
# Build from master by default but allow build time specification
|
||||
ARG ref=master
|
||||
ENV my_ref=$ref
|
||||
|
||||
# Developers may wish to specify an alternate repository for source
|
||||
ARG repo=https://github.com/xmrig/xmrig.git
|
||||
ENV my_repo=$repo
|
||||
|
||||
RUN set -ex && \
|
||||
# testing required for hwloc
|
||||
echo @testing http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
|
||||
|
||||
RUN set -ex && \
|
||||
apk --no-cache --update add \
|
||||
coreutils file grep openssl tar binutils \
|
||||
cmake g++ git linux-headers libpthread-stubs make hwloc-dev@testing \
|
||||
libuv-dev openssl-dev
|
||||
|
||||
WORKDIR /usr/local/src
|
||||
|
||||
RUN set -ex && \
|
||||
git clone $my_repo xmrig && \
|
||||
cd xmrig && git checkout $my_ref && \
|
||||
cmake -B build && \
|
||||
cd build && \
|
||||
make
|
||||
|
||||
# runtime container
|
||||
FROM alpine:latest
|
||||
|
||||
RUN set -ex && \
|
||||
# testing required for hwloc
|
||||
echo @testing http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
|
||||
|
||||
RUN set -ex && \
|
||||
apk --no-cache --update add \
|
||||
# required libraries packages
|
||||
openssl libuv hwloc@testing
|
||||
|
||||
COPY --from=build /usr/local/src/xmrig/build/xmrig /bin/
|
||||
|
||||
ENTRYPOINT ["/bin/xmrig"]
|
||||
@@ -54,6 +54,7 @@ static const CoinInfo coinInfo[] = {
|
||||
{ Algorithm::KAWPOW_RVN, "RVN", "Ravencoin", 0, 0, BLUE_BG_BOLD( WHITE_BOLD_S " raven ") },
|
||||
{ Algorithm::RX_WOW, "WOW", "Wownero", 300, 100000000000, MAGENTA_BG_BOLD(WHITE_BOLD_S " wownero ") },
|
||||
{ Algorithm::RX_0, "ZEPH", "Zephyr", 120, 1000000000000, BLUE_BG_BOLD( WHITE_BOLD_S " zephyr ") },
|
||||
{ Algorithm::RX_0, "Townforge","Townforge", 30, 100000000, MAGENTA_BG_BOLD(WHITE_BOLD_S " townforge ") },
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
RAVEN,
|
||||
WOWNERO,
|
||||
ZEPHYR,
|
||||
TOWNFORGE,
|
||||
MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* XMRig
|
||||
* Copyright (c) 2012-2013 The Cryptonote developers
|
||||
* Copyright (c) 2014-2021 The Monero Project
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2023 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2023 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -207,7 +207,11 @@ bool xmrig::BlockTemplate::parse(bool hashes)
|
||||
setOffset(MINER_TX_PREFIX_OFFSET, ar.index());
|
||||
|
||||
ar(m_txVersion);
|
||||
ar(m_unlockTime);
|
||||
|
||||
if (m_coin != Coin::TOWNFORGE) {
|
||||
ar(m_unlockTime);
|
||||
}
|
||||
|
||||
ar(m_numInputs);
|
||||
|
||||
// must be 1 input
|
||||
@@ -280,6 +284,10 @@ bool xmrig::BlockTemplate::parse(bool hashes)
|
||||
ar(m_viewTag);
|
||||
}
|
||||
|
||||
if (m_coin == Coin::TOWNFORGE) {
|
||||
ar(m_unlockTime);
|
||||
}
|
||||
|
||||
ar(m_extraSize);
|
||||
|
||||
setOffset(TX_EXTRA_OFFSET, ar.index());
|
||||
@@ -335,6 +343,11 @@ bool xmrig::BlockTemplate::parse(bool hashes)
|
||||
uint8_t vin_rct_type = 0;
|
||||
ar(vin_rct_type);
|
||||
|
||||
// no way I'm parsing a full game update here
|
||||
if (m_coin == Coin::TOWNFORGE && m_height % 720 == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// must be RCTTypeNull (0)
|
||||
if (vin_rct_type != 0) {
|
||||
return false;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* XMRig
|
||||
* Copyright (c) 2012-2013 The Cryptonote developers
|
||||
* Copyright (c) 2014-2021 The Monero Project
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2023 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2023 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -33,6 +33,25 @@
|
||||
|
||||
bool xmrig::WalletAddress::decode(const char *address, size_t size)
|
||||
{
|
||||
uint64_t tf_tag = 0;
|
||||
if (size >= 4 && !strncmp(address, "TF", 2)) {
|
||||
tf_tag = 0x424200;
|
||||
switch (address[2])
|
||||
{
|
||||
case '1': tf_tag |= 0; break;
|
||||
case '2': tf_tag |= 1; break;
|
||||
default: tf_tag = 0; return false;
|
||||
}
|
||||
switch (address[3]) {
|
||||
case 'M': tf_tag |= 0; break;
|
||||
case 'T': tf_tag |= 0x10; break;
|
||||
case 'S': tf_tag |= 0x20; break;
|
||||
default: tf_tag = 0; return false;
|
||||
}
|
||||
address += 4;
|
||||
size -= 4;
|
||||
}
|
||||
|
||||
static constexpr std::array<int, 9> block_sizes{ 0, 2, 3, 5, 6, 7, 9, 10, 11 };
|
||||
static constexpr char alphabet[] = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
||||
constexpr size_t alphabet_size = sizeof(alphabet) - 1;
|
||||
@@ -114,6 +133,10 @@ bool xmrig::WalletAddress::decode(const char *address, size_t size)
|
||||
if (memcmp(m_checksum, md, sizeof(m_checksum)) == 0) {
|
||||
m_data = { address, size };
|
||||
|
||||
if (tf_tag) {
|
||||
m_tag = tf_tag;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -228,6 +251,16 @@ const xmrig::WalletAddress::TagInfo &xmrig::WalletAddress::tagInfo(uint64_t tag)
|
||||
{ 0x54, { Coin::GRAFT, TESTNET, PUBLIC, 28881, 28882 } },
|
||||
{ 0x55, { Coin::GRAFT, TESTNET, INTEGRATED, 28881, 28882 } },
|
||||
{ 0x70, { Coin::GRAFT, TESTNET, SUBADDRESS, 28881, 28882 } },
|
||||
|
||||
{ 0x424200, { Coin::TOWNFORGE, MAINNET, PUBLIC, 18881, 18882 } },
|
||||
{ 0x424201, { Coin::TOWNFORGE, MAINNET, SUBADDRESS, 18881, 18882 } },
|
||||
|
||||
{ 0x424210, { Coin::TOWNFORGE, TESTNET, PUBLIC, 28881, 28882 } },
|
||||
{ 0x424211, { Coin::TOWNFORGE, TESTNET, SUBADDRESS, 28881, 28882 } },
|
||||
|
||||
{ 0x424220, { Coin::TOWNFORGE, STAGENET, PUBLIC, 38881, 38882 } },
|
||||
{ 0x424221, { Coin::TOWNFORGE, STAGENET, SUBADDRESS, 38881, 38882 } },
|
||||
|
||||
};
|
||||
|
||||
const auto it = tags.find(tag);
|
||||
|
||||
Reference in New Issue
Block a user