From 5833431157d792f1c2d84c63d9c3327d2e041727 Mon Sep 17 00:00:00 2001 From: Chalith Desaman Date: Thu, 1 Apr 2021 17:13:58 +0530 Subject: [PATCH] hpfs binary update, hpfs log serving and passing to hpfs (#281) * full history announcement in peer challenge and ability to send random messages only to full history nodes. * log sync infrastructure codes. * Resolving merge conflict induced errors. * Fork detection implementation. * Cleanup. * Resolving PR comments. * hpfs binary update, hpfs log serving and persisting * Fixed merge conflict and added missing log Co-authored-by: Savinda Senevirathne --- src/hpfs/hpfs_mount.cpp | 90 ++++++++++++++++- src/hpfs/hpfs_mount.hpp | 2 + src/msg/fbuf/p2pmsg.fbs | 9 +- src/msg/fbuf/p2pmsg_conversion.cpp | 14 ++- src/msg/fbuf/p2pmsg_generated.h | 149 +++++++++++++++-------------- src/p2p/p2p.hpp | 1 - src/p2p/peer_session_handler.cpp | 4 +- src/sc/hpfs_log_sync.cpp | 78 ++++++++++++--- src/sc/hpfs_log_sync.hpp | 4 +- test/bin/hpfs | Bin 284840 -> 309416 bytes 10 files changed, 247 insertions(+), 104 deletions(-) diff --git a/src/hpfs/hpfs_mount.cpp b/src/hpfs/hpfs_mount.cpp index 1bd41a9a..98add6a3 100644 --- a/src/hpfs/hpfs_mount.cpp +++ b/src/hpfs/hpfs_mount.cpp @@ -17,8 +17,8 @@ namespace hpfs constexpr const char *HMAP_HASH = "::hpfs.hmap.hash"; constexpr const char *HMAP_CHILDREN = "::hpfs.hmap.children"; + constexpr const char *INDEX_CONTROL = "/::hpfs.index"; constexpr const char *ROOT_PATH = "/"; - constexpr const char *INDEX_UPDATE = "/::hpfs.index"; constexpr const char *LOG_INDEX_FILENAME = "/log.hpfs.idx"; constexpr ino_t ROOT_INO = 1; @@ -26,6 +26,8 @@ namespace hpfs constexpr uint16_t PROCESS_INIT_TIMEOUT = 2000; constexpr uint16_t INIT_CHECK_INTERVAL = 20; + constexpr uint64_t MAX_HPFS_LOG_READ_SIZE = 1 * 1024 * 1024; + /** * This should be called to activate the hpfs mount process. */ @@ -396,9 +398,13 @@ namespace hpfs } } + /** + * This updates the hpfs log index file with latest log offset and the root hash. + * @return Returns 0 in success, otherwise -1. + */ int hpfs_mount::update_hpfs_log_index() { - const std::string index_file = mount_dir + INDEX_UPDATE; + const std::string index_file = mount_dir + INDEX_CONTROL; const int fd = open(index_file.c_str(), O_RDWR); if (fd == -1) @@ -423,7 +429,7 @@ namespace hpfs */ int hpfs_mount::truncate_log_file(const uint64_t seq_no) { - const std::string file_path = mount_dir + INDEX_UPDATE + "." + std::to_string(seq_no); + const std::string file_path = mount_dir + INDEX_CONTROL + "." + std::to_string(seq_no); // File /hpfs::index. is truncated to invoke log file truncation in hpfs. // This call waits until any running RW or RO sessions stop. if (truncate(file_path.c_str(), 0) == -1) @@ -434,6 +440,65 @@ namespace hpfs return 0; } + /** + * This reads the hpfs logs from given min to max ledger seq_no range. + * @param min_ledger_seq_no Mininmum ledger seq number. + * @param max_ledger_seq_no Maximum ledger seq number. + * @param buf Buffer to read logs. + * @return Returns 0 if success, otherwise -1. + */ + int hpfs_mount::read_hpfs_logs(const uint64_t min_ledger_seq_no, const uint64_t max_ledger_seq_no, std::vector &buf) + { + const std::string index_file = mount_dir + INDEX_CONTROL + "." + std::to_string(min_ledger_seq_no) + "." + std::to_string(max_ledger_seq_no); + + const int fd = open(index_file.c_str(), O_RDONLY); + if (fd == -1) + { + LOG_ERROR << errno << ": Error opening the hpfs logs file"; + return -1; + } + + // First resize the buffer to max size and then after reading resize it to the actual read size. + buf.resize(MAX_HPFS_LOG_READ_SIZE); + const int res = read(fd, buf.data(), MAX_HPFS_LOG_READ_SIZE); + if (res == -1) + { + LOG_ERROR << errno << ": Error reading the hpfs logs file"; + close(fd); + return -1; + } + buf.resize(res); + close(fd); + return 0; + } + + /** + * This appends new log records to the hpfs log file. + * @param buf Hpfs log record buffer to write. + * @return Returns 0 in success, otherwise -1. + */ + int hpfs_mount::append_hpfs_log_records(const std::vector &buf) + { + const std::string index_file = mount_dir + INDEX_CONTROL; + + const int fd = open(index_file.c_str(), O_RDWR); + if (fd == -1) + { + LOG_ERROR << errno << ": Error opening the hpfs logs file"; + return -1; + } + + if (write(fd, buf.data(), buf.size()) == -1) + { + LOG_ERROR << errno << ": Error writing to the hpfs logs file"; + close(fd); + return -1; + } + + close(fd); + return 0; + } + /** * Get the last sequence number updated in the index file. * @param seq_no The last sequence number. @@ -478,10 +543,27 @@ namespace hpfs LOG_ERROR << errno << ": Error opening hpfs index file " << path; return -1; } + + struct stat st; + if (fstat(fd, &st) == -1) + { + LOG_ERROR << errno << ": Error stat hpfs index file " << path; + return -1; + } + const off_t offset = ((seq_no - 1) * (sizeof(uint64_t) + sizeof(util::h32))) + sizeof(uint64_t); + // If calculated offset is beyond our file size means, + // Requested seq_no is invalid or we do not have that seq_no in our hpfs log file. + if (offset >= st.st_size) + { + LOG_DEBUG << "Requested hash does not exist in hpfs log file: seq no " << seq_no; + close(fd); + return -1; + } + if (pread(fd, &hash, sizeof(util::h32), offset) < sizeof(util::h32)) { - LOG_ERROR << errno << ": Error reading hash from the given offset " << std::to_string(offset); + LOG_ERROR << errno << ": Error reading hash from the given offset " << offset; close(fd); return -1; } diff --git a/src/hpfs/hpfs_mount.hpp b/src/hpfs/hpfs_mount.hpp index e9fa9660..91df99f9 100644 --- a/src/hpfs/hpfs_mount.hpp +++ b/src/hpfs/hpfs_mount.hpp @@ -75,6 +75,8 @@ namespace hpfs int truncate_log_file(const uint64_t seq_no); int get_last_seq_no_from_index(uint64_t &seq_no); int get_hash_from_index_by_seq_no(util::h32 &hash, const uint64_t seq_no); + int read_hpfs_logs(const uint64_t min_ledger_seq_no, const uint64_t max_ledger_seq_no, std::vector &buf); + int append_hpfs_log_records(const std::vector &buf); }; } // namespace hpfs diff --git a/src/msg/fbuf/p2pmsg.fbs b/src/msg/fbuf/p2pmsg.fbs index 8e4fa514..27f29051 100644 --- a/src/msg/fbuf/p2pmsg.fbs +++ b/src/msg/fbuf/p2pmsg.fbs @@ -15,8 +15,8 @@ union P2PMsgContent { PeerCapacityAnnouncementMsg, PeerListRequestMsg, PeerListResponseMsg, - LogRecordRequest, - LogRecordResponse + HpfsLogRequest, + HpfsLogResponse } table P2PMsg { @@ -124,16 +124,15 @@ table HpfsFSHashEntry{ hash: [ubyte]; } -table LogRecordRequest +table HpfsLogRequest { target_record_id:SequenceHash; min_record_id:SequenceHash; } -table LogRecordResponse +table HpfsLogResponse { min_record_id:SequenceHash; - max_record_id:SequenceHash; log_record_bytes:[ubyte]; } diff --git a/src/msg/fbuf/p2pmsg_conversion.cpp b/src/msg/fbuf/p2pmsg_conversion.cpp index 9a006bf4..1a03faee 100644 --- a/src/msg/fbuf/p2pmsg_conversion.cpp +++ b/src/msg/fbuf/p2pmsg_conversion.cpp @@ -211,7 +211,7 @@ namespace msg::fbuf::p2pmsg const p2p::hpfs_log_request create_hpfs_log_request_from_msg(const p2p::peer_message_info &mi) { - const auto &msg = *mi.p2p_msg->content_as_LogRecordRequest(); + const auto &msg = *mi.p2p_msg->content_as_HpfsLogRequest(); p2p::hpfs_log_request log_record; log_record.target_record_id = flatbuf_seqhash_to_seqhash(msg.target_record_id()); log_record.min_record_id = flatbuf_seqhash_to_seqhash(msg.min_record_id()); @@ -220,10 +220,9 @@ namespace msg::fbuf::p2pmsg const p2p::hpfs_log_response create_hpfs_log_response_from_msg(const p2p::peer_message_info &mi) { - const auto &msg = *mi.p2p_msg->content_as_LogRecordResponse(); + const auto &msg = *mi.p2p_msg->content_as_HpfsLogResponse(); p2p::hpfs_log_response hpfs_log_response; hpfs_log_response.min_record_id = flatbuf_seqhash_to_seqhash(msg.min_record_id()); - hpfs_log_response.max_record_id = flatbuf_seqhash_to_seqhash(msg.max_record_id()); hpfs_log_response.log_record_bytes.reserve(msg.log_record_bytes()->size()); for (const auto byte: *msg.log_record_bytes()) hpfs_log_response.log_record_bytes.push_back(byte); @@ -424,23 +423,22 @@ namespace msg::fbuf::p2pmsg void create_msg_from_hpfs_log_request(flatbuffers::FlatBufferBuilder &builder, const p2p::hpfs_log_request &hpfs_log_request) { - const auto msg = CreateLogRecordRequest( + const auto msg = CreateHpfsLogRequest( builder, seqhash_to_flatbuf_seqhash(builder, hpfs_log_request.target_record_id), seqhash_to_flatbuf_seqhash(builder, hpfs_log_request.min_record_id)); - create_p2p_msg(builder, P2PMsgContent_LogRecordRequest, msg.Union()); + create_p2p_msg(builder, P2PMsgContent_HpfsLogRequest, msg.Union()); } void create_msg_from_hpfs_log_response(flatbuffers::FlatBufferBuilder &builder, const p2p::hpfs_log_response &hpfs_log_response) { - const auto msg = CreateLogRecordResponse( + const auto msg = CreateHpfsLogResponse( builder, seqhash_to_flatbuf_seqhash(builder, hpfs_log_response.min_record_id), - seqhash_to_flatbuf_seqhash(builder, hpfs_log_response.max_record_id), builder.CreateVector(hpfs_log_response.log_record_bytes)); - create_p2p_msg(builder, P2PMsgContent_LogRecordResponse, msg.Union()); + create_p2p_msg(builder, P2PMsgContent_HpfsLogResponse, msg.Union()); } void create_msg_from_fsentry_response( diff --git a/src/msg/fbuf/p2pmsg_generated.h b/src/msg/fbuf/p2pmsg_generated.h index 9844b5ed..64c2c897 100644 --- a/src/msg/fbuf/p2pmsg_generated.h +++ b/src/msg/fbuf/p2pmsg_generated.h @@ -52,11 +52,11 @@ struct HpfsBlockResponseBuilder; struct HpfsFSHashEntry; struct HpfsFSHashEntryBuilder; -struct LogRecordRequest; -struct LogRecordRequestBuilder; +struct HpfsLogRequest; +struct HpfsLogRequestBuilder; -struct LogRecordResponse; -struct LogRecordResponseBuilder; +struct HpfsLogResponse; +struct HpfsLogResponseBuilder; struct PeerRequirementAnnouncementMsg; struct PeerRequirementAnnouncementMsgBuilder; @@ -79,7 +79,7 @@ struct SequenceHashBuilder; struct ByteArray; struct ByteArrayBuilder; -enum P2PMsgContent : uint8_t { +enum P2PMsgContent { P2PMsgContent_NONE = 0, P2PMsgContent_PeerChallengeMsg = 1, P2PMsgContent_PeerChallengeResponseMsg = 2, @@ -92,10 +92,10 @@ enum P2PMsgContent : uint8_t { P2PMsgContent_PeerCapacityAnnouncementMsg = 9, P2PMsgContent_PeerListRequestMsg = 10, P2PMsgContent_PeerListResponseMsg = 11, - P2PMsgContent_LogRecordRequest = 12, - P2PMsgContent_LogRecordResponse = 13, + P2PMsgContent_HpfsLogRequest = 12, + P2PMsgContent_HpfsLogResponse = 13, P2PMsgContent_MIN = P2PMsgContent_NONE, - P2PMsgContent_MAX = P2PMsgContent_LogRecordResponse + P2PMsgContent_MAX = P2PMsgContent_HpfsLogResponse }; inline const P2PMsgContent (&EnumValuesP2PMsgContent())[14] { @@ -112,8 +112,8 @@ inline const P2PMsgContent (&EnumValuesP2PMsgContent())[14] { P2PMsgContent_PeerCapacityAnnouncementMsg, P2PMsgContent_PeerListRequestMsg, P2PMsgContent_PeerListResponseMsg, - P2PMsgContent_LogRecordRequest, - P2PMsgContent_LogRecordResponse + P2PMsgContent_HpfsLogRequest, + P2PMsgContent_HpfsLogResponse }; return values; } @@ -132,15 +132,15 @@ inline const char * const *EnumNamesP2PMsgContent() { "PeerCapacityAnnouncementMsg", "PeerListRequestMsg", "PeerListResponseMsg", - "LogRecordRequest", - "LogRecordResponse", + "HpfsLogRequest", + "HpfsLogResponse", nullptr }; return names; } inline const char *EnumNameP2PMsgContent(P2PMsgContent e) { - if (flatbuffers::IsOutRange(e, P2PMsgContent_NONE, P2PMsgContent_LogRecordResponse)) return ""; + if (flatbuffers::IsOutRange(e, P2PMsgContent_NONE, P2PMsgContent_HpfsLogResponse)) return ""; const size_t index = static_cast(e); return EnumNamesP2PMsgContent()[index]; } @@ -193,18 +193,18 @@ template<> struct P2PMsgContentTraits { static const P2PMsgContent enum_value = P2PMsgContent_PeerListResponseMsg; }; -template<> struct P2PMsgContentTraits { - static const P2PMsgContent enum_value = P2PMsgContent_LogRecordRequest; +template<> struct P2PMsgContentTraits { + static const P2PMsgContent enum_value = P2PMsgContent_HpfsLogRequest; }; -template<> struct P2PMsgContentTraits { - static const P2PMsgContent enum_value = P2PMsgContent_LogRecordResponse; +template<> struct P2PMsgContentTraits { + static const P2PMsgContent enum_value = P2PMsgContent_HpfsLogResponse; }; bool VerifyP2PMsgContent(flatbuffers::Verifier &verifier, const void *obj, P2PMsgContent type); bool VerifyP2PMsgContentVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); -enum HpfsResponse : uint8_t { +enum HpfsResponse { HpfsResponse_NONE = 0, HpfsResponse_HpfsFileHashMapResponse = 1, HpfsResponse_HpfsBlockResponse = 2, @@ -319,11 +319,11 @@ struct P2PMsg FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const msg::fbuf::p2pmsg::PeerListResponseMsg *content_as_PeerListResponseMsg() const { return content_type() == msg::fbuf::p2pmsg::P2PMsgContent_PeerListResponseMsg ? static_cast(content()) : nullptr; } - const msg::fbuf::p2pmsg::LogRecordRequest *content_as_LogRecordRequest() const { - return content_type() == msg::fbuf::p2pmsg::P2PMsgContent_LogRecordRequest ? static_cast(content()) : nullptr; + const msg::fbuf::p2pmsg::HpfsLogRequest *content_as_HpfsLogRequest() const { + return content_type() == msg::fbuf::p2pmsg::P2PMsgContent_HpfsLogRequest ? static_cast(content()) : nullptr; } - const msg::fbuf::p2pmsg::LogRecordResponse *content_as_LogRecordResponse() const { - return content_type() == msg::fbuf::p2pmsg::P2PMsgContent_LogRecordResponse ? static_cast(content()) : nullptr; + const msg::fbuf::p2pmsg::HpfsLogResponse *content_as_HpfsLogResponse() const { + return content_type() == msg::fbuf::p2pmsg::P2PMsgContent_HpfsLogResponse ? static_cast(content()) : nullptr; } void *mutable_content() { return GetPointer(VT_CONTENT); @@ -384,12 +384,12 @@ template<> inline const msg::fbuf::p2pmsg::PeerListResponseMsg *P2PMsg::content_ return content_as_PeerListResponseMsg(); } -template<> inline const msg::fbuf::p2pmsg::LogRecordRequest *P2PMsg::content_as() const { - return content_as_LogRecordRequest(); +template<> inline const msg::fbuf::p2pmsg::HpfsLogRequest *P2PMsg::content_as() const { + return content_as_HpfsLogRequest(); } -template<> inline const msg::fbuf::p2pmsg::LogRecordResponse *P2PMsg::content_as() const { - return content_as_LogRecordResponse(); +template<> inline const msg::fbuf::p2pmsg::HpfsLogResponse *P2PMsg::content_as() const { + return content_as_HpfsLogResponse(); } struct P2PMsgBuilder { @@ -412,6 +412,7 @@ struct P2PMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + P2PMsgBuilder &operator=(const P2PMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -512,6 +513,7 @@ struct PeerChallengeMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerChallengeMsgBuilder &operator=(const PeerChallengeMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -603,6 +605,7 @@ struct PeerChallengeResponseMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerChallengeResponseMsgBuilder &operator=(const PeerChallengeResponseMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -690,6 +693,7 @@ struct UserInputBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + UserInputBuilder &operator=(const UserInputBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -766,6 +770,7 @@ struct UserInputGroupBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + UserInputGroupBuilder &operator=(const UserInputGroupBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -826,6 +831,7 @@ struct NonUnlProposalMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + NonUnlProposalMsgBuilder &operator=(const NonUnlProposalMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1035,6 +1041,7 @@ struct ProposalMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + ProposalMsgBuilder &operator=(const ProposalMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1185,6 +1192,7 @@ struct NplMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + NplMsgBuilder &operator=(const NplMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1298,6 +1306,7 @@ struct HpfsRequestMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + HpfsRequestMsgBuilder &operator=(const HpfsRequestMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1434,6 +1443,7 @@ struct HpfsResponseMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + HpfsResponseMsgBuilder &operator=(const HpfsResponseMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1517,6 +1527,7 @@ struct HpfsFsEntryResponseBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + HpfsFsEntryResponseBuilder &operator=(const HpfsFsEntryResponseBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1597,6 +1608,7 @@ struct HpfsFileHashMapResponseBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + HpfsFileHashMapResponseBuilder &operator=(const HpfsFileHashMapResponseBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1670,6 +1682,7 @@ struct HpfsBlockResponseBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + HpfsBlockResponseBuilder &operator=(const HpfsBlockResponseBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1751,6 +1764,7 @@ struct HpfsFSHashEntryBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + HpfsFSHashEntryBuilder &operator=(const HpfsFSHashEntryBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -1784,8 +1798,8 @@ inline flatbuffers::Offset CreateHpfsFSHashEntryDirect( hash__); } -struct LogRecordRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { - typedef LogRecordRequestBuilder Builder; +struct HpfsLogRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HpfsLogRequestBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_TARGET_RECORD_ID = 4, VT_MIN_RECORD_ID = 6 @@ -1812,43 +1826,43 @@ struct LogRecordRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } }; -struct LogRecordRequestBuilder { - typedef LogRecordRequest Table; +struct HpfsLogRequestBuilder { + typedef HpfsLogRequest Table; flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; void add_target_record_id(flatbuffers::Offset target_record_id) { - fbb_.AddOffset(LogRecordRequest::VT_TARGET_RECORD_ID, target_record_id); + fbb_.AddOffset(HpfsLogRequest::VT_TARGET_RECORD_ID, target_record_id); } void add_min_record_id(flatbuffers::Offset min_record_id) { - fbb_.AddOffset(LogRecordRequest::VT_MIN_RECORD_ID, min_record_id); + fbb_.AddOffset(HpfsLogRequest::VT_MIN_RECORD_ID, min_record_id); } - explicit LogRecordRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit HpfsLogRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + HpfsLogRequestBuilder &operator=(const HpfsLogRequestBuilder &); + flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateLogRecordRequest( +inline flatbuffers::Offset CreateHpfsLogRequest( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset target_record_id = 0, flatbuffers::Offset min_record_id = 0) { - LogRecordRequestBuilder builder_(_fbb); + HpfsLogRequestBuilder builder_(_fbb); builder_.add_min_record_id(min_record_id); builder_.add_target_record_id(target_record_id); return builder_.Finish(); } -struct LogRecordResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { - typedef LogRecordResponseBuilder Builder; +struct HpfsLogResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HpfsLogResponseBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_MIN_RECORD_ID = 4, - VT_MAX_RECORD_ID = 6, - VT_LOG_RECORD_BYTES = 8 + VT_LOG_RECORD_BYTES = 6 }; const msg::fbuf::p2pmsg::SequenceHash *min_record_id() const { return GetPointer(VT_MIN_RECORD_ID); @@ -1856,12 +1870,6 @@ struct LogRecordResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { msg::fbuf::p2pmsg::SequenceHash *mutable_min_record_id() { return GetPointer(VT_MIN_RECORD_ID); } - const msg::fbuf::p2pmsg::SequenceHash *max_record_id() const { - return GetPointer(VT_MAX_RECORD_ID); - } - msg::fbuf::p2pmsg::SequenceHash *mutable_max_record_id() { - return GetPointer(VT_MAX_RECORD_ID); - } const flatbuffers::Vector *log_record_bytes() const { return GetPointer *>(VT_LOG_RECORD_BYTES); } @@ -1872,60 +1880,52 @@ struct LogRecordResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_MIN_RECORD_ID) && verifier.VerifyTable(min_record_id()) && - VerifyOffset(verifier, VT_MAX_RECORD_ID) && - verifier.VerifyTable(max_record_id()) && VerifyOffset(verifier, VT_LOG_RECORD_BYTES) && verifier.VerifyVector(log_record_bytes()) && verifier.EndTable(); } }; -struct LogRecordResponseBuilder { - typedef LogRecordResponse Table; +struct HpfsLogResponseBuilder { + typedef HpfsLogResponse Table; flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; void add_min_record_id(flatbuffers::Offset min_record_id) { - fbb_.AddOffset(LogRecordResponse::VT_MIN_RECORD_ID, min_record_id); - } - void add_max_record_id(flatbuffers::Offset max_record_id) { - fbb_.AddOffset(LogRecordResponse::VT_MAX_RECORD_ID, max_record_id); + fbb_.AddOffset(HpfsLogResponse::VT_MIN_RECORD_ID, min_record_id); } void add_log_record_bytes(flatbuffers::Offset> log_record_bytes) { - fbb_.AddOffset(LogRecordResponse::VT_LOG_RECORD_BYTES, log_record_bytes); + fbb_.AddOffset(HpfsLogResponse::VT_LOG_RECORD_BYTES, log_record_bytes); } - explicit LogRecordResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit HpfsLogResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + HpfsLogResponseBuilder &operator=(const HpfsLogResponseBuilder &); + flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateLogRecordResponse( +inline flatbuffers::Offset CreateHpfsLogResponse( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset min_record_id = 0, - flatbuffers::Offset max_record_id = 0, flatbuffers::Offset> log_record_bytes = 0) { - LogRecordResponseBuilder builder_(_fbb); + HpfsLogResponseBuilder builder_(_fbb); builder_.add_log_record_bytes(log_record_bytes); - builder_.add_max_record_id(max_record_id); builder_.add_min_record_id(min_record_id); return builder_.Finish(); } -inline flatbuffers::Offset CreateLogRecordResponseDirect( +inline flatbuffers::Offset CreateHpfsLogResponseDirect( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset min_record_id = 0, - flatbuffers::Offset max_record_id = 0, const std::vector *log_record_bytes = nullptr) { auto log_record_bytes__ = log_record_bytes ? _fbb.CreateVector(*log_record_bytes) : 0; - return msg::fbuf::p2pmsg::CreateLogRecordResponse( + return msg::fbuf::p2pmsg::CreateHpfsLogResponse( _fbb, min_record_id, - max_record_id, log_record_bytes__); } @@ -1958,6 +1958,7 @@ struct PeerRequirementAnnouncementMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerRequirementAnnouncementMsgBuilder &operator=(const PeerRequirementAnnouncementMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2013,6 +2014,7 @@ struct PeerCapacityAnnouncementMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerCapacityAnnouncementMsgBuilder &operator=(const PeerCapacityAnnouncementMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2046,6 +2048,7 @@ struct PeerListRequestMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerListRequestMsgBuilder &operator=(const PeerListRequestMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2090,6 +2093,7 @@ struct PeerListResponseMsgBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerListResponseMsgBuilder &operator=(const PeerListResponseMsgBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2177,6 +2181,7 @@ struct PeerPropertiesBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + PeerPropertiesBuilder &operator=(const PeerPropertiesBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2254,6 +2259,7 @@ struct SequenceHashBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + SequenceHashBuilder &operator=(const SequenceHashBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2312,6 +2318,7 @@ struct ByteArrayBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } + ByteArrayBuilder &operator=(const ByteArrayBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -2385,12 +2392,12 @@ inline bool VerifyP2PMsgContent(flatbuffers::Verifier &verifier, const void *obj auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } - case P2PMsgContent_LogRecordRequest: { - auto ptr = reinterpret_cast(obj); + case P2PMsgContent_HpfsLogRequest: { + auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } - case P2PMsgContent_LogRecordResponse: { - auto ptr = reinterpret_cast(obj); + case P2PMsgContent_HpfsLogResponse: { + auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } default: return true; diff --git a/src/p2p/p2p.hpp b/src/p2p/p2p.hpp index 23e43153..6c861633 100644 --- a/src/p2p/p2p.hpp +++ b/src/p2p/p2p.hpp @@ -143,7 +143,6 @@ namespace p2p struct hpfs_log_response { sequence_hash min_record_id; - sequence_hash max_record_id; std::vector log_record_bytes; }; diff --git a/src/p2p/peer_session_handler.cpp b/src/p2p/peer_session_handler.cpp index fbd056f8..be028027 100644 --- a/src/p2p/peer_session_handler.cpp +++ b/src/p2p/peer_session_handler.cpp @@ -232,7 +232,7 @@ namespace p2p LOG_DEBUG << "Ledger hpfs response rejected. Maximum response count reached. " << session.display_name(); } } - else if (mi.type == p2pmsg::P2PMsgContent_LogRecordRequest) + else if (mi.type == p2pmsg::P2PMsgContent_HpfsLogRequest) { if (conf::cfg.node.history == conf::HISTORY::FULL) { @@ -249,7 +249,7 @@ namespace p2p LOG_DEBUG << "Hpfs log request rejected. Maximum request count reached. " << session.display_name(); } } - else if (mi.type == p2pmsg::P2PMsgContent_LogRecordResponse) + else if (mi.type == p2pmsg::P2PMsgContent_HpfsLogResponse) { if (conf::cfg.node.history == conf::HISTORY::FULL && sc::hpfs_log_sync::sync_ctx.is_syncing) { diff --git a/src/sc/hpfs_log_sync.cpp b/src/sc/hpfs_log_sync.cpp index a534b327..8ef973ed 100644 --- a/src/sc/hpfs_log_sync.cpp +++ b/src/sc/hpfs_log_sync.cpp @@ -88,6 +88,15 @@ namespace sc::hpfs_log_sync // Process any history responses from other nodes. if (!sync_ctx.target_log_record.empty() && check_hpfs_log_sync_responses() == 1) processed = true; + + // Here we check for the updated log records to check whether target has archived. + if (sync_ctx.is_syncing && get_verified_min_record() == 1) + { + LOG_INFO << "Hpfs log sync: sync target archived " << sync_ctx.target_log_record; + sync_ctx.target_log_record = {}; + sync_ctx.min_log_record = {}; + sync_ctx.is_syncing = false; + } } // Serve any history requests from other nodes. @@ -151,6 +160,9 @@ namespace sc::hpfs_log_sync log_record_responses.splice(log_record_responses.end(), p2p::ctx.collected_msgs.log_record_responses); } + for (const auto &[sess_id, log_response] : log_record_responses) + handle_hpfs_log_sync_response(log_response); + return log_record_responses.empty() ? 0 : 1; } @@ -173,11 +185,16 @@ namespace sc::hpfs_log_sync for (const auto &[session_id, lr] : log_record_requests) { - flatbuffers::FlatBufferBuilder fbuf(1024); + // Before serving the request check whether we have the requested min seq_no. + // And requested min hash matches with our corresponding hash. + if (!check_required_log_record_availability(lr)) + continue; + p2p::hpfs_log_response resp; - resp.max_record_id = lr.target_record_id; + if (sc::contract_fs.read_hpfs_logs(lr.min_record_id.seq_no, lr.target_record_id.seq_no, resp.log_record_bytes) == -1) + continue; resp.min_record_id = lr.min_record_id; - resp.log_record_bytes = std::vector(); + flatbuffers::FlatBufferBuilder fbuf(1024); p2pmsg::create_msg_from_hpfs_log_response(fbuf, resp); std::string_view msg = std::string_view(reinterpret_cast(fbuf.GetBufferPointer()), fbuf.GetSize()); @@ -197,21 +214,55 @@ namespace sc::hpfs_log_sync /** * Check requested sequence number is in node's log file. - * @param lr log record request information. - * @return true if requested sequence number is in node's log file. + * @param log_request log record request information. + * @return true if requested sequence number is in node's log file and requested hash mathces with ours. */ - bool check_required_log_record_availability(const p2p::sequence_hash &min_log_record) + bool check_required_log_record_availability(const p2p::hpfs_log_request &log_request) { + // If requested min is the genesis we serve without checking. + const p2p::sequence_hash genesis{ledger::genesis.seq_no, hpfs::get_root_hash(ledger::genesis.config_hash, ledger::genesis.state_hash)}; + if (log_request.min_record_id == genesis) + return true; + + util::h32 root_hash; + if (sc::contract_fs.get_hash_from_index_by_seq_no(root_hash, log_request.min_record_id.seq_no) == -1) + return false; + + if (root_hash != log_request.min_record_id.hash) + { + LOG_DEBUG << "Requested root hash does not match with ours: seq no " << log_request.min_record_id.seq_no; + return false; + } + return true; } /** * Handle recieved ledger history response. - * @param lr log record request information. + * @param log_response log record response information. * @return 0 on successful log update. -1 on failure. */ - int handle_hpfs_log_sync_response(const p2p::hpfs_log_response &hr, std::string &new_log_record_seqno) + int handle_hpfs_log_sync_response(const p2p::hpfs_log_response &log_response) { + p2p::sequence_hash requested_min_seq_id; + { + std::scoped_lock lock(sync_ctx.min_log_record_mutex); + requested_min_seq_id = sync_ctx.min_log_record; + } + + // Append only if the response contains min_seq_no staring from requested min seq_no. + const p2p::sequence_hash genesis{ledger::genesis.seq_no, hpfs::get_root_hash(ledger::genesis.config_hash, ledger::genesis.state_hash)}; + if (log_response.min_record_id != requested_min_seq_id) + { + LOG_DEBUG << "Invalid joining point in the received hpfs log response"; + return -1; + } + + if (sc::contract_fs.append_hpfs_log_records(log_response.log_record_bytes) == -1) + { + LOG_ERROR << errno << ": Error persisting hpfs log responses"; + return -1; + } return 0; } @@ -229,9 +280,8 @@ namespace sc::hpfs_log_sync return -1; } - const p2p::sequence_hash last_from_ledger = ledger::ctx.get_lcl_id(); - - if (last_from_index.seq_no == 0) + p2p::sequence_hash last_from_ledger = ledger::ctx.get_lcl_id(); + if (last_from_index.seq_no == ledger::genesis.seq_no || last_from_ledger.seq_no == ledger::genesis.seq_no) { // Request full ledger. std::scoped_lock lock(sync_ctx.min_log_record_mutex); @@ -239,6 +289,12 @@ namespace sc::hpfs_log_sync return 0; } + if (ledger::get_root_hash_from_ledger(last_from_ledger.hash, last_from_ledger.seq_no) == -1) + { + LOG_ERROR << "Error getting root hash from ledger for sequence number: " << last_from_index.seq_no; + return -1; + } + if (last_from_index == last_from_ledger) { // In sync. No need to sync. diff --git a/src/sc/hpfs_log_sync.hpp b/src/sc/hpfs_log_sync.hpp index 3150e4c6..4508e9e9 100644 --- a/src/sc/hpfs_log_sync.hpp +++ b/src/sc/hpfs_log_sync.hpp @@ -49,9 +49,9 @@ namespace sc::hpfs_log_sync int check_hpfs_log_sync_requests(); - bool check_required_log_record_availability(const p2p::sequence_hash &min_log_record); + bool check_required_log_record_availability(const p2p::hpfs_log_request &log_request); - int handle_hpfs_log_sync_response(const p2p::hpfs_log_response &hr, std::string &new_lcl); + int handle_hpfs_log_sync_response(const p2p::hpfs_log_response &log_response); int get_verified_min_record(); diff --git a/test/bin/hpfs b/test/bin/hpfs index 3a37b7a06b613dde320e95e94562d5f4358d16eb..d2396e16d969913963bd9f6a53532cf5c6283164 100755 GIT binary patch delta 110176 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�Z!6YXl6|f>kk+(ntfpuH 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

=rmYLKmcn_3RB4-P|PVivSMI0eC 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

8)t39iL)2YQbltx3bjVWdD}GZ%0Dxz{J|uX!M(=V_N0CVvA8f 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 QD4tF_%GJP5Zc`fnKTJa(i2wiq