rubixchain / rubixgoplatform

GNU General Public License v3.0
8 stars 17 forks source link

Ping Peer Improvement #154

Closed Maneesha-rubix closed 3 months ago

Maneesha-rubix commented 3 months ago

Previously, we were connecting a peer, say Alice is connecting Bob, to check peer status or to fetch it's DIDType for token ownership validation. In this branch the protocol is being improved. Now Alice can share her PeerId, DID and DIDType through the same API which she was using for fetching Bob's status or DIDType. Bob will register or update Alice's details in DIDPeerTable if not already registered or needs to be updated.

This branch has been tested with the following test cases: sender & reciever's quorums: Q1-Q5

  1. receiver doesn't have sender details
    Result : successful

  2. sender doesn't have receiver did type and receiver doesn't have sender details
    Result : receiver gets sender details but sender doesn't get receiver did type [as expected]

  3. receiver doesn't have sender did type
    Result : successful

  4. receiver doesn't have sender correct peerID
    Result : successful

  5. receiver doesn't have sender peerID
    Result : successful

  6. receiver doesn't have sender peerID and did type
    Result : successful

  7. quorums doesn't have sender details : Q1 : doesn't have sender details Q2 : doesn't have sender details and sender doesn't have Q2 did type Q3 : doesn't have sender did type Q4 : doesn't have sender peerID and did type Q5 : doesn't have sender correct peerID
    Result : successful

  8. prev pledged quorum (Q4) doesn't have quorum details sender : doesn't have Q4 did type
    Q1: doesn't have Q4 did type
    Q3: doesn't have Q4 did type
    Q4 : doesn't have sender details , Q1 details, Q2 details, Q3 did type & correct peerID, Q5 peerID
    Result: couldn't retrieve Q2 & Q5 [as expected]

    sender's quorums: Q2-Q6 ; reciever quorums: Q1-Q5

  9. prev pledged quorum (Q1) doesn't have sender details
    Q2: peerID of Q1 Q4: didtype & peerID of Q1 Q6: did type of Q1 Sender: did type of Q1 Q1: doesn't have sender details , Q2 details, Q4 did type & correct peerID, Q6 peerID
    Result: failed as Q4 doesn't have peerID of Q1 to ping & fetch its did type [as expected]

  10. prev pledged quorum (Q1) doesn't have sender details Q2: peerID of Q1
    Q4: didtype of Q1
    Q6: did type of Q1
    Sender: did type of Q1
    Q1: doesn't have sender details , Q2 details, Q4 did type & correct peerID, Q6 peerID
    Result: couldn't retrieve Q2 & sender details [as expected]

  11. sender creates new token Q2 : doesn't have sender did type Q6 : doesn't have sender did type sender : doesn't have Q2 did type & Q6 details
    Result : successful

Test Cases for the commit - 997366a73860e1ed22ce1148eca605f38ba9c54c : Sender's Qrms: Q4-Q8 ; Receiver's Qrms: Q11-Q15 Sender added peer details of Q4-Q8; Receiver added peer details of Q11-Q15; Sender added peer details of Receiver

  1. Transfer 1 RBT from Sender to Receiver : Result: [transfer successful] Q7: pledged-quorum Receiver: have peer details of Q4-Q8 & Sender in DIDPeerTable Q4-Q8: have peer details of Sender in DIDPeerTable

  2. Transfer 1 RBT from Receiver to Sender: Result: [transfer successful] Q15: pledged-quorum
    Sender: have peer details of Receiver & Q11-Q15 in DIDPeerTable Q11-Q15: have peer details of Receiver & Q7(prev pledged quorum) in DIDPeerTable

  3. Transfer 1 RBT from Sender to Receiver : Result: [transfer successful] Q5: pledged-quorum Q4-Q8: have peer details of Q15(prev pledged quorum) in DIDPeerTable

Maneesha-rubix commented 3 months ago

Closing this PR. Please refer to the PR #176 for updates related to this PR.