[bisq-network/bisq] (11/11) Clean up removeExpiredEntries (#3607)

Julian Knutsen notifications at github.com
Thu Nov 14 17:46:17 UTC 2019


New commits start: bdef1e4

The first commit removes a check inside removeExpiredEntries that optionally skipped an Entry if it was a PersistableNetworkPayload. This is an invalid payload, but there weren't any guarantees around it. I've added tests to ensure it can never happen and cleaned up the removeExpiredEntries check.

The second commit cleans up the code structure and data structure usage to be easier to read and slightly more performant. Since this code runs on the UserThread it can be less conservative with the copy and iteration.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/3607

-- Commit Summary --

  * [BUGFIX] Don't try and remove() if addMailboxData() fails
  * [REFACTOR] P2PDataStorage::addPersistableNetworkPayload()
  * [REFACTOR] P2PDataStorage::addProtectedStorageEntry()
  * [REFACTOR] P2PDataStorage::refreshTTL()
  * [REFACTOR] P2PDataStorage::remove()
  * [REFACTOR] P2PDataStorage::removeMailboxData()
  * [PR COMMENTS] Clean up logging messages
  * Update behavior of P2PDataStorage::addProtectedStorageEntry() on duplicates
  * Update behavior of P2PDataStorage::refreshTTL() on duplicates
  * Update behavior of P2PDataStorage::remove() & removeMailboxData() on duplicate sequence #s
  * Use dependency injected Clock in P2PDataStore
  * [REFACTOR] Clean up ProtectedStorageEntry ctor
  * Use Clock in ProtectedStorageEntry
  * [TESTS] Use ClockFake in tests to control time
  * [TESTS] Test onBootstrapComplete()
  * [TESTS] Lower entries required for purge in tests
  * [REFACTOR] Remove duplicated code in refreshTTL
  * [TESTS] Add more tests around mis-wrapped ProtectedStorageEntrys
  * [REFACTOR] ProtectedStorageEntry::validForAddOperation()
  * [REFACTOR] ProtectedStorageEntry::isValidForRemoveOperation()
  * [REFACTOR] Remove checkPublicKeys()
  * Clean up toString() methods
  * [REFACTOR] Move signature validation behind isValidForAddOperation()
  * [REFACTOR] Move signature validation behind isValidForRemoveOperation()
  * [REFACTOR] Move receiversPubKey check behind isValidForRemoveOperation()
  * Remove duplicate check in refreshTTL
  * Introduce isMetadataEquals and use it
  * [TESTS] Update remove validation with BroadcastMessage type
  * Combine remove() and removeMailboxData()
  * [PR COMMENTS] Logging format and function rename
  * [TESTS] Start deprecating integrations tests
  * [TESTS] Remove dead tests and code
  * [DEAD CODE] Remove unused functions and imports
  * [DEAD CODE] Remove obsolete tests
  * [TESTS] Add JavaDocs for test objects
  * [TESTS] Split monolithic P2PDataStoreTest into separate files
  * [TESTS] Clean up TestState static methods
  * [TESTS] Make SavedTestState ctor private to TestState
  * [TESTS] Add missing license text to test files
  * [TESTS] Rename P2PDataStoreTest
  * Add payload safety checks in ProtectedStorageEntry
  * [REFACTOR] Clean up removeExpiredEntries

-- File Changes --

    M common/src/main/java/bisq/common/proto/network/NetworkProtoResolver.java (4)
    M core/src/main/java/bisq/core/proto/CoreProtoResolver.java (6)
    M core/src/main/java/bisq/core/proto/network/CoreNetworkProtoResolver.java (5)
    M monitor/src/main/java/bisq/monitor/metric/P2PNetworkLoad.java (6)
    M monitor/src/main/java/bisq/monitor/metric/P2PSeedNodeSnapshotBase.java (4)
    M p2p/src/main/java/bisq/network/p2p/P2PService.java (12)
    M p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java (453)
    M p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedMailboxStorageEntry.java (161)
    M p2p/src/main/java/bisq/network/p2p/storage/payload/ProtectedStorageEntry.java (189)
    M p2p/src/test/java/bisq/network/p2p/TestUtils.java (5)
    D p2p/src/test/java/bisq/network/p2p/storage/ObsoleteP2PDataStorageTest.java (217)
    A p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageClientAPITest.java (242)
    A p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageOnMessageHandlerTest.java (101)
    A p2p/src/test/java/bisq/network/p2p/storage/P2PDataStoragePersistableNetworkPayloadTest.java (195)
    A p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageProtectedStorageEntryTest.java (630)
    A p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageRemoveExpiredTest.java (196)
    D p2p/src/test/java/bisq/network/p2p/storage/P2PDataStorageTest.java (1526)
    A p2p/src/test/java/bisq/network/p2p/storage/P2PDataStoreDisconnectTest.java (170)
    D p2p/src/test/java/bisq/network/p2p/storage/ProtectedDataStorageTest.java (229)
    A p2p/src/test/java/bisq/network/p2p/storage/TestState.java (373)
    M p2p/src/test/java/bisq/network/p2p/storage/messages/AddDataMessageTest.java (4)
    M p2p/src/test/java/bisq/network/p2p/storage/mocks/AppendOnlyDataStoreServiceFake.java (6)
    A p2p/src/test/java/bisq/network/p2p/storage/mocks/ClockFake.java (54)
    M p2p/src/test/java/bisq/network/p2p/storage/mocks/DateTolerantPayloadStub.java (7)
    A p2p/src/test/java/bisq/network/p2p/storage/mocks/ExpirableProtectedStoragePayloadStub.java (59)
    A p2p/src/test/java/bisq/network/p2p/storage/mocks/PersistableExpirableProtectedStoragePayloadStub.java (40)
    M p2p/src/test/java/bisq/network/p2p/storage/mocks/PersistableNetworkPayloadStub.java (7)
    M p2p/src/test/java/bisq/network/p2p/storage/mocks/ProtectedDataStoreServiceFake.java (6)
    M p2p/src/test/java/bisq/network/p2p/storage/mocks/ProtectedStoragePayloadStub.java (10)
    A p2p/src/test/java/bisq/network/p2p/storage/payload/ProtectedMailboxStorageEntryTest.java (202)
    A p2p/src/test/java/bisq/network/p2p/storage/payload/ProtectedStorageEntryTest.java (252)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3607.patch
https://github.com/bisq-network/bisq/pull/3607.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/3607
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20191114/0100e2e4/attachment.html>


More information about the bisq-github mailing list