Commit Graph

11739 Commits

Author SHA1 Message Date
TomZ d20dd6d70a Cleanup; block-pruning
This has been commented out code for some time and its probably best to
remove dead code so as to avoid it rotting.
2019-04-22 20:33:49 +02:00
TomZ d8505020d6 CI: rename zip file to contain more than just Hub 2019-04-22 13:19:49 +02:00
TomZ 949d9c7896 Make branch 2019.04 the latest docker 2019-04-22 13:19:11 +02:00
TomZ cfbab52372 Merge branch '2019.03' into 2019.04 2019-04-22 13:18:59 +02:00
TomZ 9b45fbd961 remove 'latest' docker tag 2019-04-22 13:12:14 +02:00
TomZ c20356896f Set release to 2019.4 2019-04-22 13:10:51 +02:00
TomZ 2577b6f7ef Merge branch 'may19PU' 2019-04-22 12:51:07 +02:00
TomZ 5c7caf35e4 Merge branch '2019.03' 2019-04-22 12:50:21 +02:00
TomZ eca66d8734 Add 'rollback' unit test and make it pass 2019-04-22 12:50:09 +02:00
TomZ 5dcc687273 Promote BlockValidation test
This includes a little refactor to make the test init and cleanup
after each individual unit.
2019-04-22 12:49:53 +02:00
TomZ b0eb502688 Make start date configurable
introducing: -hf201905-activationtime
2019-04-21 17:45:40 +02:00
TomZ 932cd03ad9 Import blockheights of upgrades on testnet 2019-04-21 17:42:49 +02:00
TomZ d8b9d79f2f Use block-height for DAA PU (201711) 2019-04-21 17:41:47 +02:00
TomZ 4112306616 minor; debug output update 2019-04-21 17:33:00 +02:00
TomZ 3d4b37a34b Bugixes in reconsiderblock and helpful message 2019-04-21 17:32:47 +02:00
TomZ 2b0260bdf5 fix unneeded space after exception log message 2019-04-21 17:32:41 +02:00
TomZ 8f982bb3c5 A little more verbose log output 2019-04-21 17:32:27 +02:00
TomZ e0b18781fd Downgrade NET warnings to infos 2019-04-21 17:31:39 +02:00
TomZ b41e2795e7 Add Schnorr support 2019-04-19 17:30:59 +02:00
TomZ b675f3dd82 Revert from bitcoin-abc 5801452e5
This restores the functioning of the unit tests
2019-04-19 17:30:59 +02:00
TomZ a6522c93bc Updated 3rdparty lib secp256k1 to latest 2019-04-19 17:30:59 +02:00
TomZ 86a59c067d Add support for the 'segwit recovery' 2019-04-19 17:30:56 +02:00
TomZ f23aa69a86 Detect the 2019-09 protocol upgrade 2019-04-17 16:02:54 +02:00
TomZ f27d7a80ad Remove 'latest' from diverging master branch 2019-04-15 22:45:13 +02:00
TomZ 495040a8dc mark latest branch 2019-04-15 22:28:33 +02:00
TomZ 67865e4615 Add support to print the version. 2019-04-13 16:23:02 +02:00
TomZ 0c602e1f72 Start branch 2019.03 2019-04-13 09:00:06 +02:00
TomZ edd4cada30 Make compile on older Qt
The method I choose was introduced in Qt 5.8.
This change makes it work on any Qt5 based release.
2019-04-11 19:59:54 +02:00
TomZ ed7ca33d6a Add decoding and printing addresses work.
This now supports cashaddress, legacy addresses and it prints
basic info about the usages of said address.
2019-04-11 18:45:28 +02:00
TomZ aa2c1a6f60 Vastly simplify the NWM callback after sent 2019-04-11 16:20:05 +02:00
TomZ 707d2212de Move encoding (base58) out of server lib
Also write some new accessor methods on the baseclass.

The longer term idea is to make the server itself only use the uint160
raw version for bitcoin addresses.
For now move the encodings (between that uint160 and human-readable) to
the utils library.
2019-04-11 16:20:04 +02:00
TomZ dad38b66c6 Flush indexer to SQL database when we reach Tip() 2019-04-11 00:01:54 +02:00
TomZ ac1a3db905 Write new variable to UTXO-DB info files
Write a changesSincePruning integer which has the following effects;
after a restart;
* We will do a prune faster and/or more often for nodes that are not
  running very long stretches of time.
* We will skip pruning files that don't need it.

Context; pruning of the UTXO is throwing away already spent outputs
that are still in our dirty files.
2019-04-10 23:59:10 +02:00
TomZ cec0c28be3 Make indexer subscribe to block updates
When an indexer is in-sync it will stop actively asking for
new blocks, so the block updates (Hub saying they found a new block)
will then allow the indexer to keep up-to-date
2019-04-10 22:17:13 +02:00
TomZ 78219d5bba Make the indexer-cli and indexer interact well
This adds lots of little things;
* Add GetTransaction API call
* I refactored the GetBlock API a little to reuse code.
* a new 'Version' API call for the hub
* API for the logging manager, so we can set a default
  setup with just C++-APIs
* various (usability) fixes in the FloweeServiceApplication
* Binding to localhost attempts to bind to both IPv4 and v6
* Print the actual transaction hex from indexer-cli (which really
  is just a testing app)
2019-04-10 20:52:04 +02:00
TomZ 890ebf2650 Remove obsolete method GetTransaction
It was a bad attempt of correctness and with Indexer it is ready to be
retired.

The RPC methods now just look in the mempool.
2019-04-10 16:16:05 +02:00
TomZ aea9c25c15 Make indexer-cli have more suitable output 2019-04-10 15:38:37 +02:00
TomZ 3e58679108 Add a new app indexer-cli
This is frankly just a testing application at the moment, but you
can connect to a Indexer server and get the information out, so its
at least useful.
2019-04-10 14:32:46 +02:00
TomZ 6cc433c589 Make usage of NetworkConnection::accept() clear
I added some docs to bind() that handlers there should call
accept().
Also made sure that when nobody accepts a connection it actually
gets disconnected instead of just being ignored.
2019-04-10 14:28:33 +02:00
TomZ 76fdd25b51 Avoid exit without save
Only throw at startup when SQL problems occur.
When they occur later ask for a clean shutdown so we can allow other
parts to shutdown cleanly.
2019-04-09 20:22:35 +02:00
TomZ 20694d4f33 Make indexer be a server too 2019-04-09 19:34:55 +02:00
TomZ ccd66a49b2 Document and refactor NetworkService
The main goal of this is to make sure that network services
implementations don't reuse one bufferpool for all their remotes as that
can cause threading issues.
One bufferpool per remote is now made easy.
2019-04-09 17:24:38 +02:00
TomZ 50b65d054b Cleanups and fixlets 2019-04-09 14:49:08 +02:00
TomZ 07f3a57f73 Fix misuse of std::sort API
Its not clear from my reading of the docs, but the std::sort version
that takes a struct actually makes a deep copy of the struct for each
sort. Which means that this usage is a really bad idea if you were
actually storing the data on this struct.
2019-04-09 12:02:45 +02:00
TomZ df83dc8701 Upgrade HashStorage design phase2
Instead of merging a small list into a bigger and bigger list,
write lots of small lists (20MB each or so) and then when we hit
the wanted final size, merge all of those into one.
2019-04-09 11:19:03 +02:00
TomZ 4f0726119c Give nodes which handed us bad blocks a punishment
This means that when a node following a different chain hands us
a known bad block (likely due to a checkpoint) we end up banning
them.
2019-04-08 16:22:37 +02:00
TomZ 1ce6a93984 Redo setup of HashStorage, phase 1 2019-04-08 13:19:54 +02:00
TomZ a3a456cdcd Try to get more speed out of the SQL DB
we chunk the data and make sure we create a transaction so autocommit
is turned off.
2019-04-06 19:00:55 +02:00
TomZ e14254f33d Make indexer load a config file for setup
Using standard ini file format.
This is the easiest way to configure it to connect to an external SQL
database.
2019-04-06 15:16:37 +02:00
TomZ 2f9d9520d4 Add support for logging std::list 2019-04-06 15:15:36 +02:00