Commit graph

261 commits

Author SHA1 Message Date
DataHoarder 01369eb4c8
Prevent NaN on division by zero on sidechain_test on pre-fork chains
All checks were successful
continuous-integration/drone/push Build is passing
2024-02-25 14:21:57 +01:00
DataHoarder ddd821c565
Update to Go 1.22 2024-02-23 13:11:58 +01:00
DataHoarder 4de201775d
Set precalc finished on sync for early start 2024-02-23 13:11:58 +01:00
DataHoarder c1486efa7d
Fix nil dereference on peerList comparison with dupe adresses 2024-02-23 13:11:58 +01:00
DataHoarder 30623dbd55
Added cmd/apitocache tool
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-04 22:34:42 +01:00
DataHoarder 7c3e71171f
Fix mismatching encode methods for PoolBlock on connectivity-check API
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-31 22:35:58 +02:00
DataHoarder cbb029cca7
Fix: compact message
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-31 21:52:36 +02:00
DataHoarder 43a7603e0f
Only apply last known tip on p2p client after pre processing
Some checks are pending
continuous-integration/drone/push Build is running
2023-07-31 21:47:35 +02:00
DataHoarder f49f52a853
Check capabilities of own server before sending anything that requires it 2023-07-31 21:40:36 +02:00
DataHoarder d52710eea4
Only store last known tip on p2p peer when it's equal to or higher as current 2023-07-31 19:42:50 +02:00
DataHoarder aae149677a
Move Coinbase Id cache into PoolBlock from CoinbaseTransaction
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-30 22:53:25 +02:00
DataHoarder 010a2a0d03
Replace https://github.com/goccy/go-json with https://github.com/WeebDataHoarder/go-json to allow omitempty on custom structs
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-30 16:05:28 +02:00
DataHoarder cff3d620de
Update p2p client LastKnownTip on BlockNotify 2023-07-30 13:36:11 +02:00
DataHoarder deb3c6db01
Id -> id in consensus json
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 09:05:38 +02:00
DataHoarder f9903f096d
Made ShareVersion an uint8 instead of int to match Monero hardfork version 2023-07-25 08:57:03 +02:00
DataHoarder b601e49a8a
Refactor pool_info API, deprecate several fields 2023-07-25 08:50:18 +02:00
DataHoarder e7e1aee11b
Fix channel on miner page for unknown miners, switch order of comparisons on NextDifficulty
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 19:48:44 +02:00
DataHoarder 07d09286e9
Faster hex SIMD Encode/Decode 2023-07-24 13:26:18 +02:00
DataHoarder e32a5e5d74
Speedup raw / coinbase block fetch from API via index instead of archival usage
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 11:48:01 +02:00
DataHoarder 03f19ae2ed
Improve base58 encode/decode and PackedAddress storage
Some checks are pending
continuous-integration/drone/push Build is running
2023-07-23 01:02:43 +02:00
DataHoarder c0397bea86
Moved cache into its own module
Some checks are pending
continuous-integration/drone/push Build is running
2023-07-22 17:15:43 +02:00
DataHoarder 402bd79c6c
Use go.work and nested modules to split dependency import 2023-07-22 16:02:38 +02:00
DataHoarder 4ec4872194
Slow DownloadMissingBlocks updates after initial sync from one per second to one every two minutes
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-22 01:13:01 +02:00
DataHoarder b0fe55c8a8
Update to protocol 1.2, implement BlockNotify
* Bump Software version to 3.0
* Remove old fast sync extension
* SideChain: fix for out of order blocks
* SideChain: shuffle blocks in tests
2023-07-21 16:20:41 +02:00
DataHoarder 00f5956897
Speedup p2pool archive API by hinting existing template id on /archive/block_by_main_id 2023-07-21 11:49:41 +02:00
DataHoarder 5bffb7f43d
Reword and split GetDifficulty on SideChain utils 2023-07-21 00:48:28 +02:00
DataHoarder c1939598a5
Speedup deterministic key checks 2023-07-20 07:40:19 +02:00
DataHoarder c3cf2161bd
Less allocations on SplitReward by default, small speedup changes 2023-07-20 07:40:19 +02:00
DataHoarder 894ebbba1b
Speedup Difficulty Cmp / Add / Mul64, consensus Uncle Penalty method 2023-07-20 07:40:19 +02:00
DataHoarder d7532fedd3
Update dependencies, fix wrapping operations on difficulty, reduce number of template hashes on verify, catch panics on external block add 2023-07-20 07:40:19 +02:00
DataHoarder b57226c7ed
Speedup iteration of blocks in sidechain using iterationCache 2023-07-20 07:40:19 +02:00
DataHoarder 5c24136e45
Speedup GetShares, Shares allocation, Shares.Compact 2023-07-20 07:40:19 +02:00
DataHoarder 152cbc54c2
Implement utils.NthElementSlice to use QuickSelect, improves GetDifficulty 2023-07-20 07:40:19 +02:00
DataHoarder 90184b07cc
GetDifficulty / GetShares speedup 2023-07-20 07:40:19 +02:00
DataHoarder ac3d6b6141
Added faster pruneBlocks implementation 2023-07-20 07:40:19 +02:00
DataHoarder 704b477c37
Slightly faster CompareConsensusPublicKeyBytes calls 2023-07-20 07:40:19 +02:00
DataHoarder c4053f3480
Faster pool block iteration backwards via PoolBlock iteration cache, added benchmark to SideChain 2023-07-20 07:40:19 +02:00
DataHoarder 4ef60296f1
Updated to Go 1.21
* Replaced exp/slices and exp/maps with slices/maps implementation
* Replaced utils.Min/Max with min/max
* Introduced GOEXPERIMENT=loopvar on build steps
* Updated tests/docker-compose to go1.21-rc-alpine
* Updated nginx to 1.25
* Preallocate mined blocks on Sidechain
* Update edwards25519 version
2023-07-20 07:40:18 +02:00
DataHoarder 4376c41511
Optimize struct alignment and memory size across the project 2023-06-14 17:26:46 +02:00
DataHoarder 89339ee88a
Replace golang map with https://github.com/dolthub/swiss on sidechain/mainchain 2023-06-10 01:31:42 +02:00
DataHoarder bad1e302c8
Added sidechain GetPossibleUncles() method
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-05 23:46:34 +02:00
DataHoarder 4ed83d58f5
Allow 0/0 peers setting for debugging, check outgoing connections in monerod reconnect loop 2023-06-05 23:46:16 +02:00
DataHoarder 29751ec74d
Prevent heap allocations in block encoding/decoding/generation of keys 2023-06-05 23:45:38 +02:00
DataHoarder 209decd5b7
Do not allow empty spend and view pubkeys in side data 2023-06-05 23:44:54 +02:00
DataHoarder 03ff13fc0c
added merkle tree MainBranch precalculation method, mempool utilities and handling, UVarInt64SliceSize, Share utilities 2023-06-05 23:44:24 +02:00
DataHoarder 9b241e22db
Changed how blocks are iterated from sidechain 2023-06-05 23:42:53 +02:00
DataHoarder 1b04de234c
Changed how consensus Id is generated 2023-06-05 23:41:32 +02:00
DataHoarder 5ab76f5503
Calculate precise buffer lengths using varint sizes 2023-06-03 23:33:13 +02:00
DataHoarder 0cd75a0509
added limitbytereader to utils, less buffer usage on block decoding 2023-06-03 10:05:05 +02:00
DataHoarder 8d779e9cbc
refactored sidechain testdata initialization, web stream request api 2023-06-03 10:05:05 +02:00
DataHoarder 2fe65a7a62
ZMQ: Use serial method instead of channels to preserve ordering of events 2023-05-31 12:26:11 +02:00
DataHoarder 27f65692be
Added sidechain ShuffleSequence utils, loop DownloadMissingBlocks on Server until no more are found
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-31 01:55:34 +02:00
DataHoarder 8b864628f0
fix sidechain test: provide Context on fake server
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-30 09:44:01 +02:00
DataHoarder cd99095931
New utilities and additions for types / sidechain
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-30 08:49:52 +02:00
DataHoarder 25f58426a7
sidechain: err on child depth issue 2023-05-29 16:01:41 +02:00
DataHoarder f4c21dc425
Add hardcoded default pool name case in Consensus 2023-05-29 10:25:55 +02:00
DataHoarder bf30f7592e
Verify and warn inconsistent depths on sidechain 2023-05-29 10:25:55 +02:00
DataHoarder e94e54c27d
fix genesis share private key seed check 2023-05-29 09:09:03 +02:00
DataHoarder d577856081
Faster JSON encoder/decoder
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 14:43:22 +02:00
DataHoarder 493b482d90
Do not require p2pool sync for API to start, cache p2api.Consensus() call 2023-05-25 14:47:25 +02:00
DataHoarder a2b701e87b
Register listeners for MainData / MinerData updates 2023-05-24 12:40:02 +02:00
DataHoarder 52b2d617c0
Lock seenBlocks on cleanupSeenBlocks method
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-24 09:14:27 +02:00
DataHoarder 009e507d5d
Fixed FullId TemplateId() method
Some checks are pending
continuous-integration/drone/push Build is running
2023-05-24 09:13:08 +02:00
DataHoarder 48915be81b
Added tests for pre-fork p2pool, generalize tests, added patched missing blocks for old mini sidechain test
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 21:19:42 +02:00
DataHoarder 951b1105ff
Speed improvements on partial crypto derivation
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 10:25:10 +02:00
DataHoarder 2ad5e1ba38
Sync speed improvements by better crypto cache
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 09:38:09 +02:00
DataHoarder db5a26de4f
Resolve lock contention whenever bans occur with multiple clients connected
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 07:36:35 +02:00
DataHoarder 099c393235
Added utils ContextTicker 2023-05-23 07:30:25 +02:00
DataHoarder 69cfc3f3da
Cleanup seen blocks properly to prevent slow leak like p2pool had before eab8a51bb7a30813d4cd8f570486fbee034acdb8 2023-05-23 06:41:03 +02:00
DataHoarder 3ac9b9f5bd
Track seen and alternate blocks, and submit these alternate blocks to monerod / other peers as well
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-22 11:11:55 +02:00
DataHoarder e9eb5915ed
Optimize address sorting, crypto cache, use unsafe VarTimeScalarMult for sidechain operations
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-20 10:49:05 +02:00
DataHoarder 65383c34c3
Keep track of previous ban error on p2pool, report it on connectivity check
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-19 08:30:43 +02:00
DataHoarder 1e05b54e25
Send peer list on empty chain tip block responses as well 2023-05-18 05:26:13 +02:00
DataHoarder 041fc55f16
Serialize pool blocks using append on stack buffers instead of heap buffer allocations
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-18 05:21:23 +02:00
DataHoarder 22077acdfa
Reduce allocations on utils.SplitWork, add BufferLength methods for pool block serialization 2023-05-17 17:29:01 +02:00
DataHoarder 4acc0d34af
Add stagenet on consensus AddressNetwork() 2023-05-17 12:17:38 +02:00
DataHoarder c430c21a34
Added crypto_tests.txt support from upstream
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-17 07:41:53 +02:00
DataHoarder ba3f9b9ae4
Support Monero test network in address packed <-> unpacked roundtrip
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-16 07:14:58 +02:00
DataHoarder 05cc1c61a0
Remove IPv6 log message on p2p client 2023-05-15 09:18:34 +02:00
DataHoarder 265ff8478e
Use Shares allocation pool for overall usage of allocated shares 2023-05-14 09:46:28 +02:00
DataHoarder f8fcbc1b69
Reduce memory allocations on SideChain 2023-05-14 09:22:01 +02:00
DataHoarder 3eafb954df
Reduce hash heap allocations by using exported sha3
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-12 08:55:01 +02:00
DataHoarder 6a690ad278
Reduce allocations on ephemeral public key verification
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-11 12:05:27 +02:00
DataHoarder 7a7c21c6d6
Fix test locations and timeouts
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-10 05:06:23 +02:00
DataHoarder c1dd874343
Reduce allocations on ephemeral public key cache operations 2023-05-10 04:31:59 +02:00
DataHoarder 4a2e513987
Track crypto cache hits/misses, less packed address allocations 2023-05-10 04:02:56 +02:00
DataHoarder edbb610533
Added new testdata system using p2pool vectors 2023-05-10 03:46:33 +02:00
DataHoarder e3f50dd515
Better p2pool api sync status 2023-05-10 02:39:00 +02:00
DataHoarder c1375a3cb8
Refactored RandomX state creation 2023-04-30 21:49:25 +02:00
DataHoarder 58b3471f97
Ban a /64 on IPv6 2023-04-26 20:29:32 +02:00
DataHoarder b2219c723c
Bump software version, disable InternalFeatureFastTemplateHeaderSync support 2023-04-26 20:29:24 +02:00
DataHoarder 8006412fe9
set error and handshake complete when connecting to self 2023-04-26 20:07:22 +02:00
DataHoarder 939932944d
Allow non-sequential download of blocks for GetDifficulty 2023-04-26 09:32:52 +02:00
DataHoarder 691a83c37b
New API /api/main_block_by_***, fix sidechain PPLNS window iteration not being able to be replicated downstream on last uncle 2023-04-25 05:25:51 +02:00
DataHoarder a4ebfd70a2
Remove debug feature on InternalMessage FastSync 2023-04-24 17:44:00 +02:00
DataHoarder 6e10612f99
Log broadcast tip of client for debugging 2023-04-24 17:38:11 +02:00
DataHoarder 1212b807a8
More block request / response logging, 5 second timeout for connections 2023-04-24 17:29:51 +02:00
DataHoarder 936d636514
Log when listen port / handshake is sent 2023-04-24 17:20:37 +02:00
DataHoarder c24cb9109a
Disconnect banned peers on connection properly 2023-04-24 14:32:15 +02:00
DataHoarder 2f3eea65a2
Obtain specific outgoing IPv6 address for peering lists 2023-04-23 19:34:52 +02:00