mirror of
https://github.com/SChernykh/p2pool.git
synced 2024-08-19 21:18:46 -06:00
Added p2pool mini seed nodes and default port
This commit is contained in:
parent
2b01350add
commit
89bcceb986
@ -28,9 +28,8 @@
|
|||||||
|
|
||||||
static constexpr char log_category_prefix[] = "P2PServer ";
|
static constexpr char log_category_prefix[] = "P2PServer ";
|
||||||
static constexpr char saved_peer_list_file_name[] = "p2pool_peers.txt";
|
static constexpr char saved_peer_list_file_name[] = "p2pool_peers.txt";
|
||||||
static const char* seed_nodes[] = {
|
static const char* seed_nodes[] = { "seeds.p2pool.io", ""};
|
||||||
"seeds.p2pool.io"
|
static const char* seed_nodes_mini[] = { "seeds-mini.p2pool.io", "" };
|
||||||
};
|
|
||||||
|
|
||||||
static constexpr int DEFAULT_BACKLOG = 16;
|
static constexpr int DEFAULT_BACKLOG = 16;
|
||||||
static constexpr uint64_t DEFAULT_BAN_TIME = 600;
|
static constexpr uint64_t DEFAULT_BAN_TIME = 600;
|
||||||
@ -371,12 +370,10 @@ void P2PServer::load_peer_list()
|
|||||||
{
|
{
|
||||||
std::string saved_list;
|
std::string saved_list;
|
||||||
|
|
||||||
// Load peers from seed nodes if we're on the default sidechain
|
// Load peers from seed nodes if we're on the default or mini sidechain
|
||||||
if (m_pool->side_chain().is_default()) {
|
auto load_from_seed_nodes = [&saved_list](const char** nodes, int p2p_port) {
|
||||||
const int p2p_port = DEFAULT_P2P_PORT;
|
for (size_t i = 0; nodes[i][0]; ++i) {
|
||||||
|
LOGINFO(4, "loading peers from " << nodes[i]);
|
||||||
for (size_t i = 0; i < array_size(seed_nodes); ++i) {
|
|
||||||
LOGINFO(4, "loading peers from " << seed_nodes[i]);
|
|
||||||
|
|
||||||
addrinfo hints{};
|
addrinfo hints{};
|
||||||
hints.ai_family = AF_UNSPEC;
|
hints.ai_family = AF_UNSPEC;
|
||||||
@ -384,7 +381,7 @@ void P2PServer::load_peer_list()
|
|||||||
hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG;
|
hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG;
|
||||||
|
|
||||||
addrinfo* result;
|
addrinfo* result;
|
||||||
const int err = getaddrinfo(seed_nodes[i], nullptr, &hints, &result);
|
const int err = getaddrinfo(nodes[i], nullptr, &hints, &result);
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
for (addrinfo* r = result; r != NULL; r = r->ai_next) {
|
for (addrinfo* r = result; r != NULL; r = r->ai_next) {
|
||||||
const char* addr_str;
|
const char* addr_str;
|
||||||
@ -407,7 +404,7 @@ void P2PServer::load_peer_list()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (s.m_pos) {
|
if (s.m_pos) {
|
||||||
LOGINFO(4, "added " << static_cast<char*>(buf) << " from " << seed_nodes[i]);
|
LOGINFO(4, "added " << static_cast<char*>(buf) << " from " << nodes[i]);
|
||||||
if (!saved_list.empty()) {
|
if (!saved_list.empty()) {
|
||||||
saved_list += ',';
|
saved_list += ',';
|
||||||
}
|
}
|
||||||
@ -417,9 +414,16 @@ void P2PServer::load_peer_list()
|
|||||||
freeaddrinfo(result);
|
freeaddrinfo(result);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LOGWARN(3, "getaddrinfo failed for " << seed_nodes[i] << ": " << gai_strerror(err));
|
LOGWARN(3, "getaddrinfo failed for " << nodes[i] << ": " << gai_strerror(err));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (m_pool->side_chain().is_default()) {
|
||||||
|
load_from_seed_nodes(seed_nodes, DEFAULT_P2P_PORT);
|
||||||
|
}
|
||||||
|
else if (m_pool->side_chain().is_mini()) {
|
||||||
|
load_from_seed_nodes(seed_nodes_mini, DEFAULT_P2P_PORT_MINI);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finally load peers from p2pool_peers.txt
|
// Finally load peers from p2pool_peers.txt
|
||||||
|
@ -29,6 +29,7 @@ class BlockCache;
|
|||||||
static constexpr size_t P2P_BUF_SIZE = 128 * 1024;
|
static constexpr size_t P2P_BUF_SIZE = 128 * 1024;
|
||||||
static constexpr size_t PEER_LIST_RESPONSE_MAX_PEERS = 16;
|
static constexpr size_t PEER_LIST_RESPONSE_MAX_PEERS = 16;
|
||||||
static constexpr int DEFAULT_P2P_PORT = 37889;
|
static constexpr int DEFAULT_P2P_PORT = 37889;
|
||||||
|
static constexpr int DEFAULT_P2P_PORT_MINI = 37888;
|
||||||
|
|
||||||
class P2PServer : public TCPServer<P2P_BUF_SIZE, P2P_BUF_SIZE>
|
class P2PServer : public TCPServer<P2P_BUF_SIZE, P2P_BUF_SIZE>
|
||||||
{
|
{
|
||||||
|
@ -111,6 +111,16 @@ p2pool::p2pool(int argc, char* argv[])
|
|||||||
|
|
||||||
m_sideChain = new SideChain(this, type);
|
m_sideChain = new SideChain(this, type);
|
||||||
|
|
||||||
|
if (m_params->m_p2pAddresses.empty()) {
|
||||||
|
const int p2p_port = m_sideChain->is_mini() ? DEFAULT_P2P_PORT_MINI : DEFAULT_P2P_PORT;
|
||||||
|
|
||||||
|
char buf[log::Stream::BUF_SIZE + 1];
|
||||||
|
log::Stream s(buf);
|
||||||
|
s << "[::]:" << p2p_port << ",0.0.0.0:" << p2p_port << '\0';
|
||||||
|
|
||||||
|
m_params->m_p2pAddresses = buf;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_params->m_disableRandomX) {
|
if (m_params->m_disableRandomX) {
|
||||||
m_hasher = new RandomX_Hasher_RPC(this);
|
m_hasher = new RandomX_Hasher_RPC(this);
|
||||||
}
|
}
|
||||||
|
@ -104,16 +104,6 @@ Params::Params(int argc, char* argv[])
|
|||||||
|
|
||||||
m_stratumAddresses = buf;
|
m_stratumAddresses = buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_p2pAddresses.empty()) {
|
|
||||||
const int p2p_port = DEFAULT_P2P_PORT;
|
|
||||||
|
|
||||||
char buf[log::Stream::BUF_SIZE + 1];
|
|
||||||
log::Stream s(buf);
|
|
||||||
s << "[::]:" << p2p_port << ",0.0.0.0:" << p2p_port << '\0';
|
|
||||||
|
|
||||||
m_p2pAddresses = buf;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Params::ok() const
|
bool Params::ok() const
|
||||||
|
@ -51,9 +51,8 @@ static_assert(1 <= UNCLE_BLOCK_DEPTH && UNCLE_BLOCK_DEPTH <= 10, "Invalid UNCLE_
|
|||||||
|
|
||||||
namespace p2pool {
|
namespace p2pool {
|
||||||
|
|
||||||
static constexpr uint8_t default_consensus_id[HASH_SIZE] = {
|
static constexpr uint8_t default_consensus_id[HASH_SIZE] = { 34,175,126,231,181,11,104,146,227,153,218,107,44,108,68,39,178,81,4,212,169,4,142,0,177,110,157,240,68,7,249,24 };
|
||||||
34,175,126,231,181,11,104,146,227,153,218,107,44,108,68,39,178,81,4,212,169,4,142,0,177,110,157,240,68,7,249,24
|
static constexpr uint8_t mini_consensus_id[HASH_SIZE] = { 57,130,201,26,149,174,199,250,66,80,189,18,108,216,194,220,136,23,63,24,64,113,221,44,219,86,39,163,53,24,126,196 };
|
||||||
};
|
|
||||||
|
|
||||||
SideChain::SideChain(p2pool* pool, NetworkType type, const char* pool_name)
|
SideChain::SideChain(p2pool* pool, NetworkType type, const char* pool_name)
|
||||||
: m_pool(pool)
|
: m_pool(pool)
|
||||||
@ -97,11 +96,16 @@ SideChain::SideChain(p2pool* pool, NetworkType type, const char* pool_name)
|
|||||||
<< m_unclePenalty << '\0';
|
<< m_unclePenalty << '\0';
|
||||||
|
|
||||||
constexpr char default_config[] = "mainnet\0" "default\0" "\0" "10\0" "100000\0" "2160\0" "20\0";
|
constexpr char default_config[] = "mainnet\0" "default\0" "\0" "10\0" "100000\0" "2160\0" "20\0";
|
||||||
|
constexpr char mini_config[] = "mainnet\0" "mini\0" "\0" "10\0" "100000\0" "2160\0" "20\0";
|
||||||
|
|
||||||
// Hardcoded default consensus ID
|
// Hardcoded default consensus ID
|
||||||
if (memcmp(buf, default_config, sizeof(default_config) - 1) == 0) {
|
if (memcmp(buf, default_config, sizeof(default_config) - 1) == 0) {
|
||||||
m_consensusId.assign(default_consensus_id, default_consensus_id + HASH_SIZE);
|
m_consensusId.assign(default_consensus_id, default_consensus_id + HASH_SIZE);
|
||||||
}
|
}
|
||||||
|
// Hardcoded mini consensus ID
|
||||||
|
else if (memcmp(buf, mini_config, sizeof(mini_config) - 1) == 0) {
|
||||||
|
m_consensusId.assign(mini_consensus_id, mini_consensus_id + HASH_SIZE);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
const randomx_flags flags = randomx_get_flags();
|
const randomx_flags flags = randomx_get_flags();
|
||||||
randomx_cache* cache = randomx_alloc_cache(flags | RANDOMX_FLAG_LARGE_PAGES);
|
randomx_cache* cache = randomx_alloc_cache(flags | RANDOMX_FLAG_LARGE_PAGES);
|
||||||
@ -785,6 +789,11 @@ bool SideChain::is_default() const
|
|||||||
return (memcmp(m_consensusId.data(), default_consensus_id, HASH_SIZE) == 0);
|
return (memcmp(m_consensusId.data(), default_consensus_id, HASH_SIZE) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SideChain::is_mini() const
|
||||||
|
{
|
||||||
|
return (memcmp(m_consensusId.data(), mini_consensus_id, HASH_SIZE) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
bool SideChain::split_reward(uint64_t reward, const std::vector<MinerShare>& shares, std::vector<uint64_t>& rewards)
|
bool SideChain::split_reward(uint64_t reward, const std::vector<MinerShare>& shares, std::vector<uint64_t>& rewards)
|
||||||
{
|
{
|
||||||
const size_t num_shares = shares.size();
|
const size_t num_shares = shares.size();
|
||||||
|
@ -71,6 +71,7 @@ public:
|
|||||||
uint64_t miner_count();
|
uint64_t miner_count();
|
||||||
time_t last_updated() const;
|
time_t last_updated() const;
|
||||||
bool is_default() const;
|
bool is_default() const;
|
||||||
|
bool is_mini() const;
|
||||||
|
|
||||||
const PoolBlock* chainTip() const { return m_chainTip; }
|
const PoolBlock* chainTip() const { return m_chainTip; }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user