Commit Graph

11917 Commits

Author SHA1 Message Date
TomZ 0386f38cc1 Inline CScriptCheck
It was only called twice, and in very close proximity. The class didn't
add anything.
This improves readability and with the new state its easier to write
too.
2020-04-13 13:44:18 +02:00
TomZ 916cb9b5d7 Start sigCheck implementation; actually count them.
Update Script::State to add a sigCheckCount counter.
2020-04-12 18:08:51 +02:00
TomZ e101591f1a Refactor ScriptEval/ScriptVerify calls
Feeling cute, may update this API later.

namespace Script {
struct State {
    State() = default;
    State(uint32_t flags) : flags(flags) {}
    uint32_t flags = SCRIPT_VERIFY_NONE; // validation flags
    ScriptError error = SCRIPT_ERR_OK;

    const char* errorString() const;
};

bool eval(std::vector<std::vector<unsigned char> > &stack, const CScript
    &script, const BaseSignatureChecker checker, Script::State &state);
bool verify(const CScript& scriptSig, const CScript& scriptPubKey, const
    BaseSignatureChecker& checker, Script::State &state);
bool checkTransactionSignatureEncoding(const std::vector<unsigned char>
    &vchSig, State &state);
}

More of the same.
2020-04-12 18:08:09 +02:00
TomZ 1882bed839 remove dead code 2020-04-11 17:05:39 +02:00
TomZ 337598a8bb Remove unused files 2020-04-11 17:04:14 +02:00
TomZ fd7a75bc2f Make sure this builds also without build.h 2020-04-10 21:13:12 +02:00
TomZ 5383f86c7c Remove automake detection 2020-04-10 20:39:00 +02:00
TomZ 9195ad96e1 Add May Protocol Upgrade activation code 2020-04-10 17:28:02 +02:00
TomZ 414bee9e9f Implementation of OP_REVERSEBYTES
Previously named OP_REVERSE, then OP_BSWAP, then OP_ENDIAN_REVERSE.
2020-04-10 15:17:18 +02:00
TomZ 4733554817 Make bloom class more modern
This follows the coding style (method naming) better and it adds
an insert method which uses a Streaming::ConstBuffer argument.
2020-04-10 12:21:49 +02:00
TomZ d9a248e484 protobuf is actually not a requirement
protobuf is only needed if you build the GUI (hub-qt), which is
not compiled by default.
2020-04-10 12:08:32 +02:00
TomZ fcdb52d5aa Make leveldb build with cmake
As this now means we completely use cmake, remove some legacy
stuff as well.
2020-04-08 22:48:29 +02:00
TomZ e8028035a1 make univalue build using cmake 2020-04-08 22:48:29 +02:00
TomZ 1144f013a4 Build secp256k1 with cmake 2020-04-08 22:48:29 +02:00
TomZ f215e89765 Import the new code-of-conduct
This is imported from
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
because why re-invent the wheel.
2020-04-07 22:25:07 +02:00
TomZ 14bd55defb Extend warning message for configure 2020-04-07 22:24:37 +02:00
TomZ ba76c35a7d Move merkle to flowee_utils libs
Merkle-block and merkle-tree classes and methods are pretty much stand-
alone and can be moved with no efforts.

Also move the relevent unit test to qtestlib.
2020-04-01 22:53:07 +02:00
TomZ 9276a45faf Move bloom filters to flowee_utils lib
Also move its unit test from the boost to qtestlib
2020-04-01 22:24:26 +02:00
TomZ 655d9fecb9 Port a log-line. 2020-04-01 20:24:08 +02:00
TomZ 436535647f Add several new features to networkmanager
Allow user to shutdown a connection, making it instantly invalid.
Allow user to register a callback for errors.
And fix pinging to be disabled on legacyP2P style connections.
2020-04-01 20:24:04 +02:00
TomZ 24e557f566 Stop double applying of offset.
We already removed the bytes in Message::header()
2020-04-01 20:22:55 +02:00
TomZ 40cad6112c Pass by reference 2020-04-01 20:22:55 +02:00
TomZ 655179e660 Add EndPoint::from() from a byte-array
This is used on the p2p layer and this allows simple
integration.
2020-04-01 20:22:55 +02:00
TomZ 0c15e877a2 Move arith_uint256 from server to utils lib 2020-04-01 20:22:55 +02:00
TomZ 22e2f3ca7c Make p2p version message mandatory
This was always the intention, but the satoshi code was stupid and buggy.
First, the 'version has been seen' flag was set even if there was a parsing
error in it.
Second, ignoring messages (up to 100) until a version message was seen
makes no sense. Just disconnect instantly.
2020-03-29 12:55:12 +02:00
TomZ 54a07cbdfc Add new log group for future component 2020-03-29 12:55:12 +02:00
TomZ 7b1b742036 Remove workaround for old boost version
The API changes in boost between 1.66 and later was the need
for the boost_compat.h header file.
Its been a long time since Flowee started demanding 1.67 minimum
for boost, making this compat obsolete.
2020-03-29 12:55:12 +02:00
TomZ bf24ed042b Add support for legacy p2p network envelope in networkmanager 2020-03-29 12:55:12 +02:00
TomZ 8b365263de cleanup 2020-03-29 12:55:12 +02:00
TomZ 78ac8ea335 new version 2020-03-24 19:29:37 +01:00
TomZ 997e861e93 Add fetch method on mempool for DSPs
Allow the retrieval of a double spend proof based on the transaction-id
it is paired with inside the mempool.
2020-03-19 22:05:11 +01:00
TomZ 5266529f13 Fix potential race condition
Add missing mutex
2020-03-19 22:05:05 +01:00
TomZ 899a6e0f18 Make the API test a bit more stable.
The case where multiple hubs were started which cross-connected works
better if we have a small wait in-between the starts.
2020-03-19 18:53:35 +01:00
TomZ 09b4e5050e Make link under strictness rules
This re-adds the flowee_utils lib which was implied and should have
been auto-added by cmake, but it failed to link for AUR strictness
settings.
2020-03-19 16:08:56 +01:00
TomZ 4e0b42d205 Fix BufferPool::forget()
Using the forget() method too many times could lead to an invalid
(negative size) ConstBuffer being created.
This fixes and immediately copies an assert used in many other places in
the code already.
2020-03-19 15:05:54 +01:00
TomZ 6ad8374794 Update testnet seeders 2020-03-19 15:04:28 +01:00
TomZ ac030e328c Fail fast. 2020-03-19 14:59:31 +01:00
TomZ ba15997b3c Make compile 2020-03-06 11:18:40 +01:00
TomZ 629644d938 Fix incorrect warning messages on empty file 2020-03-06 00:26:55 +01:00
TomZ dd29c17d49 Improve info command 2020-03-06 00:20:06 +01:00
TomZ fb2854f23d Add unspentdb Duplicate command. 2020-03-05 23:29:53 +01:00
TomZ e9ef907c1f Sync checkpoint save and index-db saveCaches
When the UTXO saved checkpoints this change makes sure we also store the
index-db changes.

Since we stopped saving simple state changes fromt the index-db, the
only real data we save is the 'undo-block-index', as such this will be
relatively cheap to save.
Without an undo block position we will currently fail to verify those
blocks and as such it is useful to save all at the same time to actually
have a state we can start from.
2020-03-05 23:29:53 +01:00
TomZ 4f077da5a6 remove assert(true) 2020-03-05 23:29:53 +01:00
TomZ bd58ac420a Avoid reuse (shadow) of variable 2020-03-05 23:29:53 +01:00
TomZ 8e269a2ea8 Fix initialization order 2020-03-05 23:29:53 +01:00
TomZ 043f496c73 Make scope of variable smaller. 2020-03-05 23:29:53 +01:00
TomZ 579dc67bc2 Remove dead code 2020-03-05 23:29:52 +01:00
TomZ 02258d9dcd Make pruner use the new tags
This allows the pruner to be used on the 'tip' DB file, at which point it
will set the filesize to be the default 2GB one.
Previously pruning the tip would confuse the Hub with a smaller file
size.
2020-03-05 23:29:52 +01:00
TomZ c79be8860a Use VerifyDB as well when finding a functional UTXO state
Allow VerifyDB to disquality a utxo-state so we can find an older one, if
available, and try harder to start without reindex.
2020-03-05 23:29:52 +01:00
TomZ 7ce5880f95 Make unspent-db command easier to use
This change drops the various arguments that force the user to select if
an argument is an .info file or a .db file etc. Instead auto-detect them
and also allow the user to provide a list of arguments.

The most direct effect is that I can now run 'unspent-db info *.info"
2020-03-05 23:29:52 +01:00