Commit Graph

12624 Commits

Author SHA1 Message Date
tomFlowee 08c04b3b25 Assume less and check the inputs better
Should an Tx::Iterator be created on some random data we are now
checking the read values better.
2021-02-16 18:56:13 +01:00
tomFlowee aea317cf71 Be better at handling bad input.
When the transaction offset is wrong and doesn't parse we turn the
generic runtime_exception into one that goes back to the API caller.
Also catch those generic exceptions on the server level to avoid this
kind of error from disconnecting a peer.
2021-02-16 18:36:40 +01:00
tomFlowee afdaff5188 whitespace 2021-02-15 14:09:35 +01:00
tomFlowee 4f37f4ea2f Don't spam 2021-02-12 20:59:41 +01:00
tomFlowee da2a8843ec call addressUsedInOutput callback more
When getting data from the mempool based on address, we also want to call
the addressUsedInOutput() callback, in order to be consistent.

We pass in the blockheight and offset in block being -1, though.
2021-02-11 22:52:17 +01:00
tomFlowee ead61dc357 Auto restart service on fail 2021-02-11 22:50:50 +01:00
tomFlowee b4df28bd90 Avoid programming errors, add assert. 2021-02-11 15:23:35 +01:00
tomFlowee efa23bd2db Extend Live::GetTransaction to search on address too
This allows API users to search the mempool on address or on txid.

This also adds a new unit test testing this functionality
2021-02-11 15:21:54 +01:00
tomFlowee 47702ad4a4 Port getaddress to be a native call. 2021-02-11 14:15:23 +01:00
tomFlowee d5eef9238c Make sure filesize is a power-of-2
Memmapping can use any filesize, but the pages are allocated in a power
of two amount.
Assuming 4K pages we now aim to have 65536 pages to map a big file.
2021.01.1
2021-02-07 20:02:10 +01:00
tomFlowee b9f2c23ffb Optimize memory-access
A single lookup on a db file took 20 reads using a binary-search.
This change makes that around 15 reads, of MUCH more localized
manner.
2021-02-07 18:09:55 +01:00
tomFlowee 6a2dc97e25 Search harder for logs.conf 2021-02-07 18:07:22 +01:00
tomFlowee bfcb9b0be2 whitespace fix 2021-02-07 14:28:00 +01:00
tomFlowee a3cf6cbcd8 Switch to std::map / std::unordered_map 2021-02-07 13:46:57 +01:00
tomFlowee 7a6baf73e4 Optimize;
cache filesize.
2021-02-07 10:57:45 +01:00
tomFlowee 4bfe782eab Add a little more documentation here 2021-02-06 23:18:21 +01:00
tomFlowee c71b6fa9c0 Fix off-by one and be more consistent
Lets default to using the plain and simple assert(), the Q_ASSERT macro
doesn't really add anything for us.
2021-02-06 23:18:21 +01:00
tomFlowee 1deaab6cc3 Search harder for config file.
This gets around the sillyness where you need an extra dir for a config.
  ~/.config/flowee/rest-service/rest-service.conf

now you can just use
  ~/.config/flowee/rest-service.conf
2021-02-06 23:10:17 +01:00
tomFlowee 7df9ab4be9 Add details about the way to configure indexer 2021-02-06 20:20:43 +01:00
tomFlowee d3f1d7f454 Whitepace and minor fixes. 2021-02-05 17:32:36 +01:00
tomFlowee c67d720f72 Start new version. 2021-02-05 17:28:33 +01:00
tomFlowee ceb44cc3b5 Remove dead code. 2021-02-05 17:26:40 +01:00
tomFlowee f026e626a1 Add notifications for the p2pnet lib. 2021-02-05 17:22:52 +01:00
tomFlowee 70f363cabb Also allow downloading of dsproofs. 2021-02-04 18:09:38 +01:00
tomFlowee 44e8717d1e Send a MEMPOOL message on SPV/merkleblock sync. 2021-02-04 17:39:44 +01:00
tomFlowee 1f2f7c36d2 Port the boost container to the std one.
The unordered_map is now available in stl, and said to be better,
so lets slowly switch over
2021-02-03 16:31:46 +01:00
tomFlowee 1003ad716b Fixlets in log output consistency 2021-02-03 14:41:51 +01:00
tomFlowee 5d6d09e4d6 Assign segments only to good peers
Instead of assigning a privacy segment at connect, wait until we have
determined if this peer is on the same chain as us before we allocate a
peer slot.

This also helps us limit the amount of peers we send our bloom filter to.
2021-02-03 14:41:51 +01:00
tomFlowee 447a2e12e6 Add new action
When a peer never sends headers we now ban it after a timeout based on
the idea that we don't even know if this peer is on the same chain as we
are.
2021-02-03 14:41:51 +01:00
tomFlowee 5baaf984ab Add API docs
also add setInterval()
2021-02-03 14:33:38 +01:00
tomFlowee 0824cabbee Sanitize log
Seems some systems are not happy if we print a string that has zeros in it.
This sanitizes the message to replace zeros with spaces.
2021-02-03 13:13:21 +01:00
tomFlowee adfe4081cb Update copyright notice and email address 2021-02-02 13:08:07 +01:00
tomFlowee 3dff9b157d cleanup includes 2021-02-02 13:05:19 +01:00
tomFlowee 5016e2837b remove the building of the debian file from gitlab CI 2021-02-01 22:34:42 +01:00
tomFlowee ae8a05755d Remove outdated files 2021-02-01 22:02:14 +01:00
tomFlowee 94ae61132b Promote 'interpreter' to the utils lib.
Being able to parse bitcoin-script is useful for users other than
the hub, using the flowee shared libraries they can now do so.
2021-01-21 15:47:46 +01:00
tomFlowee b34b347d00 Improve the icon 2021-01-21 10:10:05 +01:00
tomFlowee bc64647ec0 Update to use the new Flowee logo 2021-01-20 23:35:24 +01:00
tomFlowee 7b0949031f Rename CHashWriter::GetHash to finalizeHash()
as the expected behavior of 'get*' is a const method, it is harmful to
name a method such when it actually alters the state of the method such
that subsequent calls will produce a different result.
2021-01-20 22:51:48 +01:00
tomFlowee 449dc47871 Move CReserveScript to the only user: the wallet
This does remove the feature that mining can use the internal wallet as
a source of coinbase addresses, but since Flowee doesn't actually ship a
wallet, that was just not a good reason to keep an unused class in the
libs.
2021-01-20 22:43:37 +01:00
tomFlowee 235df9c5f0 Add loading of DSProof from a constbuffer. 2021-01-20 21:35:20 +01:00
tomFlowee 40b6e4e02c Prefer modern C++
static const -> constexpr
2021-01-20 19:59:54 +01:00
tomFlowee defd3950f0 Remove CAmount typedef
The CAmount name is not helpful as its just an int64_t and not a
class, like the name implies. There were a handful of places where
it was passed in as const-ref, as a good example of this actually
creating sub-par code.
2021-01-20 19:59:35 +01:00
tomFlowee b12e846c92 whitespace, make pretty 2021-01-20 19:14:53 +01:00
tomFlowee 5b7fa33573 Add an extra assert.
The method offsetInBlock assumes the block actually is the one this
transaction is in, the assert helps making sure that this assumption
isn't broken, prodicing unusable results.
2021-01-20 18:23:59 +01:00
tomFlowee 30e28acdd5 Remove unused code.
Move the MutableTransactionSignatureChecker class out of the header and
thereby remove the need to include transaction.h in the header.

This checker was never used in any app, just in the unit tests.

This also fixes includes around.
2021-01-20 18:22:34 +01:00
tomFlowee e1d57f91ba Specify copy-construtor and asssignment operators
To be explicit avoids confusion.
2021-01-20 16:00:25 +01:00
tomFlowee b836134081 Fix a source of test instability
Especially seen in the block-validation tests, we sometimes delete
the validation engine while some other threads are still doing stuff
with the not surprising effect that we may cause crashes or asserts
to get hit.

This change makes us wait instead.
2021-01-20 15:59:45 +01:00
tomFlowee 1b448e98f1 Be aware of the quiet zone
QR Codes have to have a Quiet zone according to spec, this adds that
zone to the image.
2021-01-19 18:59:54 +01:00
tomFlowee 7647dde2b5 Handle DNS feeds better.
Avoid issues when the DNS is slow.
Increase the score of an IP that is part of a feed.
2021-01-13 18:15:33 +01:00