oxen-core/tests/core_tests
Sean Darcy 866691d9d8 Batching of service node rewards
This updates the coinbase transactions to reward service nodes
periodically rather than every block. If you recieve a service node
reward this reward will be delayed x blocks, if you receive another
reward to the same wallet before those blocks have been completed it
will be added to your total and all will be paid out after those x
blocks has passed.

For example if our batching interval is 2 blocks:

Block 1 - Address A receives reward of 10 oxen - added to batch
Block 2 - Address A receives reward of 10 oxen - added to batch
Block 3 - Address A is paid out 20 oxen.

Batching accumulates a small reward for all nodes every block

The batching of service node rewards allows us to drip feed rewards
to service nodes. Rather than accruing each service node 16.5 oxen every
time they are pulse block leader we now reward every node the 16.5 /
num_service_nodes every block and pay each wallet the full amount that
has been accrued after a period of time (Likely 3.5 days).

To spread each payment evenly we now pay the rewards based on the
address of the recipient. This modulus of their address determines which
block the address should be paid and by setting the interval to our
service_node_batching interval we can guarantee they will be paid out
regularly and evenly distribute the payments for all wallets over this
2022-04-29 09:51:14 +10:00
..
CMakeLists.txt Batching of service node rewards 2022-04-29 09:51:14 +10:00
block_reward.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
block_reward.h Clean up core tests (#830) 2019-09-11 16:04:58 +10:00
block_validation.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
block_validation.h DRY REGISTER_CALLBACK 2020-07-02 12:52:13 -03:00
bulletproofs.cpp Test suite fixes 2021-07-05 23:48:18 -03:00
bulletproofs.h Remove invalid Borromean test case 2020-12-13 22:02:51 -04:00
chain_split_1.cpp shorten wire names 2021-02-09 11:54:27 +11:00
chain_split_1.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
chain_switch_1.cpp shorten wire names 2021-02-09 11:54:27 +11:00
chain_switch_1.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
chaingen.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
chaingen.h Batching of service node rewards 2022-04-29 09:51:14 +10:00
chaingen001.cpp shorten wire names 2021-02-09 11:54:27 +11:00
chaingen_main.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
chaingen_tests_list.h compiles 2021-01-04 13:09:59 +11:00
double_spend.cpp Test suite fixes 2021-07-05 23:48:18 -03:00
double_spend.h core_tests: gen_double-spend_in_alt_chain* = work 2019-12-04 15:17:55 +11:00
double_spend.inl Target macos 10.12 2020-10-18 11:18:08 -03:00
integer_overflow.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
integer_overflow.h Fix the overflow test for fee and block_reward in blocks (#869) 2019-10-04 15:01:03 +10:00
multisig.cpp shorten wire names 2021-02-09 11:54:27 +11:00
multisig.h Test suite fixes 2021-07-05 23:48:18 -03:00
oxen_tests.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
oxen_tests.h Batching of service node rewards 2022-04-29 09:51:14 +10:00
rct.cpp shorten wire names 2021-02-09 11:54:27 +11:00
rct.h Test suite fixes 2021-07-05 23:48:18 -03:00
ring_signature_1.cpp shorten wire names 2021-02-09 11:54:27 +11:00
ring_signature_1.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
transaction_tests.cpp Batching of service node rewards 2022-04-29 09:51:14 +10:00
transaction_tests.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
tx_validation.cpp shorten wire names 2021-02-09 11:54:27 +11:00
tx_validation.h Test suite: add tx version hack and remove broken tests 2020-12-13 21:42:10 -04:00
v2_tests.cpp shorten wire names 2021-02-09 11:54:27 +11:00
v2_tests.h Test suite fixes 2021-07-05 23:48:18 -03:00
wallet_tools.cpp shorten wire names 2021-02-09 11:54:27 +11:00
wallet_tools.h Make RingCT and RangeProof types type-safe enum classes 2020-11-30 00:47:12 -04:00