Version v3.8.0 matching merge mining support

This commit is contained in:
DataHoarder 2024-04-23 19:05:26 +02:00
parent b5acb8ed03
commit c0e8e81e3b
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
5 changed files with 25 additions and 37 deletions

3
.gitignore vendored
View file

@ -1,4 +1,5 @@
.idea
p2pool.cache
p2pool_peers.txt
default.pgo.tmp
default.pgo.tmp
*.json

View file

@ -15,7 +15,7 @@ You can also use the OpenAlias `p2pool.observer` directly on the GUI.
You can run or build go-p2pool via Golang to create native binaries for your system.
See the Dependencies section below if you want to use the [tevador/RandomX](https://github.com/tevador/RandomX) library. If you do so, remove all `CGO_ENABLED=0` from your commands.
See the Dependencies section below if you want to use the [tevador/RandomX](https://github.com/tevador/RandomX) library. If you do so, remove all `CGO_ENABLED=0` from your commands and add `-tags enable_randomx_library` to go commands.
```bash
# Directly run go-p2pool
@ -87,33 +87,4 @@ You can use either `-[arg] or --[arg]`
IP:port for stratum server to listen on. Empty to disable.
-zmq-port uint
monerod ZMQ pub port number (default 18083)
```
## Dependency notes
### RandomX without external dependencies
Set `CGO_ENABLED=0` to disable CGO and build everything via Golang, or alternatively via `disable_randomx_library` build tag.
Uses Golang [git.gammaspectra.live/P2Pool/go-randomx](https://git.gammaspectra.live/P2Pool/go-randomx) RandomX backend for consensus PoW checking.
Only supports light mode, with almost no JIT support.
### RandomX with external dependency and CGO
Requires a native RandomX implementation and `CGO_ENABLED=1` environment variable while building.
Uses C/C++ [tevador/RandomX](https://github.com/tevador/RandomX) library.
Supports full and light mode, with JIT support implemented across many platforms.
You can install the dependency via this command:
```bash
$ git clone --depth 1 --branch v1.2.1 https://github.com/tevador/RandomX.git /tmp/RandomX && cd /tmp/RandomX && \
mkdir build && cd build && \
cmake .. -DCMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
make -j$(nproc) && \
sudo make install && \
cd ../ && \
rm -rf /tmp/RandomX
```

5
go.mod
View file

@ -3,7 +3,7 @@ module git.gammaspectra.live/P2Pool/go-p2pool/v3
go 1.22
require (
git.gammaspectra.live/P2Pool/consensus/v3 v3.7.0
git.gammaspectra.live/P2Pool/consensus/v3 v3.8.0
git.gammaspectra.live/P2Pool/observer-cache-archive v0.0.0-20240413050335-08f79500c0c1
github.com/gorilla/mux v1.8.1
)
@ -11,10 +11,11 @@ require (
require (
git.gammaspectra.live/P2Pool/edwards25519 v0.0.0-20240405085108-e2f706cb5c00 // indirect
git.gammaspectra.live/P2Pool/go-json v0.99.0 // indirect
git.gammaspectra.live/P2Pool/go-randomx/v2 v2.1.0 // indirect
git.gammaspectra.live/P2Pool/go-randomx/v3 v3.1.0 // indirect
git.gammaspectra.live/P2Pool/monero-base58 v1.0.0 // indirect
git.gammaspectra.live/P2Pool/randomx-go-bindings v1.0.0 // indirect
git.gammaspectra.live/P2Pool/sha3 v0.17.0 // indirect
git.gammaspectra.live/P2Pool/softfloat64 v1.0.0 // indirect
git.gammaspectra.live/P2Pool/zmq4 v0.99.0 // indirect
github.com/dolthub/maphash v0.1.0 // indirect
github.com/dolthub/swiss v0.2.2-0.20240312182618-f4b2babd2bc1 // indirect

9
go.sum
View file

@ -1,11 +1,10 @@
git.gammaspectra.live/P2Pool/consensus/v3 v3.7.0 h1:pkcOYXYq261gIpPxsaj61oKKadKh1BF51WYffy8HeBU=
git.gammaspectra.live/P2Pool/consensus/v3 v3.7.0/go.mod h1:6Gmugv6Wyha2Sl+1gfsmiQzDaiSg/bZsfIDRFIQYE+o=
git.gammaspectra.live/P2Pool/consensus/v3 v3.8.0/go.mod h1:Sx/jnpu73dTacB55VmI07p+b20XR8QqhYnFoXp/BbA4=
git.gammaspectra.live/P2Pool/edwards25519 v0.0.0-20240405085108-e2f706cb5c00 h1:mDQY337iKB+kle5RYWL5CoAz+3DmnkAh/B2XD8B+PFk=
git.gammaspectra.live/P2Pool/edwards25519 v0.0.0-20240405085108-e2f706cb5c00/go.mod h1:FZsrMWGucMP3SZamzrd7m562geIs5zp1O/9MGoiAKH0=
git.gammaspectra.live/P2Pool/go-json v0.99.0 h1:TbFOEWbbDLFzm1fM/2+WPUhhzSwJ501+otfrQ8jCP84=
git.gammaspectra.live/P2Pool/go-json v0.99.0/go.mod h1:X9PvT0fmWrU1I+BiDUjMypUWdsWFm24QCW1sWxbzT8w=
git.gammaspectra.live/P2Pool/go-randomx/v2 v2.1.0 h1:L1fV2XBYFmpFU+JKP/7fsgDm2Lfh9yFlS+800v+3OsM=
git.gammaspectra.live/P2Pool/go-randomx/v2 v2.1.0/go.mod h1:vNmHlEIRAcU/bA85mxbUKEiBYtrtS4MVwozf29KmoHM=
git.gammaspectra.live/P2Pool/go-randomx/v3 v3.1.0 h1:FEVDm+kMhiz/zEkjPcc6b/Pp9sKGR1KoAoejT1qgaXY=
git.gammaspectra.live/P2Pool/go-randomx/v3 v3.1.0/go.mod h1:esQjh/AvuhmoMeBv9MCZ2SqgU0vgWOk1u0l0zCTMiP0=
git.gammaspectra.live/P2Pool/monero-base58 v1.0.0 h1:s8LZxVNc93YEs2NCCNWZ7CKr8RbEb031y6Wkvhn+TS4=
git.gammaspectra.live/P2Pool/monero-base58 v1.0.0/go.mod h1:WWEJy/AdWKxKAruvlKI82brw+DtVlePy0ct3ZiBlc68=
git.gammaspectra.live/P2Pool/observer-cache-archive v0.0.0-20240413050335-08f79500c0c1 h1:yWgIcGlYLq2N0WjuudNYh/jZYlcHOJhAXUZW+3HB2DI=
@ -14,6 +13,8 @@ git.gammaspectra.live/P2Pool/randomx-go-bindings v1.0.0 h1:tajr4QFSPrb8NtHmU14Ja
git.gammaspectra.live/P2Pool/randomx-go-bindings v1.0.0/go.mod h1:S17NNidG5hxqaVLsSykKqDBg/hTPSzP0KcSwXfH8WIA=
git.gammaspectra.live/P2Pool/sha3 v0.17.0 h1:CZpB466LPbNVQrUNjQTtQScGDc30xSMkZ6Bmw0W9VuM=
git.gammaspectra.live/P2Pool/sha3 v0.17.0/go.mod h1:HmrrYa97BZTKklUk2n/wAY+wrY0gHhoSGRd2+lIqXq8=
git.gammaspectra.live/P2Pool/softfloat64 v1.0.0 h1:XqxDpowntpV8gvBzG9bMC8VVzxZJT/YEk7BfwmaCamU=
git.gammaspectra.live/P2Pool/softfloat64 v1.0.0/go.mod h1:ZhnGqXOS6F6aJpiiT38Cvk5eHoBNqjkKfp3w3AcnomA=
git.gammaspectra.live/P2Pool/zmq4 v0.99.0 h1:DYjOTqZKurPLn+/OvC8wFE0+cMnw9bp6CQnzwqAbrXA=
git.gammaspectra.live/P2Pool/zmq4 v0.99.0/go.mod h1:VZEQMCQTRVzrvGZl1E225PPKHl9UQ47CEBvrYkqWKZs=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=

14
main.go
View file

@ -138,6 +138,20 @@ func main() {
settings["full-mode"] = "true"
}
utils.Logf("Consensus", "network type = %s", currentConsensus.NetworkType)
if currentConsensus.Extra != "" {
utils.Logf("Consensus", "pool extra = %s", currentConsensus.Extra)
}
utils.Logf("Consensus", "pool name = %s", currentConsensus.PoolName)
if currentConsensus.PoolPassword != "" {
utils.Logf("Consensus", "pool password = %s", currentConsensus.PoolPassword)
}
utils.Logf("Consensus", "block time = %d seconds", currentConsensus.TargetBlockTime)
utils.Logf("Consensus", "min diff = %d blocks", currentConsensus.MinimumDifficulty)
utils.Logf("Consensus", "PPLNS window = %d", currentConsensus.ChainWindowSize)
utils.Logf("Consensus", "uncle penalty = %d%%", currentConsensus.UnclePenalty)
utils.Logf("Consensus", "ID = %s", currentConsensus.Id)
if instance, err := NewP2Pool(currentConsensus, settings); err != nil {
utils.Fatalf("Could not start p2pool: %s", err)
} else {