![]() |
PIVX Core
5.6.99
P2P Digital Currency
|
This class handles the p2p message MNAUTH. More...
#include <mnauth.h>
Public Member Functions | |
| SERIALIZE_METHODS (CMNAuth, obj) | |
Static Public Member Functions | |
| static void | PushMNAUTH (CNode *pnode, CConnman &connman) |
| static bool | ProcessMessage (CNode *pnode, const std::string &strCommand, CDataStream &vRecv, CConnman &connman, CValidationState &state) |
| static void | NotifyMasternodeListChanged (bool undo, const CDeterministicMNList &oldMNList, const CDeterministicMNListDiff &diff) |
Public Attributes | |
| uint256 | proRegTxHash |
| CBLSSignature | sig |
This class handles the p2p message MNAUTH.
MNAUTH is sent directly after VERACK and authenticates the sender as a masternode. It is only sent when the sender is actually a masternode.
MNAUTH signs a challenge that was previously sent via VERSION. The challenge is signed differently depending on the connection being an inbound or outbound connection, which avoids MITM of this form: node1 <- Eve -> node2 while still allowing: node1 -> Eve -> node2
This is fine as we only use this mechanism for DoS protection. It allows us to keep masternode connections open for a very long time without evicting the connections when inbound connection limits are hit (non-MNs will then be evicted).
If we ever want to add transfer of sensitive data, THIS AUTHENTICATION MECHANISM IS NOT ENOUGH!! We'd need to implement proper encryption for these connections first.
|
static |
Definition at line 198 of file mnauth.cpp.
|
static |
| CBLSSignature CMNAuth::sig |