oxen-core/src
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
..
blockchain_db Batching of service node rewards 2022-04-29 09:51:14 +10:00
blockchain_utilities Batching of service node rewards 2022-04-29 09:51:14 +10:00
blocks blocks: Regenerate block hashes 2020-09-30 12:17:26 +10:00
checkpoints Batching of service node rewards 2022-04-29 09:51:14 +10:00
common More epee purging 2022-04-15 13:51:57 -03:00
crypto Set up aes flags properly for cn-turtle compilation 2021-10-18 22:23:01 -03:00
cryptonote_basic Batching of service node rewards 2022-04-29 09:51:14 +10:00
cryptonote_core Batching of service node rewards 2022-04-29 09:51:14 +10:00
cryptonote_protocol Batching of service node rewards 2022-04-29 09:51:14 +10:00
daemon Batching of service node rewards 2022-04-29 09:51:14 +10:00
daemonizer Move epee includes under "epee/..." 2020-10-24 12:46:27 -03:00
debug_utilities Remove openssl, unbound, expat, OpenAlias 2022-04-15 13:51:57 -03:00
device Batching of service node rewards 2022-04-29 09:51:14 +10:00
device_trezor Update oxenmq to latest oxen-mq+oxen-encoding 2022-04-14 14:32:01 -03:00
gen_multisig Add fmtlib::fmt backport of C++20 std::format 2021-09-02 17:25:13 -03:00
lmdb Move epee includes under "epee/..." 2020-10-24 12:46:27 -03:00
mnemonics More epee purging 2022-04-15 13:51:57 -03:00
multisig executable names changed 2021-01-07 18:40:18 -04:00
net Move epee includes under "epee/..." 2020-10-24 12:46:27 -03:00
p2p Batching of service node rewards 2022-04-29 09:51:14 +10:00
platform Update monero copyright to 2019 pre-emptively to make merge simpler 2019-04-12 14:36:43 +10:00
ringct Remove openssl, unbound, expat, OpenAlias 2022-04-15 13:51:57 -03:00
rpc Batching of service node rewards 2022-04-29 09:51:14 +10:00
serialization Update oxenmq to latest oxen-mq+oxen-encoding 2022-04-14 14:32:01 -03:00
simplewallet Make cryptonote::parse_amount return an optional 2022-04-15 17:54:03 -03:00
sqlitedb Batching of service node rewards 2022-04-29 09:51:14 +10:00
wallet Batching of service node rewards 2022-04-29 09:51:14 +10:00
CMakeLists.txt Drop integration test code. 2021-08-19 16:42:15 -03:00
cryptonote_config.h Batching of service node rewards 2022-04-29 09:51:14 +10:00
oxen_economy.h reduce ONS fee 2021-04-19 09:45:18 +10:00
version.cpp.in executable names changed 2021-01-07 18:40:18 -04:00
version.h executable names changed 2021-01-07 18:40:18 -04:00