Any projects which want to use Hush code from now on will need to be licensed as
GPLv3 or we will send the lawyers: https://www.softwarefreedom.org/
Notably, Komodo (KMD) is licensed as GPLv2 and is no longer compatible to receive
code changes, without causing legal issues. MIT projects, such as Zcash, also cannot pull
in changes from the Hush Full Node without permission from The Hush Developers,
which may in some circumstances grant an MIT license on a case-by-case basis.
* Fix
* -print
* Filter null outputs
* Rewards cc
* Fix
* Linker
* Fix
* Fix
* KOMODO_LONGESTCHAIN
* Mining_height
* Fix dropped assetoshis
* Error null CCvin
* Test
* Test
* Test
* Fix sell
* Fix order book prints
* )
* Test
* Test
* Fix order display
* Fix oops
* Fix duplicate vin
* Remove dust check
* Fix silly bug
* Test
* Test
* Fix
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Fix compiler error: call of overloaded 'Pair(const char [9], time_t)' is ambiguous
* Fix compiler error: call of overloaded 'Pair(const char [9], time_t)' is ambiguous
* Correctly parse optional top parameter to getsnapshot
* Fix token orders crash
* Add SEC to assetchains.json
* Split amounts/validation: bid, ask, swap
* Fixes
* Test
* Test
* Test
* Test
* +print
* Test
* Test
* Test
* Test
* Test
* Test
* SMALLVAL
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Properly handle multiple vins funding fills
* Test
* Test
* Test
* Test
* Fix ask fill dest
* Test
* Rewards functions
* Fix
* Test
* Params to rewardscalc
* Create funding, addfunding, lock
* Test
* +print
* tokenswapask
* Test
* Test
* Swap functions
* ac_cc under 1000 is not fungible
* Allow to cancel invalid orders
* Prevent negative numbers in assets tx
* Uint64 -> int64
* Fix oops
* Prevent bid for nonexistent assetid
* Error check bidding for assetid that is txid but not asset creation
* Fix
* Fix
* Add pause if scriptcheckqueue isn't idle
* Fix
* -> -> .
* Fix
* Test
* VOBJ
* Tokeninfo rpc
* Asset list
* Test
* strcpy(cp->normaladdr,AssetsNormaladdr);
* Fix
* Rewardslist rewardsinfo
* Fix
* Fix
* Fix
* Vent
* fix
* Int64
* Int64
* Fix createfunding
* Fix false positive error
* sbits = stringbits(planstr);
* Fix maxmoney
* Fix funding name
* Test
* Print
* CCutoxvalue
* Fix rewardslock utxo selection
* New PoW diff calc
* tst
* Test
* Oldflag for PoW calc
* Test
* Test
* tst
* Test
* Test
* Filter locked utxo
* Test
* Fix PoW recalc
* Test min seconds
* int64_t CCduration(uint256 txid)
* Test
* Test
* Test one day
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Prevent inputs of CC inputs
* Test
* tst
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* New rewards address
* Fix mask
* Test
* Test
* Test
* Test
* Test
* Test
* Teest
* Stricter vin/vout checks for assets
* Token swap ready for testing
* Fix rewards unlock
* Fix
* Test
* Validate rewards
* Test
* Trim funding input
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Activate CCduration constraint
* Parameterize KOMODO_FIRSTFUNGIBLEID to 100
* +print
* Test
* Test
* Test
* Test
* Fix c script
* Test
* Initial dice morph from rewards.cpp
* Fix
* Test
* Fix
* Test
* Diceaddfunds
* Fix
* Dice list and dice info
* dicefund
* Dice bet
* Test
* Test
* Put process block's check block call inside lock, revert mining testblockvalidity outside lock
* Don't exit fiat-cli on error
* Docs for coinsupply RPC and improved error-checking on block height
* Version to 0.3.12-beta.
* Change version to 0.3.12 for gilab CI.
* Put undefines for _cpuid back.
* Network decentralizatoin and bug fixes
* Remove unnecessary staking delay
* Staking and mining timeing improvements
* Put staking readout once per staking loop so people know it's staking
* Fail on get_chainactive before lock if checks fail
* Fix check for stake transaction after Komodo merge
* Portable dev (#105)
* Force portable code
* Switch to old MMX instructions, avoiding SSE & SSE2 instructions.
* Less agressive, leave verus code (which checks for it) using advanced instructions.
* Compiling only for windows
* Update .gitlab-ci.yml
* Try -march=native for C++ code generation.
* Tweaking machine architecture settings.
* Try native alone.
* Also get LIBCRYPTOCONDITIONS to -march=native
* Switch other lib to native as well.
* Try switching back further for CPU architecture.
* Even lower end settings.
* Turn on symbols.
* Use sse2,3 and 4 capable x64.
* Once again let verus lib use advances instructioins since it checjs via CPUID at run time.
* Modify a few more makefile entries.
* Switch to AMD model similar to our test system.
* Get snark makefile to k8 too.
* Yet another -march to modify to k8, or two of them.
* Brute force k8 settings, comment non-portable code out.
* Put the condition on cpuid back.
* Put non-portable advenced instruction code back
* Enable instructions.
* Add lib for separate settings.
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* replacing k8-sse3 specific flags to x86-84
* updating versions
* updating versions
* Get verus-cli verusd updated (#106)
* Force portable code
* Switch to old MMX instructions, avoiding SSE & SSE2 instructions.
* Less agressive, leave verus code (which checks for it) using advanced instructions.
* Compiling only for windows
* Update .gitlab-ci.yml
* Try -march=native for C++ code generation.
* Tweaking machine architecture settings.
* Try native alone.
* Also get LIBCRYPTOCONDITIONS to -march=native
* Switch other lib to native as well.
* Try switching back further for CPU architecture.
* Even lower end settings.
* Turn on symbols.
* Use sse2,3 and 4 capable x64.
* Once again let verus lib use advances instructioins since it checjs via CPUID at run time.
* Modify a few more makefile entries.
* Switch to AMD model similar to our test system.
* Get snark makefile to k8 too.
* Yet another -march to modify to k8, or two of them.
* Brute force k8 settings, comment non-portable code out.
* Put the condition on cpuid back.
* Put non-portable advenced instruction code back
* Enable instructions.
* Add lib for separate settings.
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* replacing k8-sse3 specific flags to x86-84
* updating versions
* Propagate verusd changes.
These changes decode valid SIGHASH types on signatures in assembly (asm) representations of scriptSig scripts.
This squashed commit incorporates substantial helpful feedback from jtimon, laanwj, and sipa.
We do not need to be able to calculate multiple SignatureHash versions for a
single transaction format; instead, we use the transaction format to determine
the SigVersion.
The consensus branch ID *does* need to be passed in from the outside, as only
the caller knows the context in which the SignatureHash is being calculated
(ie. mempool acceptance vs. block validation).
JoinSplit signature verification has been moved into ContextualCheckTransaction,
where the consensus branch ID can be obtained.
The argument to the sign command for zcash-tx has been modified to take a height
in addition to the optional sigtype flags.
<nLockTime> CHECKLOCKTIMEVERIFY -> <nLockTime>
Fails if tx.nLockTime < nLockTime, allowing the funds in a txout to be
locked until some block height or block time in the future is reached.
Only the logic and unittests are implemented; this commit does not have
any actual soft-fork logic in it.
Thanks to Pieter Wuille for rebase.
Credit goes to Gregory Maxwell for the suggestion of comparing the
argument against the transaction nLockTime rather than the current
time/blockheight directly.
Rebased-From: bc60b2b4b401f0adff5b8b9678903ff8feb5867b
Based on an earlier patch by Peter Todd, though the rules here are different
(P2SH scripts should not have a CLEANSTACK check before the P2SH evaluation).
This turns STRICTENC turn into a softforking-safe change (even though it
is not intended as a consensus rule), and as a result guarantee that using
it for mempool validation only results in consensus-valid transactions in
the mempool.
NOP1 to NOP10 are reserved for future soft-fork upgrades. In the event
of an upgrade such NOPs have *VERIFY behavior, meaning that if their
arguments are not correct the script fails. Discouraging these NOPs by
rejecting transactions containing them from the mempool ensures that
we'll never accept transactions, nor mine blocks, with scripts that are
now invalid according to the majority of hashing power even if we're not
yet upgraded. Previously this wasn't an issue as the IsStandard() rules
didn't allow upgradable NOPs anyway, but 7f3b4e95 relaxed the
IsStandard() rules for P2SH redemptions allowing any redeemScript to be
spent.
We *do* allow upgradable NOPs in scripts so long as they are not
executed. This is harmless as there is no opportunity for the script to
be invalid post-upgrade.
Attempt to codify the possible error statuses associated with script
validation. script/types.h has been created with the expectation that it will
be part of the public lib interface. The other flag enums will be moved here in
a future commit.
Logging has also been removed in order to drop the dependency on core.h. It can
be re-added to bitcoind as-needed. This makes script verification finally free
of application state and boost!
* Delete canonical_tests.cpp, and move the tests to script_tests.cpp.
* Split off SCRIPT_VERIFY_DERSIG from SCRIPT_VERIFY_STRICTENC (the BIP62 part of it).
* Change signature STRICTENC/DERSIG semantics to fail the script entirely rather than the CHECKSIG result (softfork safety, and BIP62 requirement).
* Add many autogenerated tests for several odd cases.
* Mention specific BIP62 rules in the script verification flags.