We did check in Connection for SupportedCapabilitiesMessage and if a message is of that type we set the capability.
But encrypted messages are wrapped in a PrefixedSealedAndSignedMessage so the payload is not visible as SupportedCapabilitiesMessage without decrypting it.
We need to call maybeHandleSupportedCapabilitiesMessage at decrypting the message. We do that only for direct messages not for mailbox messages as we likely do not have a connection open to the peer in that case (otherwise it would not be a mailbox msg) and as we don't have the connection available (we get is as AddDataMessage broadcast from an peer, so could could not apply it to the Connection of the sender.
For published delayed payout transactions we do not receive the tx confidence
so we cannot check if it is confirmed so we ignore it for that check. The check is any arbitrarily
using a limit of 20, so we don't need to be exact here. Should just reduce the likelihood of issues with
the too long chains of unconfirmed transactions.
Fixes#4623
URLs in Javafx label controls are not clickable, so separate them out to
one or more clickable Hyperlinks displayed at the footer of the popup.
The approach taken for this is to embed the tag `[HYPERLINK:]` in the
message around a link that you want to be handled this way. The links
can be anywhere within the popup message, in the same order that they
will be displayed. Using the tag has the advantage of being optional,
and does not require new code to be written for each individual popup.
Refactor to be more flexible; allowing inline hyperlinks
Codacy nits.
This will be used for monitoring seed nodes.
Instead of requesting all data (we cannot request all in fact as it is too large)
we request the number of items the node has.
This code will not have any impact atm. It will be triggered once a new monitor module gets added which
will send the GetInventoryRequest to the seeds.
Add DateSortedTruncatablePayload interface for TradeStatistics2
We check first if we need to truncate dateSortedTruncatablePayloads, if so we have sorted by date and truncate in the way that we receive the most recent data. We define the maxItems in the class implementing the interface (3000 for trade stats).
Later we apply the maxEntries check the combined list and if we need to truncate here as well (10 000) we have added the dateSortedTruncatablePayloads at the end so those will get truncated with higher prio.
There is also a bit wrong handling in the previous code that we check for max limits before the shouldTransmitPayloadToPeer filter. Should be fixed in another PR for master...
Number of objects is 24 more then with 1.3.9. Seems there are still either a few duplicate
with some diverging data which should not be different or that our old code to filter
duplicates had some issues. But a difference of 24 out of 75 000 object can be ignored IMO.
If dispute opener is old client the delayed payout tx is not sent in mediation case (only in refund agent cases).
At 1.4.0 we send it as well in mediation case and the mediator get a warning shown in case its missing.
To avoid that warning we check if dispute is of refund agent type and only check in that case.
This can be removed once we have enforced update to 1.4.0 (segwit will require that).
Also added checks to not add null entries in the duplicates checks.
We have written all files each time at each new block which accumulated to about
1 GB of data, this led to stability issues and very high disk IO for the explorer nodes.
Now we write only the data of the new block. We also remove the deletion of all
files at startup.
The dao state is still written in a monolithic file so that cannot be optimized
but we added a new directly where we add each block named by block height.
Looking up the latest written file tells us our last persisted block.
So all that data is equivalent to the monolithic daoState data which should
be removed once the webapp devs have implemented the change to use the blocks directory.