Commit Graph

57 Commits

Author SHA1 Message Date
tomFlowee 6a2dc97e25 Search harder for logs.conf 2021-02-07 18:07:22 +01:00
tomFlowee 9748d3988f Cleanups and improvements. 2020-12-25 23:51:06 +01:00
TomZ 3343b7a2b2 Share binding code with bitcore-proxy
Additionally, support optional port argument.
2020-11-16 23:09:17 +01:00
TomZ 960e3afeb2 Redo binding logic in all Qt
Avoid conversion to and from boost and this solves the issue of trying
to listen to multiple interfaces not working very well.
2020-11-16 22:45:46 +01:00
TomZ bdcf8ad45c Show version in the start message
This is used by various apps, like indexer. They will now display
something like:

Flowee indexer starting. Version: 2020-7.0 (v1)
2020-11-16 18:59:25 +01:00
TomZ 5d9e290f41 Add TODO for async usage 2020-10-27 16:33:08 +01:00
TomZ 68759fbf00 [REST] Add unconfirmed fields to the address/details 2020-09-18 20:40:49 +02:00
TomZ 5f071d9ef7 Request indexer for version and display 2020-09-14 23:02:52 +02:00
TomZ 352644fc05 [REST] Make transaction/details also fetch from mempool
This uses the new MempoolSearch api in order to allow the REST API to
fetch and display transaction data which has not been confirmed yet.
2020-09-14 15:30:51 +02:00
TomZ b2e39b4ae6 Introduce new Job type matching the new SearchMempool API message 2020-09-11 18:54:21 +02:00
TomZ bf921a4267 [REST] Add sendRawTransaction GET support. 2020-09-09 14:52:50 +02:00
TomZ 67f0535607 Squashed commit of the following:
commit f1c09cbbdf228cefbfbd339567ba337083e93e52
Author: TomZ <tomz@freedommail.ch>
Date:   Wed Sep 2 13:56:38 2020 +0200

    Fix sorting in address/utxo call

commit c61b03b05de04c9d53c6fdf413dd1b6d33dc17f6
Author: TomZ <tomz@freedommail.ch>
Date:   Wed Sep 2 13:03:43 2020 +0200

    Also catch missing services for more complex searches

    We did catch it on 'start()' which may not actually use a service that
    was missing and only in a followup would the missing service be used.
    So also catch the exception for missing service on the other event
    handling methods.

    This means that we now show a nice "setup needed" message to client when
    a call is done that is not supported because of missing backing service.

commit fbcfe60c7d21b309e9c827dd927de0e196d7f5b6
Author: TomZ <tomz@freedommail.ch>
Date:   Tue Sep 1 16:03:19 2020 +0200

    Also use the complex UTXO lookup to do callbacks.

commit d948225ae7786aa6b62ff9355c2d768a85569642
Author: TomZ <tomz@freedommail.ch>
Date:   Tue Sep 1 15:47:48 2020 +0200

    Add address/utxo call.

commit cbc4695d4abae1404afe03f34b10427e48f819ae
Author: TomZ <tomz@freedommail.ch>
Date:   Tue Sep 1 14:34:31 2020 +0200

    Add address/details API call

    This mostly implements the API call to list an address.

commit 1d215032af09551e2b3eda314c072a200e5fb37a
Author: TomZ <tomz@freedommail.ch>
Date:   Tue Sep 1 14:30:26 2020 +0200

    Fix warnings

    This fixes warnings from the compiler and the linter.

commit b61e7dd42222537b456a79e14439a0d36007e8d7
Author: TomZ <tomz@freedommail.ch>
Date:   Tue Sep 1 14:27:27 2020 +0200

    Blockchain::Search: Clean a little and fix bugs

    This follows the API docs on the utxoLookup() callback and we indeed
    return back the blockheight/etc parameters even if the utxo is already
    spent (represented by unspent=false).

commit 7ec3ebf937d7f2fb6a7a18f21d2e8b645db6fe3e
Author: TomZ <tomz@freedommail.ch>
Date:   Mon Aug 31 12:24:18 2020 +0200

    Fixes and move to v2 url

commit 32b8018af805ce068da7d3e149add66a90c92264
Author: TomZ <tomz@freedommail.ch>
Date:   Mon Aug 31 11:29:35 2020 +0200

    Build the rest service

commit c386adff9d28a0f844916019602ea0032bbc360a
Author: TomZ <tomz@freedommail.ch>
Date:   Sun Aug 30 19:24:29 2020 +0200

    Cleanup old code and make vin work

commit 5b88457863892ff8391e42a7eff61cd243851b41
Author: TomZ <tomz@freedommail.ch>
Date:   Sun Aug 30 18:42:41 2020 +0200

    Output addresses.

commit 46c2ce680409c38f1a67730e23cde942db2ecc46
Author: TomZ <tomz@freedommail.ch>
Date:   Sun Aug 30 17:51:03 2020 +0200

    Make tx-refs easier for the Blockchain::Search

commit b0591b5a6b57e2eb7022db7b7a351c694220e5ad
Author: TomZ <tomz@freedommail.ch>
Date:   Fri Aug 28 18:28:48 2020 +0200

    Make printing of tx work better

commit d337ac91ad4ab9eeb768695c639dcbbbcc463837
Author: TomZ <tomz@freedommail.ch>
Date:   Fri Aug 28 15:46:04 2020 +0200

    Make rest service show a nice help for setup.

commit 5997ff1fa06bd1a6b51ead93eef094a5561fdb53
Author: TomZ <tomz@freedommail.ch>
Date:   Wed Aug 26 17:43:09 2020 +0200

    Parse the json automatically.

commit 5ed7d6e53761828e2e385e085f44d530449b0b3b
Author: TomZ <tomz@freedommail.ch>
Date:   Wed Aug 26 13:07:04 2020 +0200

    Start project rest-service.
2020-09-02 14:58:09 +02:00
TomZ 713697525a A network buffer maximum size of 6MB sounds fine for a server.
This is for the connection to the hub/indexer, so not for the incoming
clients.
Increasing the size allows much larger traffic without delay.
2020-09-02 13:47:32 +02:00
TomZ f4f22693dc Enable better setup help for webcore-proxy
When we notice a missing backing service we now throw an exception
and on the html handler we push a setup.html file which has helpful
setup information.
2020-08-28 15:46:26 +02:00
TomZ 370abe4c1e Follow several code-check suggestions
Also print a line explaining which file the logs go to in case there
is no config.
2020-08-26 14:08:03 +02:00
TomZ 648eb56c9d Drop cmake add_dependencies() calls
When we made the 3rdparty libs be build by cmake the need to manually
add dependencies became irrelevant.
2020-07-05 12:50:09 +02:00
TomZ 32251471a5 On fetch-block, also notify about each transaction.
The callback on each transaction was only called when individual tx
were fetched, which is "magic" behaviour and I don't like
inconsistencies.
So, also call the callback for each transaction in a block we fetched.
2020-06-19 16:40:29 +02:00
TomZ c5a8181299 Pre-allocate a larger buffer
This will most likely benefit some FloweeJS users when they do some stuff
that I didn't think a good idea, at least this way they will not get 
a bunch of errors :)
2020-06-19 16:40:29 +02:00
TomZ 7e5d3a98dd Fix in apputils/blockchain (floweejs) for assert
This assert would hit in some cases, due to coinbase not getting a
prevtx field.

This solves that properly.
2020-06-19 16:40:29 +02:00
TomZ a01fbab2b7 Update tests and fixes in bitcore-proxy
this fixes mixups when more than one output of a transaction was used in
our search.
2020-01-17 19:44:29 +01:00
TomZ a1cb53e603 Delay callback until end
This allows us to do sends from the callback.
2019-12-30 17:25:26 +01:00
TomZ 50fc8dd024 Make available some helper methods as protected 2019-12-27 21:31:44 +01:00
TomZ d15998e658 Provide a safe way to modify jobs out-of-thread
The FloweeJS component uses this class but requires the usage
of the NodeJS 'main' thread. Which needs safe access to the jobs
list at the same time the Flowee workers need access.
Simple solution; add a mutex.
2019-12-23 13:20:08 +01:00
TomZ ea1ab3c987 Fix interpreting API results. 2019-12-10 17:39:17 +01:00
TomZ 85d5dac081 add is{Hub|Indexer}Connected() methods. 2019-12-09 15:13:37 +01:00
TomZ ad65d8010b Fix check for coinbase in search API. 2019-12-09 15:13:37 +01:00
TomZ 0e02f9796d cleanup 2019-12-09 15:13:37 +01:00
TomZ 78fa7fc627 add new virtuals for floweejs 2019-12-01 23:05:33 +01:00
TomZ d004e0f5b1 Update UTXO search callback
Make the UTXO search callback actually useful for more than tests.

This passes all the data we have and what the user could want to use,
also updating the receiver (bitcore-proxy).
2019-11-30 19:53:12 +01:00
TomZ d658189a73 Move callback
Make the callback happen after we get the indexer status.

Additionally, fix the issue where looking up a txid that failed
would end up being recursive due to us copying the initially requested
hash. Causing it to be a duplicate (which then fails etc).
2019-11-29 22:14:51 +01:00
TomZ e8c38f6b77 Add api docs 2019-11-28 23:59:32 +01:00
TomZ bcec400e79 Remove Qt dependency from the blockchain search stuff. 2019-11-13 19:09:16 +01:00
TomZ d573e307c3 Refactor; move SplitHostPort to utilstrencodings 2019-11-12 15:35:54 +01:00
TomZ 6770467a06 Change the callback to have the version included 2019-11-11 19:37:15 +01:00
TomZ 3b5491e9d3 Fixlets in log-levels for the bitcore proxy. 2019-11-11 19:37:01 +01:00
TomZ e7ad998d57 Add -fPIC to installed libs 2019-11-04 14:20:50 +01:00
TomZ 2396938cfb New version and only connect to new versions 2019-10-20 11:57:01 +02:00
TomZ fcbe8d3b8b Adjust BitcoreProxy to the new Indexer API 2019-10-16 22:57:50 +02:00
TomZ 00814e24f9 API: Use hash of outscript instead of address
The usage of a ripe160 for bitcoin addresses in the API and in the
Indexer loses some info, specifically what kind of script it is.
Additionally not all types of scripts fit this mold. At best that means
its not future-proof.

This adds a method to the API in order to select from a Tx the hashed
outscript (thats singlehashed sha256) and refactor the address indexer
to use that instead of the ripe160 address.

The API enums broke a little, so I used the opportunity to break it a
lot and clean up the enums in order to make them more future-proof.
But, yeah, software from before this commit is protocol incompatible
with software after this commit.
2019-10-16 22:57:50 +02:00
TomZ ba11657cf7 BitcoreProxy; add endpoint & docs
This makes the service mostly self-documenting as it serves plain simple
html pages for error messages which show the end points you can use.

This adds support for the "unspent outputs for address" endpoint.
2019-10-06 13:07:28 +02:00
TomZ a9e546071f BitCore: Add support for address lookup 2019-10-05 16:08:37 +02:00
TomZ 2e37162aa1 AppUtils lib; add search API
The core APIs in Flowee are quite low-level and especially combining
results from multiple services becomes tedius, verbose and thus
error-prone.

For this reason I wrote a new SearchEngine and related classes which
allow one to create a single compound request, submit it to the engine and
get a callback when it is done.

For instance one can now create a request for a transaction by txid and the
system will split this into a txid-lookup and the actual fetch for the
transaction.
Enough callbacks and options exist to be able to add a lot more details
this way in a simple manner.
2019-09-23 11:03:36 +02:00
TomZ c6e48e2e11 Be much more consistent with our types
(socket) ports are uint16_t
log-debug sections are shorts.
2019-09-12 15:23:30 +02:00
TomZ c5c25a5e29 Minor usability fix
Avoid confusing naming and consistent casing.
2019-09-08 20:51:25 +02:00
TomZ 844747fa65 Make configurable which cli options to allow. 2019-08-24 22:25:10 +02:00
TomZ c3ddab9cd4 Make Indexer bind to localhost as default 2019-08-24 22:25:10 +02:00
TomZ 99e7f8656c Make headers go to nice subdirs 2019-06-07 09:53:05 +02:00
TomZ a7f4e942f9 Add README for indexer 2019-06-06 20:15:01 +02:00
TomZ d10e50803c Avoid warnings from Qt.
Lets not ask about m_verbose when we didn't add it to the parser at all.
2019-06-03 21:39:37 +02:00
TomZ 08ca3c59c9 Set sane default log levels 2019-06-03 10:59:33 +02:00