Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3271 commits
Select commit Hold shift + click to select a range
2cb5c52
fix: block_relock_for_payment wrote a String key to the uint32 blockDB
MoneroOcean Jun 13, 2026
6b8ab70
fix: honor string-form --force in payment_batch_unlock
MoneroOcean Jun 13, 2026
87d4525
fix: parse ETH block height as hex in ethBlockCheck
MoneroOcean Jun 13, 2026
06d5ead
fix: clear cleanShareInProgress on every cleanShareDB failure path
MoneroOcean Jun 13, 2026
0077033
fix: release share-drain waiters when entering LMDB reject mode
MoneroOcean Jun 13, 2026
ec861bd
fix: lowercase the eth-style nonce suffix before validation
MoneroOcean Jun 13, 2026
8a0d886
fix: close double-pay gaps in balance-move and batch-unlock tools
MoneroOcean Jun 14, 2026
90ea466
refactor: tidy payments cycle outcome and harden tx-hash parsing
MoneroOcean Jun 14, 2026
82392da
fix: bound LMDB read-txn lifetime and free reader slots on every exit
MoneroOcean Jun 14, 2026
2f5492d
fix: stop LMDB write errors from crashing remote_share and worker
MoneroOcean Jun 14, 2026
b582398
change: pause remote_share on any share-flush write error, not just m…
MoneroOcean Jun 14, 2026
52a8292
fix: end txns and close the second env on every path in lmdb_copy
MoneroOcean Jun 14, 2026
41b2ff1
docs: explain why the PPLNS share scan holds one read snapshot
MoneroOcean Jun 14, 2026
09f741c
harden API user routes against non-scalar request parameters
MoneroOcean Jun 14, 2026
7898144
remove unauthenticated legacy email-unsubscribe route
MoneroOcean Jun 14, 2026
7080cbe
deploy: per-client rate limit on data-heavy API routes
MoneroOcean Jun 14, 2026
4698598
api: memoize shared paid_blocks scan; explicit columns; normalized ca…
MoneroOcean Jun 14, 2026
5d23a69
Rename mo-miner -> mom in live miner-download tests
MoneroOcean Jun 15, 2026
e548903
Make cryptonote live submitblock test resilient
MoneroOcean Jun 16, 2026
4229cf2
Tidy diagnostic strings and remove redundant Math.abs
MoneroOcean Jun 16, 2026
13f48c9
Fix createTaskQueue.oldest() to return the oldest queued task
MoneroOcean Jun 16, 2026
9727d1f
Fix live-test harness c29 device wiring
MoneroOcean Jun 16, 2026
d9eec20
Fix typo in block-import error message (difficilty -> difficulty)
MoneroOcean Jun 16, 2026
f57fc8c
Fix "deamon" typo in block-submit admin notifications
MoneroOcean Jun 16, 2026
e2c228e
Use script_utils factory in user_bans_list
MoneroOcean Jun 16, 2026
bb50664
Tidy share-time assignment and block-reward fix txn ordering
MoneroOcean Jun 16, 2026
f5c2d50
Extract shared Tari coinbase template into xtmCoinbases helper
MoneroOcean Jun 16, 2026
74f098c
Dedupe graceful-shutdown signal handlers via triggerShutdown helper
MoneroOcean Jun 16, 2026
7c77d82
Harmonize README to common MoneroOcean style with colored badges and …
MoneroOcean Jun 16, 2026
909528e
Reject non-numeric fixed-difficulty login suffix instead of crashing …
MoneroOcean Jun 16, 2026
ae24c90
Guard parseBtcReward call site against a coinbase without a vout array
MoneroOcean Jun 16, 2026
45f4d74
Guard daemon-reply parsing in block-header RPC callbacks against crashes
MoneroOcean Jun 16, 2026
b1dbe2e
Refuse to delete a balance row reserved by an in-flight payment batch
MoneroOcean Jun 17, 2026
a48c161
Add eslint (flat config) with a lint script
MoneroOcean Jun 17, 2026
ab14eb1
Run eslint as part of npm test via a pretest hook
MoneroOcean Jun 17, 2026
7fbe623
Tighten eslint: re-enable relaxed rules via safe fixes and scoped dis…
MoneroOcean Jun 17, 2026
8a9fb58
Tighten eslint: enable stricter correctness and style rules
MoneroOcean Jun 17, 2026
c383053
Back off remote-share uplink retries instead of a tight next-tick loop
MoneroOcean Jun 18, 2026
bb62edf
Reject non-finite raw_shares in remote share store
MoneroOcean Jun 18, 2026
a02ceb9
Fix oldest() to return the earliest-enqueued task (share-verify stale…
MoneroOcean Jun 18, 2026
d0d6d48
Guard ERG block-submit confirm against a malformed daemon header (no …
MoneroOcean Jun 18, 2026
bc4f44e
Detect ETH-family true orphans so they aren't traded and paid (no fun…
MoneroOcean Jun 18, 2026
6c236fe
Extend orphan detection to ERG and cryptonote alts (no orphan payout)
MoneroOcean Jun 18, 2026
c427aa6
live-test: skip startup algo benchmarks in the no-bench mom config
MoneroOcean Jun 19, 2026
bc14ca4
Retry ETH/ETC block hash resolution so a transient daemon blip can't …
MoneroOcean Jun 19, 2026
b31b6ed
saveResolvedBlock: replace an orphaned same-height block instead of d…
MoneroOcean Jun 19, 2026
6756862
test: cover orphan-detection + same-height-block branches (bc4f44e3 /…
MoneroOcean Jun 19, 2026
045cc47
Guard local slowHash throw + clear block-notify timer on socket error…
MoneroOcean Jun 19, 2026
302d649
protocol: don't leak the worker-count on a rejected over-limit login
MoneroOcean Jun 19, 2026
58e0409
Audit fixes: extranonces typo, exchange-recovery key, proxy worker-co…
MoneroOcean Jun 19, 2026
1747ddc
Refactor: drop dead uniqueWorkerIdBit assignment + unreachable planne…
MoneroOcean Jun 19, 2026
e56394c
nodejs-pool: guard getblocktemplate build against template-fn throws …
MoneroOcean Jun 19, 2026
2354f5b
Update node-blocktemplate to v15.8.22
MoneroOcean Jun 29, 2026
b7ca6dc
Harden leaf deployment and Tari daemon recovery
MoneroOcean Jul 15, 2026
11142cc
Send identity difficulty before Ergo jobs
MoneroOcean Jul 17, 2026
bc2de15
Advertise native Ergo Stratum difficulty
MoneroOcean Jul 17, 2026
ec0e397
Normalize ETH Stratum notification ids
MoneroOcean Jul 18, 2026
2b5e196
Use final Ergo target for NiceHash
MoneroOcean Jul 19, 2026
a295b7b
Deduplicate XTM-C submissions per template
MoneroOcean Jul 21, 2026
f57b161
Test mining work identity invariants
MoneroOcean Jul 21, 2026
b90ad17
Support unified XMRig release artifact names
MoneroOcean Jul 21, 2026
b83f170
Normalize Tari Cuckaroo work units
MoneroOcean Jul 22, 2026
cf7bf7f
Correct chain reward accounting
MoneroOcean Jul 24, 2026
df072cc
Align block effort work units
MoneroOcean Jul 24, 2026
312405b
Report merged-mined child hashrate
MoneroOcean Jul 27, 2026
5745c68
Keep Debian MySQL maintenance credentials in sync
MoneroOcean Jul 29, 2026
e3c6737
deploy: prevent unattended PM2 restarts
MoneroOcean Jul 29, 2026
c23d8f6
deploy: align Tari 5.5.0 builds
MoneroOcean Aug 1, 2026
0c406d8
Fail pool nodes closed under network pressure
MoneroOcean Aug 3, 2026
9bf7208
Fix pool guard systemd condition
MoneroOcean Aug 3, 2026
ac4f826
Add leaf pool connection limits
MoneroOcean Aug 3, 2026
614703d
Restore staged pool daemon recovery
MoneroOcean Aug 5, 2026
082e521
Disable pool health guard deployment
MoneroOcean Aug 5, 2026
1d39e0c
Make pool health guard non-disruptive
MoneroOcean Aug 5, 2026
7506271
Enable pool health guard on leaf nodes
MoneroOcean Aug 5, 2026
746a17c
Require confirmed stale blocks before pool shutdown
MoneroOcean Aug 5, 2026
7e2adc7
Allow longer merged RPC health checks
MoneroOcean Aug 5, 2026
1b0ae51
Harden leaf conntrack protection and pool guard
MoneroOcean Aug 11, 2026
df34589
Harden leaf curl-pipe patcher selection
MoneroOcean Aug 13, 2026
082523b
Align leaf firewall with production Stratum ports
MoneroOcean Aug 13, 2026
fed414d
Raise loopback login rate limits
MoneroOcean Aug 13, 2026
3619340
Update Tari defaults to 5.6.0
MoneroOcean Aug 13, 2026
792c69c
Reduce leaf connection tracking limits
MoneroOcean Aug 13, 2026
f8e38a8
Build Tari wallet for daemon updates
MoneroOcean Aug 13, 2026
047b5f2
Enforce connection limits before TLS handshakes
MoneroOcean Aug 13, 2026
98afbb0
Tune leaf conntrack guard thresholds
MoneroOcean Aug 13, 2026
b0ef8fc
Simplify TLS handshake cleanup
MoneroOcean Aug 13, 2026
7f74478
Tune leaf conntrack guard for reconnect bursts
MoneroOcean Aug 13, 2026
525bb18
Leave headroom for leaf reconnect churn
MoneroOcean Aug 13, 2026
4afcc2b
Limit public reconnect floods on leaves
MoneroOcean Aug 13, 2026
d7287b4
Skip disabled pool debug formatting
MoneroOcean Aug 13, 2026
1381510
Drop unused Tari onion port from UFW
MoneroOcean Aug 14, 2026
32433c9
Exempt trusted leaf sources from pool limits
MoneroOcean Aug 14, 2026
7b135e7
Keep leaf pool ports TCP-only
MoneroOcean Aug 14, 2026
0d6c229
Move leaf trust addresses out of repository
MoneroOcean Aug 14, 2026
0b78019
Simplify deployment scripts and add sensitive-data checks
MoneroOcean Aug 14, 2026
c104b0f
Enforce TLS connection limits before handshake
MoneroOcean Aug 14, 2026
a1cecd4
Generate TLS certificate for CI tests
MoneroOcean Aug 14, 2026
1c8d1d7
Optimize blocked login and rate-limit handling
MoneroOcean Aug 14, 2026
e3df95a
Centralize pool daemon health handling
MoneroOcean Aug 14, 2026
9c3a75e
Support staged leaf provisioning
MoneroOcean Aug 14, 2026
2327026
Clear daemon failure state after recovery
MoneroOcean Aug 14, 2026
6fe316d
Reconcile leaf firewall source rules
MoneroOcean Aug 14, 2026
88659d1
Handle normalized UFW trusted rules
MoneroOcean Aug 14, 2026
357f9ba
Delay PM2 startup until network is online
MoneroOcean Aug 14, 2026
b9db327
Harden replacement-host deployment
MoneroOcean Aug 19, 2026
2a35efe
Keep daemon recovery tests from exiting the suite
MoneroOcean Aug 19, 2026
032bb77
Configure user-wide npm release age
MoneroOcean Aug 19, 2026
7c94599
Add separate proxy worker limit
MoneroOcean Aug 20, 2026
3fc30fa
Send final Ergo targets to all miners
MoneroOcean Aug 23, 2026
f72af2e
Extend short wallet RPC timeout
MoneroOcean Aug 23, 2026
1e9b370
Scope share trust to payout distributions
MoneroOcean Aug 23, 2026
b1d6a07
Keep accepted template submissions deduplicated
MoneroOcean Aug 23, 2026
75ad1de
Use prototype-safe share worker maps
MoneroOcean Aug 23, 2026
0446675
Canonicalize XTM-C job difficulty
MoneroOcean Aug 23, 2026
428be2d
Expire jobs after downward factor changes
MoneroOcean Aug 23, 2026
24183c4
Contain malformed miner RPC replies
MoneroOcean Aug 23, 2026
020aad5
Validate miner algorithm performance values
MoneroOcean Aug 23, 2026
033b56b
Respect disabled local Tari recovery
MoneroOcean Aug 25, 2026
2d9cf63
Stabilize XTM-C factor job handling
MoneroOcean Aug 25, 2026
20dbdbb
Restart after delayed startup failure
MoneroOcean Aug 28, 2026
ef54662
Stabilize startup failure regression test
MoneroOcean Aug 28, 2026
0081f80
Keep xtm_mm recoverable during daemon fixes
MoneroOcean Aug 28, 2026
62771fa
Keep ban addresses unique
MoneroOcean Sep 2, 2026
40c6275
Simplify share submission throttling
MoneroOcean Sep 3, 2026
6296091
Defer wallet services until encrypted mount
MoneroOcean Sep 4, 2026
bc9feb2
Run local Tari daemon on pool host
MoneroOcean Sep 4, 2026
2c26b2e
Keep queued share completion consistent
MoneroOcean Sep 4, 2026
6264324
Restore pool Tari 5.6 and reduce memory high to 10G
MoneroOcean Sep 7, 2026
28dfd35
Bound Tari resources and stagger periodic service restarts
MoneroOcean Sep 7, 2026
8056bb1
Preserve healthy Monero daemon during proxy recovery
MoneroOcean Sep 7, 2026
936ca4f
Apply uniform bounded journald retention on deployment
MoneroOcean Sep 7, 2026
b6ebce0
Verify journald policy in deployment integration checks
MoneroOcean Sep 7, 2026
760893d
Support native algorithm switching and remove miner getWork
MoneroOcean Sep 8, 2026
a911385
fix: release maintenance helper LMDB transactions on errors
MoneroOcean Sep 7, 2026
7bfcb39
fix: roll back failed altblock maintenance edits
MoneroOcean Sep 7, 2026
d3b1a27
refactor: calculate only the totals used by share rankings
MoneroOcean Sep 7, 2026
2cca347
refactor: remove unused user script helper exports
MoneroOcean Sep 7, 2026
a3c00cb
fix: release share dump readers when decoding fails
MoneroOcean Sep 7, 2026
8940e97
fix: avoid false Tor restarts from journal pipe closure
MoneroOcean Sep 7, 2026
68eefd9
fix: preserve zero keys when scanning maintenance databases
MoneroOcean Sep 7, 2026
07cd9f5
refactor: remove redundant exchange API error wrapper
MoneroOcean Sep 7, 2026
74e74b2
fix: abort payouts on partial balance updates
MoneroOcean Sep 7, 2026
7024b6f
type and harden remote share store inputs
MoneroOcean Sep 7, 2026
c98e06a
type pool security helpers
MoneroOcean Sep 7, 2026
3939818
refactor: define CLI token contracts and protect positional metadata
MoneroOcean Sep 7, 2026
ad66faa
refactor: strictly type sensitive-data scanning boundaries
MoneroOcean Sep 7, 2026
23d0165
refactor: type share report inputs and definite ranking totals
MoneroOcean Sep 7, 2026
3d0f53c
types: define shared runtime and vendor contracts
MoneroOcean Sep 7, 2026
f426676
fix: tolerate incomplete stats boundaries
MoneroOcean Sep 7, 2026
1741ebe
type and validate pool IPC messages
MoneroOcean Sep 7, 2026
0d9090a
type pool remote uplink
MoneroOcean Sep 7, 2026
771f793
type miner job assembly
MoneroOcean Sep 7, 2026
2800d19
type pool state helpers
MoneroOcean Sep 7, 2026
16ffa7a
docs: let inference describe straightforward helper returns
MoneroOcean Sep 7, 2026
71202f1
refactor: define operator account and SQL helper contracts
MoneroOcean Sep 7, 2026
63be2a8
refactor: normalize account rows before operator actions
MoneroOcean Sep 7, 2026
ac493e0
fix: type batch recovery and reject malformed wallet history
MoneroOcean Sep 7, 2026
250ad56
refactor: validate typed CLI scalars before operator actions
MoneroOcean Sep 7, 2026
456f549
type and validate pending remote share jobs
MoneroOcean Sep 7, 2026
641331a
preserve coin helper receiver in pool state
MoneroOcean Sep 7, 2026
68b1a85
fix: move operator balances atomically with locked revalidation
MoneroOcean Sep 7, 2026
a410e57
refactor: resolve definite coin metadata at startup boundaries
MoneroOcean Sep 7, 2026
4c2503f
refactor: validate recovery boundaries and keep trade calculations de…
MoneroOcean Sep 7, 2026
42f0a97
fix: revalidate and delete operator accounts transactionally
MoneroOcean Sep 7, 2026
48287ca
fix: validate numeric operator payment values before conversion
MoneroOcean Sep 7, 2026
9d7aa56
Type payout planning and reject invalid batch limits
MoneroOcean Sep 7, 2026
0e75e31
accept bigint base difficulty in pool state
MoneroOcean Sep 7, 2026
92c68a8
Validate block import boundaries and abort failed LMDB writes
MoneroOcean Sep 7, 2026
565039b
Type maintenance records and normalize optional CLI inputs
MoneroOcean Sep 7, 2026
81dc00f
Type coin helpers and reject malformed Ergo reward records
MoneroOcean Sep 7, 2026
24512e3
preserve support receiver for extranonce alerts
MoneroOcean Sep 7, 2026
23cae90
accept legacy miner port count payloads
MoneroOcean Sep 7, 2026
a2354fb
Normalize coin profiles once and simplify registry construction
MoneroOcean Sep 7, 2026
486d5dd
Type blob and proof-of-work factory contracts
MoneroOcean Sep 7, 2026
7cd7c12
Keep verifier queue health together and clear completed request timers
MoneroOcean Sep 7, 2026
4475863
Type coin lookups and normalize runtime profile settings
MoneroOcean Sep 7, 2026
63793d9
Require complete Ethereum receipts before calculating block rewards
MoneroOcean Sep 7, 2026
18e8fb9
Normalize daemon issue boundaries and type miner compatibility rules
MoneroOcean Sep 8, 2026
7f5d1cf
Simplify template construction and normalize auxiliary lookup boundaries
MoneroOcean Sep 8, 2026
3b4871b
Preserve multi-hash results and validate verifier replies at the boun…
MoneroOcean Sep 8, 2026
c713d03
types: refine shared runtime and native contracts
MoneroOcean Sep 8, 2026
62186bd
types: annotate API and common runtime helpers
MoneroOcean Sep 8, 2026
576b455
Type coin API boundaries and reject incomplete Ethereum lookup replies
MoneroOcean Sep 8, 2026
d2311c9
Declare optional lib2 peer contracts for public pool checkouts
MoneroOcean Sep 8, 2026
1a5482f
Normalize recovery wallet divisors before formatting balances
MoneroOcean Sep 8, 2026
1170b1b
Reject malformed wallet balance results before payout preflight
MoneroOcean Sep 8, 2026
bf72319
Close cleanup readers on failure and scan LMDB key zero
MoneroOcean Sep 8, 2026
1d45c08
Preserve Tari proxy templates across routine daemon restarts
MoneroOcean Sep 8, 2026
e6aa883
Type cleanup boundaries and simplify bounded database scans
MoneroOcean Sep 8, 2026
a9d58a5
Type remote share lifecycle and normalize ingress boundaries
MoneroOcean Sep 8, 2026
76fbd46
Normalize share batch sizes so queued work always drains
MoneroOcean Sep 8, 2026
94f856e
types: type payment common boundaries
MoneroOcean Sep 8, 2026
4318e41
types: type payment processor state machine
MoneroOcean Sep 8, 2026
db1d666
types: type payment runtime lifecycle
MoneroOcean Sep 8, 2026
18dcb7e
label merged-mined child submit failures correctly
MoneroOcean Sep 8, 2026
9084894
Close worker scan readers on failure and preserve height-zero duplicates
MoneroOcean Sep 8, 2026
8ccf1f9
Validate persisted worker history at the serialization boundary
MoneroOcean Sep 8, 2026
758243a
Type worker snapshots and normalize cached statistics before updates
MoneroOcean Sep 8, 2026
a50e234
define strict pool profile handler contracts
MoneroOcean Sep 8, 2026
4e07694
type pool miner job assembly
MoneroOcean Sep 8, 2026
dfb8d6d
type pool template manager
MoneroOcean Sep 8, 2026
ac3a147
Skip cleared cluster worker slots during registry broadcasts
MoneroOcean Sep 8, 2026
a7099fe
Rebuild miner port counts on every retarget pass
MoneroOcean Sep 8, 2026
8a9e32a
Type miner registry and socket lifecycle contracts
MoneroOcean Sep 8, 2026
9a62ae7
Validate worker IDs against the available extranonce space
MoneroOcean Sep 8, 2026
1d28ac8
Preserve logical worker IDs across cluster replacements
MoneroOcean Sep 8, 2026
5bc8764
Type socket ingress and simplify server lifecycle boundaries
MoneroOcean Sep 8, 2026
9e97ec3
Preserve inferred template manager method contracts
MoneroOcean Sep 8, 2026
69bd80a
Reject incomplete main-chain block headers before importing
MoneroOcean Sep 8, 2026
9e7c4b6
Type coin RPC dispatch contracts
MoneroOcean Sep 8, 2026
8d939c8
Release reward repair readers before RPC and revalidate before writing
MoneroOcean Sep 8, 2026
2ff3dd2
Test malformed coin RPC boundaries
MoneroOcean Sep 8, 2026
6963ae3
Reject incomplete cleanup difficulty without latching the cleanup task
MoneroOcean Sep 8, 2026
c6db5c2
Type pool lifecycle state and separate worker counts from master aggr…
MoneroOcean Sep 8, 2026
abf59dc
Type Turtle accepted response adapter
MoneroOcean Sep 8, 2026
7b0f6bf
type block manager and harden payout boundaries
MoneroOcean Sep 8, 2026
c686a17
type pool stats cache and monitoring boundaries
MoneroOcean Sep 8, 2026
d7d6698
type payment batch unlock integration
MoneroOcean Sep 8, 2026
b8798e3
complete shared runtime declarations
MoneroOcean Sep 8, 2026
6bcc1d1
Align active template and miner job contracts with runtime state
MoneroOcean Sep 8, 2026
4c804cf
Type miner construction and normalize login configuration boundaries
MoneroOcean Sep 8, 2026
71862ea
Validate protocol fields at ingress and simplify definite share proce…
MoneroOcean Sep 8, 2026
f025c72
Type executable coin factory contracts and normalize RPC reply bounda…
MoneroOcean Sep 8, 2026
f67e36d
Reject non-numeric wallet reward amounts before coercion
MoneroOcean Sep 8, 2026
9101d69
Require the local database role in maintenance and recovery scripts
MoneroOcean Sep 8, 2026
e54c85d
Declare the remote uplink role and use it at pool storage boundaries
MoneroOcean Sep 8, 2026
ee510b3
Reuse safe altblock transaction handling for single payment edits
MoneroOcean Sep 8, 2026
fc026b0
Release altblock repair readers before RPC and preserve records on lo…
MoneroOcean Sep 8, 2026
d7d3d6c
Type and harden share block submission boundaries
MoneroOcean Sep 8, 2026
05456a1
Match pool dependency wiring to verifier and uplink contracts
MoneroOcean Sep 8, 2026
5a8cc6b
Preserve algorithm tuning and invalid-proof accounting at protocol bo…
MoneroOcean Sep 8, 2026
804f0ce
Type share processing boundaries
MoneroOcean Sep 8, 2026
fec9629
Harden share trust and block resolver boundaries
MoneroOcean Sep 8, 2026
ee1e509
Type daemon submit fixtures with remote database role
MoneroOcean Sep 8, 2026
1b8f51f
Complete shared pool miner, job, and submission contracts
MoneroOcean Sep 8, 2026
3130636
Separate initialized local database and remote uplink contracts
MoneroOcean Sep 8, 2026
a15505f
Validate complete shares before encoding and isolate malformed batch …
MoneroOcean Sep 8, 2026
9e128c0
Reject inherited names in protocol method dispatch
MoneroOcean Sep 8, 2026
5dd280f
Enforce strict production JavaScript contracts in npm test
MoneroOcean Sep 8, 2026
5990014
Preserve valid daemon header shapes during normalization
MoneroOcean Sep 8, 2026
16c60bc
Preserve process receiver when forwarding remote shares
MoneroOcean Sep 8, 2026
d4fbc76
Publish valid templates without optional expected reward
MoneroOcean Sep 8, 2026
7c5c16d
Issue fresh work for native proxy getjob refreshes
MoneroOcean Sep 8, 2026
c45c8aa
Reject nonfinite database hash factors at the boundary
MoneroOcean Sep 8, 2026
0d69090
Honor algorithm hold time for the main coin
MoneroOcean Sep 8, 2026
423a001
Clarify share history retention cleanup warnings
MoneroOcean Sep 8, 2026
02dc02f
Fix native Ergo jobs for hash-only block templates
MoneroOcean Sep 8, 2026
68951fd
Provision type-check dependencies on pool and leaf installs
MoneroOcean Sep 8, 2026
d877db8
Align share ingress listener with nginx IPv4 upstream
MoneroOcean Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/npm-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: npm test

on:
push:
pull_request:

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v6

- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 24
package-manager-cache: false

- name: Scan tracked files for sensitive data
run: node scripts/lint-sensitive-data.js

- name: Install native build dependencies
run: |
sudo apt-get update
sudo apt-get install -y libboost-date-time-dev libboost-dev libsodium-dev libssl-dev

- name: Install dependencies
run: npm install --no-package-lock

- name: Generate test TLS certificate
run: openssl req -x509 -newkey rsa:2048 -nodes -days 1 -subj "/CN=localhost" -keyout cert.key -out cert.pem

- name: Run tests
run: npm test
105 changes: 38 additions & 67 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,77 +1,48 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff:
.idea

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

#NodeJs Ignores

# Logs
logs
*.log
npm-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm
# Local editor / workstation artifacts
.DS_Store
.codex
lib2/
_*.js
*~
*.un~

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity
# Untracked dependency locks
package-lock.json

# Local runtime config and TLS files
cert*
config.json

# Generated local runtime outputs
core.*
dump
dump_[0-9]*
wallet_trust_*
miner_agents
extra_verify_wallet_hashes_*
block_share_dumps/*.cvs
block_share_dumps/*.cvs.xz
block_share_dumps/process.sh
block_template_is_stuck
ex_keys.json

# Local runtime control files
*.stop.txt*
extra_wallet_verify.txt
ip_whitelist.txt
wallet_debug.txt

# Generated local test outputs
.cache/live-miners
test-artifacts/
plan.txt

# Local security audit notes (contain exploit detail; never commit)
audit.md
5 changes: 5 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
engine-strict=true
min-release-age=7
audit=false
fund=false
save-exact=true
43 changes: 13 additions & 30 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,36 +1,19 @@
MIT License

Copyright (c) 2017 Snipa22 <Alexander Blair, alex@snipanet.com>
Copyright (c) 2019-2026 MoneroOcean

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

This work is a derivitive work from Zone117x's node-cryptonote-pool, permission
has been granted from Zone117x via IRC conversation to re-license this code as
MIT for all portions of the work derived from his original source as of 2/11/2017
Original work: https://github.com/zone117x/node-cryptonote-pool

Log snippet:
Feb 11 15:59:02 <Snipa> Hallo! Wanted to reach out as we finally released the pool software w/ the FFS funded at this point. https://github.com/Snipa22/nodejs-pool <redacted>. The following code: https://pb.junaos.xyz/view/cd3d7e27 is what was snagged, and mostly rebuilt along the way for good measure.
Feb 11 15:59:02 <Snipa> I'm not sure how deeply the GPL requires me to go to claim it as "new code" given that the logic behind it all is about the same.
<redacted>
Feb 11 16:09:39 <Snipa> .fr is now 1/5th of the overall mining power, DP is another 1/5th.
Feb 11 16:09:48 <Snipa> We're getting scary-close to the 50% attacks.
Feb 11 16:10:08 <zone117x> You have my permission to MIT
Feb 11 16:10:31 <Snipa> Thank you. I'll get our licenses updated and such today.
Feb 11 16:12:08 <zone117x> What payment systems did you get implemented?
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading