|
| 1 | +* Release 1.5.0 |
| 2 | +*** New Features |
| 3 | +In February 2020 the BSV network underwent a hardfork known as the "Genesis Upgrade". |
| 4 | +https://wiki.bitcoinsv.io/index.php/Genesis_upgrade |
| 5 | + |
| 6 | +This release brings this library in line with the latest features from the Genesis upgrade. |
| 7 | + |
| 8 | +- Genesis OpCode support in Script Interpreter (a number of OpCodes were re-enabled) |
| 9 | +- New default limits on Script OpCodes (number of opcodes in script, size of script etc.) |
| 10 | +- Expanded numeric support to cover BigIntegers in Script |
| 11 | +- P2SH nuances w.r.t. simultaneous "soft-deprecation" of this feature. |
| 12 | +- Backward-compatibility with pre-fork transactions (limits remaining in place) |
| 13 | +- Full compatibility with BitcoinSV Node 1.0.8 Test Vectors |
| 14 | + |
| 15 | +*** Notable Limits |
| 16 | + |
| 17 | +Below are some notable constants delimiting new limits available to Script developers. |
| 18 | +These limits are all governed by Flags that can be passed to the Script Interpreter. |
| 19 | +``` |
| 20 | +//maximum size of push operation after Genesis |
| 21 | +MAX_SCRIPT_ELEMENT_SIZE = 2147483647; // 2Gigabytes after Genesis - (2^31 -1) |
| 22 | +
|
| 23 | +//maximum size of push operation before Genesis |
| 24 | +MAX_SCRIPT_ELEMENT_SIZE_BEFORE_GENESIS = 520; |
| 25 | +
|
| 26 | +// Maximum number of non-push operations per script before GENESIS |
| 27 | +MAX_OPS_PER_SCRIPT_BEFORE_GENESIS = 500; |
| 28 | +
|
| 29 | +// Maximum number of non-push operations per script after GENESIS |
| 30 | +MAX_OPS_PER_SCRIPT_AFTER_GENESIS = UINT32_MAX // (4294967295L) |
| 31 | +
|
| 32 | +// Maximum script number length after Genesis |
| 33 | +MAX_SCRIPT_NUM_LENGTH_AFTER_GENESIS = 750 * ONE_KILOBYTE; |
| 34 | +
|
| 35 | +//maximum size of numbers in Script before Genesis |
| 36 | +MAX_SCRIPT_NUM_LENGTH_BEFORE_GENESIS = 4; |
| 37 | +
|
| 38 | +``` |
| 39 | + |
1 | 40 |
|
2 | 41 | * Release 1.4.1
|
3 | 42 | *** New Features
|
|
0 commit comments