forked from plukkie/WavesLPoSDistributer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
173 lines (144 loc) · 9.22 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/* =====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES===WAVES====WAVES====
*
* This is Plukkie's version of the LPoSDistributor script, a revenue sharing application for the WAVES blockchain
* Many thanks to original version of Marc Jansen and the fork of W0utje.
*
* I call this version "The lazy one', due to the automated nature. Only edit once when you install , no more.
*
* I do not have any worth mentioning coding experience. In my daily job, I am a hardcore network architect.
* But I was always inspired by application programming and network automation. I am lazy and like to automate.
* With my analytic skills I decided to put some effort in javascript and figure out how the original script works.
* And came to the conclusion that it is worth to make it more 'lazy' style of paying out transaction fees.
* I am a strong believer of decentralized banking and I like blockchain and you're never to old to learn stuff.
* Hope you forgers enjoy my contribution to the community.
*
* Donations are welcome if you like this version of the script: 'The lazy one'
* - you can DONATE Waves to alias 'donatewaves@plukkie' or address '3PKQKCw6DdqCvuVgKtZMhNtwzf2aTZygPu6'
* - you can LEASE your Waves to alias 'plukkieforger' or 'plukkieleasing' or address '3P7ajba4wWLXq6t1G8VaoaVqbUb1dDp8fm4'
*
* Thank you and Enjoy!
*
/* =====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES====WAVES===WAVES====WAVES====
Version 2.0
-----------
- date 01 februari 2019
- Please refer to README.md which necessary steps to take to get you up and running.
It will take you about 1 hour to set parameters and get you started!
- Added centralized configuration file 'config.json'
Now you only have to change values once if you want to change behaviour.
See README.md for a description of all variables.
All script files consume these values when started by reading this file.
- If the collector script starts for the first time and hence, it does not find the file 'batchinfo.json',
then it uses the blockvalues that you configured in the config.json file.
After the first run, the batchinfo.json file is created and periodically updated and used for subsequent runs.
- added bash script 'start_checker.sh' as simplified starter for your 'node checkPaymentsFile.js'
The script will just execute 'node checkPaymentsFile.js' for you. That's why this is the 'lazy' version
- changed README.md file accordingly and optimized some text
- Files updated
- appng.js
- checkPaymentsFile.js
- massPayment.js
- masstx.js
- CHANGELOG.txt
- README.md
- Files added
- config.json
- start_checker.sh
Version 1.2
-----------
- date 28 december 2018
- Added masstransfer support with script 'masstx.js'
You can now choose to do payments with masstransfers, which optimizes your transfer costs for the payments.
Masstransfer is a type 11 transaction which can be done for one asset at once (like Waves or Mrt). It adds
up to 100 recipients and their fee amounts in one massive transaction. The cost depends on the total transactions
added, but is already benefitial if you have only a couple of transactions. The exact amount depends if you only pay
Waves or also Mrt and depends on the number of transactions. But no worries, if you run the payment checker
with the 'node checkPaymentsFile.js', you get a nice overview of the payments to do and the cost involved if
you were to pay with single transaction or with masstransfers.
You can interchangelly keep on using single transactions or mass transfers. Use payment check tool to calculate
for you which is cheapest.
- If masstransfer is used for payments, it appends the transactionlog to the logfile of the current batch, which
was created earlier by the collector tool 'appng.js'
NOTE:
This is not the case for single transactions. Sorry for that, but my time is scarse and it seems that 9 out of
10 times masstransfer will be used. Maybe in future updates I'll append it also for single transactions. Anyway
it's only handy for reference in a later stage and not really needed.
- Possibility to start masstransfers after a crash or after payment disruption is not ported for now.
With the existing single transaction tool (massPayment.js), every transaction is printed on the screen with
a number. After a crash, you have the option to start it, just from where it crashed. However, with masstransfers
you have a duration optimization. Imagine you have 128 transactions to do. If you were to pay with the single
transaction tool (massPayment.js), it would take 128 txs, 1 sec per txs, total 2 minutes and 8 secs.
If you would pay with masstransfers (masstx.js), it would take 2 masstxs, 1 sec per masstxs, totals 2 secs :-)
Chances of a crash at this perticular short moment is low.
- checkPaymentsFile.js tool now shows costs for single transactions and for mass transfers
- Files updated
- CHANGELOG.txt
- checkPaymentsFile.js
- README.md
- Files added
- masstx.js
Version 1.1
-----------
- date 8 november 2018
- Added queueing mechanism, that stores a batchID for every collection session when finished
Collector sessions ('node appng.js OR start_collector.sh') are added to a payment queue file (payqueue.dat) when finished.
This way you can run session after session, without doing immediate checks or payments if you like. Every session
is written with it's batchID to the queue file and the payoutinfo is logged to payoutfiles with it's batchID added
to the filenames.
The checkPaymentsFile.js script for checking and the massPayment.js for actual payments automatically scans the
queue file and sequentially do their respective jobs with a nice screen print of results
- Checking payments with checkPaymentsFile.js now automatically scans the payqueue.dat file and ends with the sum of
all payment jobs. This way you get an idea of the total payments that will be done
- Removed the fee calulation for tokens rbx, mer and bearwaves from the script (sorry w0utje).
Due to the feature 'sponsored coins' this is obsolete.
- Added various error handlers, to avoid script crashes or detect when people would edit files by hand
- like no payqueue.dat file
- duplicate batchIDs would be detected (this only happens if you would modify the batchinfo.json by hand,
which normally is not needed at all)
- missing batchinfo.json file
- missing directory where succesfull payout files will be stored (it's autmatically created then)
- detect when the payment stop block is larger then the current blockheight of the blockchain
- and more...
- MassPayment.js is now modified to handle a crashed session, if the payqueue has multiple jobs.
If a massPayment session crashed, just make note of the batchID and the last succesfull transaction counter,
and edit the variables const crashconfig = {
=> batchidstart: '0',
=> transactionstart: '0' }
Change the numbers in the massPayment.js file and start the massPayment session again and you should be fine.
NOTE: The transactionstart nr should be the last succesfull number + 1
- MassPayment.js:
- After succesfull ending of all transactions of a batch, the batchID is removed
from the payqueue.dat
- After succesfull ending of all transactions of a batch, the leaserpayout and logfiles are moved
to the folder paymentDone/
This gives you the possibility to check afterwards payment jobs with logs.
- automatically created a backup of the payqueue.dat file, which holds all payment batches
- Added CHANGELOG.txt to track changes to the versions of the script
- Added various minor cosmetic errors of the script
================================================================================================================
* V 1.0
* Plukkie's edit of W0utjes's LPoSDistributor V 2.0.3
*
* CHANGES
* - Created seperate batchinfo.json for initial key/value pairs, which are updated after a successfull run
* After each succesfull run the following XXXXX values are updated;
* "paymentid": "XXXX",
* "paystartblock": "XXXXX",
* "paystopblock": "XXXX",
* The difference between paystart/paystop block will be the blockwindowsize setting
*
* - Possibility to set blockwindowsize = X, where X defines how many blocks will be scanned for payments
*
* - Possibility to set wallet addresses in the variable 'nofeearray [ ];' which will NOT get revenue sharing.
* This can be used if you are rewarded with leases, which do not expect payout from you
* Default it's empty, so all incoming leasers get revenue sharing
*
* - Added paymentid which complements the '<leaserpayoutfilename> + <paymentid>' to make the payoutfiles unique to every session.
* All files are stored now and actual payouts with masspayment script can be done for every unique payout files
*
* - Added logfile creation after a succesfull session which summarizes relevant info, which can be used for reference or analysis
* This is the '<leaserpayoutfilename>.log'
*
* - Added bash script 'start_collector.sh' which optimizes some runtime variables of 'node' binary
* This can be used if regular execution of the appng.js script gives problems and terminates with errors
* ================================================================================================================= */