From 5a1daf0116b6b7dabcfa4513c1796548eea05c51 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Fri, 26 Jul 2024 14:58:31 -0300 Subject: [PATCH 01/30] Removed const references to integers --- src/crdt/crdt_datastore.hpp | 14 +++++++++----- src/crdt/crdt_heads.hpp | 16 +++++++++------- src/crdt/crdt_set.hpp | 29 +++++++++++++++++++++-------- src/crdt/impl/crdt_datastore.cpp | 15 +++++++++------ src/crdt/impl/crdt_heads.cpp | 20 +++++++------------- src/crdt/impl/crdt_set.cpp | 31 ++++++++++++++----------------- 6 files changed, 69 insertions(+), 56 deletions(-) diff --git a/src/crdt/crdt_datastore.hpp b/src/crdt/crdt_datastore.hpp index 8efcf347..441bb5b2 100644 --- a/src/crdt/crdt_datastore.hpp +++ b/src/crdt/crdt_datastore.hpp @@ -255,7 +255,7 @@ namespace sgns::crdt * @param aRootPriority root priority * @param aChildren vector of children CIDs */ - void SendNewJobs(const CID& aRootCID, const uint64_t& aRootPriority, const std::vector& aChildren); + void SendNewJobs( const CID &aRootCID, uint64_t aRootPriority, const std::vector &aChildren ); /** Sync ensures that all the data under the given prefix is flushed to disk in * the underlying datastore @@ -269,7 +269,7 @@ namespace sgns::crdt * @param aSet set of CIDs to print * @return returns outcome::success on success or outcome::failure otherwise */ - outcome::result PrintDAGRec(const CID& aCID, const uint64_t& aDepth, std::vector& aSet); + outcome::result PrintDAGRec( const CID &aCID, uint64_t aDepth, std::vector &aSet ); /** Regularly send out a list of heads that we have not recently seen */ @@ -300,7 +300,10 @@ namespace sgns::crdt * @param aNode Pointer to IPLD node * @return list of CIDs or outcome::failure on error */ - outcome::result> ProcessNode(const CID& aRoot, const uint64_t& aRootPrio, const std::shared_ptr& aDelta, const std::shared_ptr& aNode); + outcome::result> ProcessNode( const CID &aRoot, + uint64_t aRootPrio, + const std::shared_ptr &aDelta, + const std::shared_ptr &aNode ); /** PutBlock add block node to DAGSyncer * @param aHeads list of CIDs to add to node as IPLD links @@ -308,8 +311,9 @@ namespace sgns::crdt * @param aDelta Delta to serialize into IPLD node * @return IPLD node or outcome::failure on error */ - outcome::result> PutBlock( - const std::vector& aHeads, const uint64_t& aHeight, const std::shared_ptr& aDelta); + outcome::result> PutBlock( const std::vector &aHeads, + uint64_t aHeight, + const std::shared_ptr &aDelta ); /** AddDAGNode adds node to DAGSyncer and processes new blocks. * @param aDelta Pointer to Delta used for generating node and process it diff --git a/src/crdt/crdt_heads.hpp b/src/crdt/crdt_heads.hpp index 326486eb..9378ab9e 100644 --- a/src/crdt/crdt_heads.hpp +++ b/src/crdt/crdt_heads.hpp @@ -77,7 +77,7 @@ namespace sgns::crdt * @param aHeight height of head * @return outcome::failure on error */ - outcome::result Add(const CID& aCid, const uint64_t& aHeight); + outcome::result Add( const CID &aCid, uint64_t aHeight ); /** Replace a head with a new cid. * @param aCidHead Content identifier of head to replace @@ -85,7 +85,7 @@ namespace sgns::crdt * @param aHeight height of head * @return outcome::failure on error */ - outcome::result Replace(const CID& aCidHead, const CID& aNewHeadCid, const uint64_t& aHeight); + outcome::result Replace( const CID &aCidHead, const CID &aNewHeadCid, uint64_t aHeight ); /** Returns the list of current heads plus the max height. * @param aHeads output reference to list of CIDs @@ -102,19 +102,21 @@ namespace sgns::crdt * @param aHeight height of CID head * @return outcome::failure on error */ - outcome::result Write(const std::unique_ptr& aDataStore, const CID& aCid, const uint64_t& aHeight); + outcome::result Write( const std::unique_ptr &aDataStore, + const CID &aCid, + uint64_t aHeight ); - /** Delete data from datastore in batch mode + /** Delete data from datastore in batch mode * @param aDataStore Pointer to datastore batch * @param aCid Content identifier to remove */ - outcome::result Delete(const std::unique_ptr& aDataStore, const CID& aCid); + outcome::result Delete( const std::unique_ptr &aDataStore, const CID &aCid ); - /** primeCache builds the heads cache based on what's in storage; since + /** primeCache builds the heads cache based on what's in storage; since * it is called from the constructor only we don't bother locking. * @return outcome::failure on error */ - outcome::result PrimeCache(); + outcome::result PrimeCache(); private: diff --git a/src/crdt/crdt_set.hpp b/src/crdt/crdt_set.hpp index ba9143bd..42151b85 100644 --- a/src/crdt/crdt_set.hpp +++ b/src/crdt/crdt_set.hpp @@ -77,11 +77,17 @@ namespace sgns::crdt /** Get priority suffix */ - std::string GetPrioritySuffix() { return std::string(prioritySuffix_); } + static std::string GetPrioritySuffix() + { + return std::string( prioritySuffix_ ); + } /** Get value suffix */ - std::string GetValueSuffix() { return std::string(valueSuffix_); } + static std::string GetValueSuffix() + { + return std::string( valueSuffix_ ); + } /** Get value from datastore for HierarchicalKey defined * @param aKey HierarchicalKey to get value from datastore @@ -94,7 +100,8 @@ namespace sgns::crdt * @param aValue delta value to add to datastore * @return pointer to new delta or outcome::failure on error */ - outcome::result> CreateDeltaToAdd(const std::string& aKey, const std::string& aValue); + static outcome::result> CreateDeltaToAdd( const std::string &aKey, + const std::string &aValue ); /** Returns a new delta-set removing the given keys with prefix /namespace/s/ * @param aKey delta key to remove from datastore @@ -186,7 +193,7 @@ namespace sgns::crdt * @param aPriority priority to save * @return priority of the key or outcome::failure on error */ - outcome::result SetPriority(const std::string& aKey, const uint64_t& aPriority); + outcome::result SetPriority( const std::string &aKey, uint64_t aPriority ); /** Sets a value to datastore if priority is higher. When equal, it sets if the * value is lexicographically higher than the current value. @@ -196,7 +203,10 @@ namespace sgns::crdt * @param aPriority priority to save * @return priority of the key or outcome::failure on error */ - outcome::result SetValue(const std::string& aKey, const std::string& aID, const Buffer& aValue, const uint64_t& aPriority); + outcome::result SetValue( const std::string &aKey, + const std::string &aID, + const Buffer &aValue, + uint64_t aPriority ); /** Sets a value to datastore in batch mode if priority is higher. When equal, it sets if the * value is lexicographically higher than the current value. @@ -207,8 +217,11 @@ namespace sgns::crdt * @param aPriority priority to save * @return priority of the key or outcome::failure on error */ - outcome::result SetValue(const std::unique_ptr& aDataStore, const std::string& aKey, - const std::string& aID, const Buffer& aValue, const uint64_t& aPriority); + outcome::result SetValue( const std::unique_ptr &aDataStore, + const std::string &aKey, + const std::string &aID, + const Buffer &aValue, + uint64_t aPriority ); /** putElems adds items to the "elems" set. It will also set current * values and priorities for each element. This needs to run in a lock, @@ -224,7 +237,7 @@ namespace sgns::crdt * @param aPriority priority to save * @return outcome::success on success or outcome::failure otherwise */ - outcome::result PutElems(std::vector& aElems, const std::string& aID, const uint64_t& aPriority); + outcome::result PutElems( std::vector &aElems, const std::string &aID, uint64_t aPriority ); /** PutTombs adds items to the "tombs" set (marked as deleted) * @param aElems list of elems to to into datastore diff --git a/src/crdt/impl/crdt_datastore.cpp b/src/crdt/impl/crdt_datastore.cpp index 6e94bb2c..03e4d755 100644 --- a/src/crdt/impl/crdt_datastore.cpp +++ b/src/crdt/impl/crdt_datastore.cpp @@ -425,7 +425,7 @@ namespace sgns::crdt return outcome::success(); } - void CrdtDatastore::SendNewJobs(const CID& aRootCID, const uint64_t& aRootPriority, const std::vector& aChildren) + void CrdtDatastore::SendNewJobs( const CID &aRootCID, uint64_t aRootPriority, const std::vector &aChildren ) { // sendNewJobs calls getDeltas with the given // children and sends each response to the workers. @@ -708,8 +708,9 @@ namespace sgns::crdt return outcome::success(); } - outcome::result> CrdtDatastore::PutBlock( - const std::vector& aHeads, const uint64_t& aHeight, const std::shared_ptr& aDelta) + outcome::result> CrdtDatastore::PutBlock( const std::vector &aHeads, + uint64_t aHeight, + const std::shared_ptr &aDelta ) { if (aDelta == nullptr) { @@ -749,8 +750,10 @@ namespace sgns::crdt return node; } - outcome::result> CrdtDatastore::ProcessNode(const CID& aRoot, const uint64_t& aRootPrio, - const std::shared_ptr& aDelta, const std::shared_ptr& aNode) + outcome::result> CrdtDatastore::ProcessNode( const CID &aRoot, + uint64_t aRootPrio, + const std::shared_ptr &aDelta, + const std::shared_ptr &aNode ) { if (this->set_ == nullptr || this->heads_ == nullptr || this->dagSyncer_ == nullptr || aDelta == nullptr || aNode == nullptr) @@ -924,7 +927,7 @@ namespace sgns::crdt return outcome::success(); } - outcome::result CrdtDatastore::PrintDAGRec(const CID& aCID, const uint64_t& aDepth, std::vector& aSet) + outcome::result CrdtDatastore::PrintDAGRec( const CID &aCID, uint64_t aDepth, std::vector &aSet ) { std::ostringstream line; for (uint64_t i = 0; i < aDepth; ++i) diff --git a/src/crdt/impl/crdt_heads.cpp b/src/crdt/impl/crdt_heads.cpp index 5d644599..ed3919ac 100644 --- a/src/crdt/impl/crdt_heads.cpp +++ b/src/crdt/impl/crdt_heads.cpp @@ -61,7 +61,9 @@ namespace sgns::crdt return this->namespaceKey_.ChildString(cidToStringResult.value()); } - outcome::result CrdtHeads::Write(const std::unique_ptr& aDataStore, const CID& aCid, const uint64_t& aHeight) + outcome::result CrdtHeads::Write( const std::unique_ptr &aDataStore, + const CID &aCid, + uint64_t aHeight ) { if (aDataStore == nullptr) { @@ -74,15 +76,7 @@ namespace sgns::crdt return outcome::failure(getKeyResult.error()); } - std::string strHeight; - try - { - strHeight = boost::lexical_cast(aHeight); - } - catch (boost::bad_lexical_cast&) - { - return outcome::failure(boost::system::error_code{}); - } + std::string strHeight = std::to_string( aHeight ); Buffer keyBuffer; keyBuffer.put(getKeyResult.value().GetKey()); @@ -124,7 +118,7 @@ namespace sgns::crdt std::lock_guard lg(this->mutex_); auto isHeadResult = this->IsHead(aCid); - if (isHeadResult.has_failure() || isHeadResult.value() == false) + if ( isHeadResult.has_failure() || !isHeadResult.value() ) { // Not a head return outcome::failure(boost::system::error_code{}); @@ -139,7 +133,7 @@ namespace sgns::crdt return this->cache_.size(); } - outcome::result CrdtHeads::Add(const CID& aCid, const uint64_t& aHeight) + outcome::result CrdtHeads::Add( const CID &aCid, uint64_t aHeight ) { if (this->dataStore_ == nullptr) { @@ -163,7 +157,7 @@ namespace sgns::crdt return outcome::success(); } - outcome::result CrdtHeads::Replace(const CID& aCidHead, const CID& aNewHeadCid, const uint64_t& aHeight) + outcome::result CrdtHeads::Replace( const CID &aCidHead, const CID &aNewHeadCid, uint64_t aHeight ) { if (this->dataStore_ == nullptr) { diff --git a/src/crdt/impl/crdt_set.cpp b/src/crdt/impl/crdt_set.cpp index 130abb45..7c989dcc 100644 --- a/src/crdt/impl/crdt_set.cpp +++ b/src/crdt/impl/crdt_set.cpp @@ -358,7 +358,7 @@ namespace sgns::crdt return priority; } - outcome::result CrdtSet::SetPriority(const std::string& aKey, const uint64_t& aPriority) + outcome::result CrdtSet::SetPriority( const std::string &aKey, uint64_t aPriority ) { if (this->dataStore_ == nullptr) { @@ -367,15 +367,7 @@ namespace sgns::crdt auto prioK = this->PriorityKey(aKey); - std::string strPriority; - try - { - strPriority = boost::lexical_cast(aPriority + 1); - } - catch (boost::bad_lexical_cast&) - { - return outcome::failure(boost::system::error_code{}); - } + std::string strPriority = std::to_string( aPriority + 1 ); Buffer keyBuffer; keyBuffer.put(prioK.GetKey()); @@ -386,8 +378,10 @@ namespace sgns::crdt return this->dataStore_->put(keyBuffer, valueBuffer); } - outcome::result CrdtSet::SetValue(const std::string& aKey, const std::string& aID, const Buffer& aValue, - const uint64_t& aPriority) + outcome::result CrdtSet::SetValue( const std::string &aKey, + const std::string &aID, + const Buffer &aValue, + uint64_t aPriority ) { if (this->dataStore_ == nullptr) { @@ -410,8 +404,11 @@ namespace sgns::crdt return outcome::success(); } - outcome::result CrdtSet::SetValue(const std::unique_ptr& aDataStore, const std::string& aKey, - const std::string& aID, const Buffer& aValue, const uint64_t& aPriority) + outcome::result CrdtSet::SetValue( const std::unique_ptr &aDataStore, + const std::string &aKey, + const std::string &aID, + const Buffer &aValue, + uint64_t aPriority ) { if (aDataStore == nullptr) { @@ -420,7 +417,7 @@ namespace sgns::crdt // If this key was tombstoned already, do not store/update the value at all. auto isDeletedResult = this->InTombsKeyID(aKey, aID); - if (isDeletedResult.has_failure() || isDeletedResult.value() == true) + if ( isDeletedResult.has_failure() || isDeletedResult.value() ) { return outcome::failure(boost::system::error_code{}); } @@ -480,7 +477,7 @@ namespace sgns::crdt return outcome::success(); } - outcome::result CrdtSet::PutElems(std::vector& aElems, const std::string& aID, const uint64_t& aPriority) + outcome::result CrdtSet::PutElems( std::vector &aElems, const std::string &aID, uint64_t aPriority ) { if (aElems.empty()) { @@ -554,7 +551,7 @@ namespace sgns::crdt for (const auto& tomb : aTombs) { // /namespace/tombs// - auto key = tomb.key(); + const auto &key = tomb.key(); auto kNamespace = this->TombsPrefix(key).ChildString(tomb.id()); keyBuffer.clear(); From 3f3f8b9d6044752b5de94581c11ddd670738448e Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Fri, 26 Jul 2024 14:59:06 -0300 Subject: [PATCH 02/30] Simplified construction of `hierarchical_key` --- src/crdt/hierarchical_key.hpp | 12 +++++------- src/crdt/impl/hierarchical_key.cpp | 25 +++++++------------------ 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/crdt/hierarchical_key.hpp b/src/crdt/hierarchical_key.hpp index 186bbaab..65d14b22 100644 --- a/src/crdt/hierarchical_key.hpp +++ b/src/crdt/hierarchical_key.hpp @@ -36,19 +36,17 @@ namespace sgns::crdt virtual ~HierarchicalKey() = default; - bool operator==(const HierarchicalKey&); - - bool operator!=(const HierarchicalKey&); - HierarchicalKey& operator=(const HierarchicalKey&) = default; void SetKey(const std::string& aKey ) { key_ = aKey; }; std::string GetKey() const { return key_; }; - /** ChildString returns the `child` Key of this Key -- string helper. - * NewKey("/Comedy/MontyPython").ChildString("Actor:JohnCleese") - * NewKey("/Comedy/MontyPython/Actor:JohnCleese") + /** @brief Appends `s` to the key. + * @param s String to be appended + * + * NewKey("/Comedy/MontyPython").ChildString("Actor:JohnCleese") + * NewKey("/Comedy/MontyPython/Actor:JohnCleese") */ HierarchicalKey ChildString(const std::string& s) const; diff --git a/src/crdt/impl/hierarchical_key.cpp b/src/crdt/impl/hierarchical_key.cpp index a162c4be..1f2b06da 100644 --- a/src/crdt/impl/hierarchical_key.cpp +++ b/src/crdt/impl/hierarchical_key.cpp @@ -9,7 +9,7 @@ namespace sgns::crdt // Add slash to beginning if missing if (key.empty() || key[0] != '/') { - key = "/" + key; + key.insert(key.begin(), '/'); } // Remove trailing slash @@ -21,30 +21,19 @@ namespace sgns::crdt this->key_ = key; } - HierarchicalKey::HierarchicalKey(const HierarchicalKey& aKey) + HierarchicalKey::HierarchicalKey( const HierarchicalKey &aKey ) : key_( aKey.key_ ) { - this->key_ = aKey.key_; } - bool HierarchicalKey::operator==(const HierarchicalKey& aKey) + HierarchicalKey HierarchicalKey::ChildString(const std::string& s) const { - return this->key_ == aKey.key_; - } - - bool HierarchicalKey::operator!=(const HierarchicalKey& aKey) - { - return !(*this == aKey); - } - - HierarchicalKey HierarchicalKey::ChildString(const std::string& aString) const - { - std::string childString = aString; + std::string childString = s; if (childString.size() > 0 && childString[0] != '/') { - childString = "/" + childString; + childString.insert(childString.begin(), '/'); } - return HierarchicalKey(this->key_ + childString); + return {this->key_ + childString}; } bool HierarchicalKey::IsTopLevel() const @@ -62,4 +51,4 @@ namespace sgns::crdt } return listOfNames; } -} // namespace sgns::crdt +} From 4d5cdc70dbc807677885c6ff482489578ec6d973 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Fri, 26 Jul 2024 14:59:23 -0300 Subject: [PATCH 03/30] Using smart pointers instead of raw in `rocksdb` --- src/storage/rocksdb/rocksdb.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/storage/rocksdb/rocksdb.cpp b/src/storage/rocksdb/rocksdb.cpp index e8508a7a..f3057304 100644 --- a/src/storage/rocksdb/rocksdb.cpp +++ b/src/storage/rocksdb/rocksdb.cpp @@ -1,9 +1,9 @@ +#include #include #include #include -#include #include "storage/rocksdb/rocksdb_cursor.hpp" #include "storage/rocksdb/rocksdb_batch.hpp" #include "storage/rocksdb/rocksdb_util.hpp" @@ -72,7 +72,7 @@ namespace sgns::storage void rocksdb::setReadOptions(ReadOptions ro) { - ro_ = ro; + ro_ = std::move(ro); } void rocksdb::setWriteOptions(WriteOptions wo) @@ -110,7 +110,7 @@ namespace sgns::storage Buffer value; QueryResult results; - auto iter = db_->NewIterator(read_options); + auto iter = std::unique_ptr(db_->NewIterator(read_options)); auto slicePrefix = make_slice(keyPrefix); for (iter->Seek(slicePrefix); iter->Valid() && iter->key().starts_with(slicePrefix); iter->Next()) { @@ -121,7 +121,6 @@ namespace sgns::storage value.put(iter->value().ToString()); results[key] = value; } - delete iter; return results; } From 75ee1b34aec345e7cc58bcc1bd3f5e98dfa09df2 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 11:23:56 -0300 Subject: [PATCH 04/30] Fixed casting --- .../processing_processor_mnn_posenet.cpp | 106 ++++++++++-------- .../trie/serialization/supergenius_codec.cpp | 7 +- .../production/impl/threshold_util.cpp | 27 ++--- 3 files changed, 74 insertions(+), 66 deletions(-) diff --git a/src/processing/processors/processing_processor_mnn_posenet.cpp b/src/processing/processors/processing_processor_mnn_posenet.cpp index cb0c7ad1..63b012ed 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.cpp +++ b/src/processing/processors/processing_processor_mnn_posenet.cpp @@ -13,20 +13,22 @@ namespace sgns::processing const SGProcessing::Task &task, const SGProcessing::SubTask &subTask ) { - std::vector subTaskResultHash(SHA256_DIGEST_LENGTH); + std::vector subTaskResultHash( SHA256_DIGEST_LENGTH ); for ( auto image : *imageData_ ) { std::vector output( image.size() ); - std::transform( image.begin(), image.end(), output.begin(), - []( char c ) { return static_cast( c ); } ); + std::transform( + image.begin(), image.end(), output.begin(), []( char c ) { return static_cast( c ); } ); ImageSplitter animageSplit( output, task.block_line_stride(), task.block_stride(), task.block_len() ); auto dataindex = 0; auto basechunk = subTask.chunkstoprocess( 0 ); bool isValidationSubTask = ( subTask.subtaskid() == "subtask_validation" ); - ImageSplitter ChunkSplit( animageSplit.GetPart( dataindex ), basechunk.line_stride(), basechunk.stride(), + ImageSplitter ChunkSplit( animageSplit.GetPart( dataindex ), + basechunk.line_stride(), + basechunk.stride(), animageSplit.GetPartHeightActual( dataindex ) / basechunk.subchunk_height() * basechunk.line_stride() ); - + for ( int chunkIdx = 0; chunkIdx < subTask.chunkstoprocess_size(); ++chunkIdx ) { std::cout << "Chunk IDX: " << chunkIdx << "Total: " << subTask.chunkstoprocess_size() << std::endl; @@ -42,16 +44,16 @@ namespace sgns::processing } else { - auto procresults = - MNNProcess( ChunkSplit.GetPart( chunkIdx ), ChunkSplit.GetPartWidthActual( chunkIdx ), - ChunkSplit.GetPartHeightActual( chunkIdx ) ); + auto procresults = MNNProcess( ChunkSplit.GetPart( chunkIdx ), + ChunkSplit.GetPartWidthActual( chunkIdx ), + ChunkSplit.GetPartHeightActual( chunkIdx ) ); + + const float *data = procresults->host(); + size_t dataSize = procresults->elementSize() * sizeof( float ); - const float* data = procresults->host(); - size_t dataSize = procresults->elementSize() * sizeof(float); - SHA256_CTX sha256; - SHA256_Init(&sha256); - SHA256_Update(&sha256, data, dataSize); + SHA256_Init( &sha256 ); + SHA256_Update( &sha256, data, dataSize ); SHA256_Final( shahash.data(), &sha256 ); } std::string hashString( shahash.begin(), shahash.end() ); @@ -107,32 +109,40 @@ namespace sgns::processing } } - std::unique_ptr MNN_PoseNet::MNNProcess(const std::vector& imgdata, const int origwidth, - const int origheight, const std::string filename) { - std::vector ret_vect(imgdata); - - // Get Target Width - const int targetWidth = static_cast((float)origwidth / (float)OUTPUT_STRIDE) * OUTPUT_STRIDE + 1; - const int targetHeight = static_cast((float)origheight / (float)OUTPUT_STRIDE) * OUTPUT_STRIDE + 1; - - // Scale - CV::Point scale; - scale.fX = (float)origwidth / (float)targetWidth; - scale.fY = (float)origheight / (float)targetHeight; + MNN::Tensor MNN_PoseNet::MNNProcess( const std::vector &imgdata, + const int origwidth, + const int origheight, + const std::string &filename ) + { + std::vector ret_vect( imgdata ); + //Get Target WIdth + const int targetWidth = + static_cast( static_cast( origwidth ) / static_cast( OUTPUT_STRIDE ) ) * OUTPUT_STRIDE + + 1; + const int targetHeight = + static_cast( static_cast( origheight ) / static_cast( OUTPUT_STRIDE ) ) * OUTPUT_STRIDE + + 1; + + //Scale + CV::Point scale{}; + scale.fX = static_cast( origwidth ) / static_cast( targetWidth ); + scale.fY = static_cast( origheight ) / static_cast( targetHeight ); // Create net and session - const void* buffer = static_cast(modelFile_->data()); - auto mnnNet = std::shared_ptr(MNN::Interpreter::createFromBuffer(buffer, modelFile_->size())); + const void *buffer = static_cast( modelFile_->data() ); + auto mnnNet = + std::shared_ptr( MNN::Interpreter::createFromBuffer( buffer, modelFile_->size() ) ); MNN::ScheduleConfig netConfig; - netConfig.type = MNN_FORWARD_VULKAN; + netConfig.type = MNN_FORWARD_VULKAN; netConfig.numThread = 4; - auto session = mnnNet->createSession(netConfig); + auto session = mnnNet->createSession( netConfig ); - auto input = mnnNet->getSessionInput(session, nullptr); + auto input = mnnNet->getSessionInput( session, nullptr ); - if (input->elementSize() <= 4) { - mnnNet->resizeTensor(input, { 1, 3, targetHeight, targetWidth }); - mnnNet->resizeSession(session); + if ( input->elementSize() <= 4 ) + { + mnnNet->resizeTensor( input, { 1, 3, targetHeight, targetWidth } ); + mnnNet->resizeSession( session ); } // Preprocess input image @@ -140,38 +150,38 @@ namespace sgns::processing const float means[3] = { 127.5f, 127.5f, 127.5f }; const float norms[3] = { 2.0f / 255.0f, 2.0f / 255.0f, 2.0f / 255.0f }; CV::ImageProcess::Config preProcessConfig; - ::memcpy(preProcessConfig.mean, means, sizeof(means)); - ::memcpy(preProcessConfig.normal, norms, sizeof(norms)); + ::memcpy( preProcessConfig.mean, means, sizeof( means ) ); + ::memcpy( preProcessConfig.normal, norms, sizeof( norms ) ); preProcessConfig.sourceFormat = CV::RGBA; - preProcessConfig.destFormat = CV::RGB; - preProcessConfig.filterType = CV::BILINEAR; + preProcessConfig.destFormat = CV::RGB; + preProcessConfig.filterType = CV::BILINEAR; - auto pretreat = std::shared_ptr(CV::ImageProcess::create(preProcessConfig)); + auto pretreat = std::shared_ptr( CV::ImageProcess::create( preProcessConfig ) ); CV::Matrix trans; // Dst -> [0, 1] - trans.postScale(1.0 / targetWidth, 1.0 / targetHeight); + trans.postScale( 1.0 / targetWidth, 1.0 / targetHeight ); //[0, 1] -> Src - trans.postScale(origwidth, origheight); + trans.postScale( origwidth, origheight ); - pretreat->setMatrix(trans); - pretreat->convert(ret_vect.data(), origwidth, origheight, 0, input); + pretreat->setMatrix( trans ); + pretreat->convert( ret_vect.data(), origwidth, origheight, 0, input ); } // Log preprocessed input tensor data hash { - const float* inputData = input->host(); - size_t inputDataSize = input->elementSize() * sizeof(float); + const float *inputData = input->host(); + size_t inputDataSize = input->elementSize() * sizeof( float ); } { AUTOTIME; - mnnNet->runSession(session); + mnnNet->runSession( session ); } - auto outputTensor = mnnNet->getSessionOutput(session, nullptr); - auto outputHost = std::make_unique(outputTensor, MNN::Tensor::CAFFE); - outputTensor->copyToHostTensor(outputHost.get()); + auto outputTensor = mnnNet->getSessionOutput( session, nullptr ); + auto outputHost = std::make_unique( outputTensor, MNN::Tensor::CAFFE ); + outputTensor->copyToHostTensor( outputHost.get() ); return outputHost; } diff --git a/src/storage/trie/serialization/supergenius_codec.cpp b/src/storage/trie/serialization/supergenius_codec.cpp index c6853d0e..651f18bc 100644 --- a/src/storage/trie/serialization/supergenius_codec.cpp +++ b/src/storage/trie/serialization/supergenius_codec.cpp @@ -134,9 +134,10 @@ namespace sgns::storage::trie { head <<= 6u; // head_{6..7} * 64 // set bits 0..5, partial key length - if (node.key_nibbles.size() < 63u) { - head |= uint8_t(node.key_nibbles.size()); - return Buffer{head}; // header contains 1 byte + if ( node.key_nibbles.size() < 63U ) + { + head |= static_cast( node.key_nibbles.size() ); + return Buffer{ head }; // header contains 1 byte } // if partial key length is greater than 62, then the rest of the length is // stored in consequent bytes diff --git a/src/verification/production/impl/threshold_util.cpp b/src/verification/production/impl/threshold_util.cpp index d427a5d9..d6397331 100644 --- a/src/verification/production/impl/threshold_util.cpp +++ b/src/verification/production/impl/threshold_util.cpp @@ -11,21 +11,18 @@ namespace sgns::verification { const std::pair &c_pair, const primitives::AuthorityList &authorities, primitives::AuthorityIndex authority_index) { - double c = double(c_pair.first) / c_pair.second; - - using boost::adaptors::transformed; - double theta = - double(authorities[authority_index].weight) - / boost::accumulate(authorities | transformed([](auto &authority) { - return authority.weight; - }), - 0.); - - using namespace boost::multiprecision; // NOLINT - cpp_rational p_rat(1. - pow(1. - c, theta)); - static const auto a = (uint256_t{1} << 128); - cpp_int t = a * numerator(p_rat) / denominator(p_rat); - return Threshold{t}; + double c = static_cast( c_pair.first ) / static_cast( c_pair.second ); + + using boost::adaptors::transformed; + double theta = + static_cast( authorities[authority_index].weight ) / + boost::accumulate( authorities | transformed( []( auto &authority ) { return authority.weight; } ), 0. ); + + using namespace boost::multiprecision; // NOLINT + cpp_rational p_rat( 1. - pow( 1. - c, theta ) ); + static const auto a = ( uint256_t{ 1 } << 128 ); + cpp_int t = a * numerator( p_rat ) / denominator( p_rat ); + return Threshold{ t }; } } // namespace sgns::verification From 33ccd0595525f592112e2f489fb4386b59109a61 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 11:24:52 -0300 Subject: [PATCH 05/30] style: Constructor initializations are not packed if they don't fit --- .clang-format | 1 + 1 file changed, 1 insertion(+) diff --git a/.clang-format b/.clang-format index 99a301e0..6fbba62b 100644 --- a/.clang-format +++ b/.clang-format @@ -25,6 +25,7 @@ InsertBraces: true InsertNewlineAtEOF: true KeepEmptyLinesAtTheStartOfBlocks: false NamespaceIndentation: All +PackConstructorInitializers: NextLine ReflowComments: false RemoveParentheses: ReturnStatement RemoveSemicolon: true From d07e44fb7e7d7838b60a195bb0c45a88bfb7d1f7 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 11:25:04 -0300 Subject: [PATCH 06/30] chore: Removed unnecessary linting --- .clang-tidy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.clang-tidy b/.clang-tidy index 7e41dbc2..e65affb9 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -46,7 +46,8 @@ Checks: > readability-*, -readability-identifier-length, -readability-magic-numbers, - -readability-named-parameter + -readability-named-parameter, + -readability-qualified-auto FormatStyle: file From 769bc661d9c90301b2354164299bb62954fac87e Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:23:53 -0300 Subject: [PATCH 07/30] chore: Disabled member init check --- .clang-tidy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.clang-tidy b/.clang-tidy index e65affb9..c679dcba 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -7,6 +7,7 @@ Checks: > -bugprone-reserved-identifier, cert-*, + -cert-dcl37-c, -cert-dcl51-cpp, -cert-err58-cpp, @@ -37,6 +38,7 @@ Checks: > -misc-non-private-member-variables-in-classes, modernize-*, + -modernize-use-default-member-init, -modernize-use-trailing-return-type, performance-*, From 030039e1deefd1ee7c167d50c5b884c5dd62bd8a Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:17:06 -0300 Subject: [PATCH 08/30] Fixed ownership fixed ownership --- src/account/EscrowTransaction.cpp | 18 +++-- src/account/EscrowTransaction.hpp | 5 +- src/account/GeniusNode.cpp | 2 +- src/account/GeniusNode.hpp | 2 +- src/account/GeniusUTXO.hpp | 2 +- src/account/IGeniusTransactions.hpp | 4 +- src/account/MintTransaction.cpp | 2 +- src/account/MintTransaction.hpp | 2 +- src/account/ProcessingTransaction.cpp | 5 +- src/account/ProcessingTransaction.hpp | 2 +- src/account/TransactionManager.cpp | 36 ++++++---- src/account/TransactionManager.hpp | 32 +++++---- src/account/TransferTransaction.cpp | 5 +- src/account/TransferTransaction.hpp | 4 +- src/account/UTXOTxParameters.hpp | 39 ++++++---- .../impl/key_value_block_storage.cpp | 12 ++-- src/crdt/globaldb/globaldb.cpp | 20 +++--- src/crdt/globaldb/keypair_file_storage.cpp | 3 +- src/crdt/globaldb/keypair_file_storage.hpp | 2 +- src/crdt/graphsync_dagsyncer.hpp | 2 +- src/crdt/impl/graphsync_dagsyncer.cpp | 2 +- src/extensions/impl/memory_extension.cpp | 4 -- .../helpers/scale_message_read_writer.cpp | 4 +- .../helpers/scale_message_read_writer.hpp | 3 +- src/network/impl/gossiper_broadcast.cpp | 2 +- src/network/impl/router_libp2p.cpp | 3 +- src/network/impl/router_libp2p.hpp | 3 +- src/network/router.hpp | 3 +- src/processing/impl/processing_core_impl.hpp | 4 +- .../impl/processing_task_queue_impl.hpp | 2 +- src/processing/processing_engine.cpp | 15 ++-- src/processing/processing_imagesplit.cpp | 3 +- src/processing/processing_imagesplit.hpp | 2 +- src/processing/processing_node.cpp | 28 ++++---- src/processing/processing_service.cpp | 72 ++++++++++--------- src/processing/processing_service.hpp | 14 ++-- .../processing_subtask_enqueuer_impl.cpp | 4 +- src/processing/processing_subtask_queue.cpp | 8 +-- src/processing/processing_subtask_queue.hpp | 2 +- ...processing_subtask_queue_accessor_impl.cpp | 25 +++---- ...rocessing_subtask_queue_channel_pubsub.cpp | 8 +-- .../processing_subtask_queue_manager.cpp | 24 ++++--- .../processing_processor_mnn_posenet.cpp | 8 +-- .../processing_processor_mnn_posenet.hpp | 6 +- .../finality/impl/finality_impl.cpp | 57 ++++++++------- .../finality/impl/finality_impl.hpp | 18 ++--- .../production/impl/production_impl.cpp | 3 +- 47 files changed, 275 insertions(+), 251 deletions(-) diff --git a/src/account/EscrowTransaction.cpp b/src/account/EscrowTransaction.cpp index 94a8a0b0..750fb16b 100644 --- a/src/account/EscrowTransaction.cpp +++ b/src/account/EscrowTransaction.cpp @@ -5,19 +5,23 @@ * @author Henrique A. Klein (hklein@gnus.ai) */ #include "account/EscrowTransaction.hpp" + +#include #include "crypto/hasher/hasher_impl.hpp" #include "base/blob.hpp" namespace sgns { - EscrowTransaction::EscrowTransaction( const UTXOTxParameters ¶ms, const uint64_t &num_chunks, - const uint256_t &dest_addr, const float &cut, + EscrowTransaction::EscrowTransaction( UTXOTxParameters params, + uint64_t num_chunks, + uint256_t dest_addr, + float cut, const SGTransaction::DAGStruct &dag ) : - IGeniusTransactions( "escrow", SetDAGWithType( dag, "escrow" ) ), // - num_chunks_(num_chunks), // - dev_addr( dest_addr ), // - dev_cut( cut ), // - utxo_params_(params) // + IGeniusTransactions( "escrow", SetDAGWithType( dag, "escrow" ) ), + num_chunks_( num_chunks ), + dev_addr( std::move( dest_addr ) ), + dev_cut( cut ), + utxo_params_( std::move( params ) ) { auto hasher_ = std::make_shared(); auto hash = hasher_->blake2b_256( SerializeByteVector() ); diff --git a/src/account/EscrowTransaction.hpp b/src/account/EscrowTransaction.hpp index b2ac0caf..70745ec7 100644 --- a/src/account/EscrowTransaction.hpp +++ b/src/account/EscrowTransaction.hpp @@ -15,7 +15,10 @@ namespace sgns class EscrowTransaction : public IGeniusTransactions { public: - EscrowTransaction( const UTXOTxParameters ¶ms, const uint64_t &num_chunks, const uint256_t &dest_addr, const float &cut, + EscrowTransaction( UTXOTxParameters params, + uint64_t num_chunks, + uint256_t dest_addr, + float cut, const SGTransaction::DAGStruct &dag ); ~EscrowTransaction() = default; diff --git a/src/account/GeniusNode.cpp b/src/account/GeniusNode.cpp index c126d068..9350296a 100644 --- a/src/account/GeniusNode.cpp +++ b/src/account/GeniusNode.cpp @@ -256,7 +256,7 @@ namespace sgns return transaction_manager_->GetBalance(); } - std::vector GeniusNode::GetImageByCID( std::string cid ) + std::vector GeniusNode::GetImageByCID( const std::string &cid ) { libp2p::protocol::kademlia::Config kademlia_config; kademlia_config.randomWalk.enabled = true; diff --git a/src/account/GeniusNode.hpp b/src/account/GeniusNode.hpp index 49c30693..49dba384 100644 --- a/src/account/GeniusNode.hpp +++ b/src/account/GeniusNode.hpp @@ -79,7 +79,7 @@ namespace sgns void AddPeer( const std::string &peer ); uint64_t GetBalance(); - std::vector GetImageByCID( std::string cid ); + static std::vector GetImageByCID( const std::string &cid ); private: std::shared_ptr account_; diff --git a/src/account/GeniusUTXO.hpp b/src/account/GeniusUTXO.hpp index 9c14d504..63f1c997 100644 --- a/src/account/GeniusUTXO.hpp +++ b/src/account/GeniusUTXO.hpp @@ -14,7 +14,7 @@ namespace sgns class GeniusUTXO { public: - GeniusUTXO( const base::Hash256 &hash, const uint32_t &previous_index, const uint64_t &amount ) : + GeniusUTXO( const base::Hash256 &hash, uint32_t previous_index, uint64_t amount ) : txid_hash_( hash ), // output_idx_( previous_index ), // amount_( amount ), // diff --git a/src/account/IGeniusTransactions.hpp b/src/account/IGeniusTransactions.hpp index 78b83c04..c072f2d6 100644 --- a/src/account/IGeniusTransactions.hpp +++ b/src/account/IGeniusTransactions.hpp @@ -24,8 +24,8 @@ namespace sgns class IGeniusTransactions { public: - IGeniusTransactions( std::string type, const SGTransaction::DAGStruct &dag ) : - dag_st( dag ), transaction_type( std::move( type ) ) + IGeniusTransactions( std::string type, SGTransaction::DAGStruct dag ) : + dag_st( std::move( dag ) ), transaction_type( std::move( type ) ) { } diff --git a/src/account/MintTransaction.cpp b/src/account/MintTransaction.cpp index b4aae2a9..0a8e567d 100644 --- a/src/account/MintTransaction.cpp +++ b/src/account/MintTransaction.cpp @@ -9,7 +9,7 @@ namespace sgns { - MintTransaction::MintTransaction( const uint64_t &new_amount, const SGTransaction::DAGStruct &dag ) : + MintTransaction::MintTransaction( uint64_t new_amount, const SGTransaction::DAGStruct &dag ) : IGeniusTransactions( "mint", SetDAGWithType( dag, "mint" ) ), // amount( new_amount ) // { diff --git a/src/account/MintTransaction.hpp b/src/account/MintTransaction.hpp index e8ecd7ca..c6d04480 100644 --- a/src/account/MintTransaction.hpp +++ b/src/account/MintTransaction.hpp @@ -16,7 +16,7 @@ namespace sgns class MintTransaction : public IGeniusTransactions { public: - MintTransaction( const uint64_t &new_amount, const SGTransaction::DAGStruct &dag ); + MintTransaction( uint64_t new_amount, const SGTransaction::DAGStruct &dag ); ~MintTransaction() = default; std::vector SerializeByteVector() override; diff --git a/src/account/ProcessingTransaction.cpp b/src/account/ProcessingTransaction.cpp index 88eb44ec..73f1402d 100644 --- a/src/account/ProcessingTransaction.cpp +++ b/src/account/ProcessingTransaction.cpp @@ -12,11 +12,12 @@ namespace sgns { - ProcessingTransaction::ProcessingTransaction( const std::string &job_id, const std::string &subtask_id, + ProcessingTransaction::ProcessingTransaction( const std::string &job_id, + std::string subtask_id, const SGTransaction::DAGStruct &dag ) : IGeniusTransactions( "process", SetDAGWithType( dag, "process" ) ), // - job_id_( job_id ), subtask_id_( subtask_id ) + job_id_( job_id ), subtask_id_( std::move( subtask_id ) ) { auto hasher_ = std::make_shared(); auto hash_data = hasher_->blake2b_256( SerializeByteVector() ); diff --git a/src/account/ProcessingTransaction.hpp b/src/account/ProcessingTransaction.hpp index 571fb094..bf638242 100644 --- a/src/account/ProcessingTransaction.hpp +++ b/src/account/ProcessingTransaction.hpp @@ -18,7 +18,7 @@ namespace sgns class ProcessingTransaction : public IGeniusTransactions { public: - ProcessingTransaction( const std::string &job_id, const std::string &subtask_id, const SGTransaction::DAGStruct &dag ); + ProcessingTransaction( const std::string &job_id, std::string subtask_id, const SGTransaction::DAGStruct &dag ); ~ProcessingTransaction() override = default; std::vector SerializeByteVector() override; diff --git a/src/account/TransactionManager.cpp b/src/account/TransactionManager.cpp index a4c5d74f..4eadfafe 100644 --- a/src/account/TransactionManager.cpp +++ b/src/account/TransactionManager.cpp @@ -5,6 +5,9 @@ * @author Henrique A. Klein (hklein@gnus.ai) */ #include "account/TransactionManager.hpp" + +#include + #include "account/TransferTransaction.hpp" #include "account/MintTransaction.hpp" #include "account/ProcessingTransaction.hpp" @@ -18,7 +21,12 @@ namespace sgns std::shared_ptr account, std::shared_ptr hasher, std::shared_ptr block_storage ) : - TransactionManager( db, ctx, account, hasher, block_storage, nullptr ) + TransactionManager( std::move( db ), + std::move( ctx ), + std::move( account ), + std::move( hasher ), + std::move( block_storage ), + nullptr ) { } @@ -29,15 +37,15 @@ namespace sgns std::shared_ptr hasher, std::shared_ptr block_storage, ProcessFinishCbType processing_finished_cb ) : - db_m( std::move( db ) ), // - ctx_m( std::move( ctx ) ), // - account_m( std::move( account ) ), // - timer_m(std::make_shared(*ctx_m, boost::asio::chrono::milliseconds(300))), // - last_block_id_m(0), // - last_trans_on_block_id(0), // - block_storage_m(std::move(block_storage)), // - hasher_m( std::move( hasher ) ), // - processing_finished_cb_m( processing_finished_cb ) // + db_m( std::move( db ) ), + ctx_m( std::move( ctx ) ), + account_m( std::move( account ) ), + timer_m( std::make_shared( *ctx_m, boost::asio::chrono::milliseconds( 300 ) ) ), + last_block_id_m( 0 ), + last_trans_on_block_id( 0 ), + block_storage_m( std::move( block_storage ) ), + hasher_m( std::move( hasher ) ), + processing_finished_cb_m( std::move( processing_finished_cb ) ) { m_logger->set_level( spdlog::level::debug ); @@ -93,14 +101,14 @@ namespace sgns return ret; } - void TransactionManager::MintFunds( const uint64_t &amount ) + void TransactionManager::MintFunds( uint64_t amount ) { auto mint_transaction = std::make_shared( amount, FillDAGStruct() ); this->EnqueueTransaction( mint_transaction ); } - bool TransactionManager::HoldEscrow( const uint64_t &amount, const uint64_t &num_chunks, const uint256_t &dev_addr, - const float &dev_cut, const std::string &job_id ) + bool TransactionManager::HoldEscrow( + uint64_t amount, uint64_t num_chunks, const uint256_t &dev_addr, float dev_cut, const std::string &job_id ) { bool ret = false; auto hash_data = hasher_m->blake2b_256( std::vector{ job_id.begin(), job_id.end() } ); @@ -269,7 +277,7 @@ namespace sgns return ret; } - void TransactionManager::ParseTransaction( std::string transaction_key ) + void TransactionManager::ParseTransaction( const std::string &transaction_key ) { auto maybe_transaction_data = db_m->Get( { transaction_key } ); if ( maybe_transaction_data ) diff --git a/src/account/TransactionManager.hpp b/src/account/TransactionManager.hpp index 5214c25c..ff2a752f 100644 --- a/src/account/TransactionManager.hpp +++ b/src/account/TransactionManager.hpp @@ -9,10 +9,13 @@ #include #include #include +#include #include + #include #include #include + #include "crdt/globaldb/globaldb.hpp" #include "account/proto/SGTransaction.pb.h" #include "account/IGeniusTransactions.hpp" @@ -49,9 +52,9 @@ namespace sgns const GeniusAccount &GetAccount() const; bool TransferFunds( const uint256_t &amount, const uint256_t &destination ); - void MintFunds( const uint64_t &amount ); - bool HoldEscrow( const uint64_t &amount, const uint64_t &num_chunks, const uint256_t &dev_addr, - const float &dev_cut, const std::string &job_id ); + void MintFunds( uint64_t amount ); + bool HoldEscrow( + uint64_t amount, uint64_t num_chunks, const uint256_t &dev_addr, float dev_cut, const std::string &job_id ); bool ReleaseEscrow( const std::string &job_id, const bool &pay ); void ProcessingDone( const std::string &subtask_id ); uint64_t GetBalance(); @@ -80,15 +83,18 @@ namespace sgns std::vector payout_peers; std::unordered_map subtask_info; - EscrowCtrl( const uint256_t &addr, const float &cut, const uint256_t &hash, const uint256_t &amount, - const uint64_t &subtasks_num, - const InputUTXOInfo &input ) : - dev_addr( addr ), // - dev_cut( cut ), // - job_hash( hash ), // - full_amount( amount ), // - num_subtasks( subtasks_num ), // - original_input( input ) // + EscrowCtrl( uint256_t addr, + float cut, + uint256_t hash, + uint256_t amount, + uint64_t subtasks_num, + InputUTXOInfo input ) : + dev_addr( std::move( addr ) ), + dev_cut( cut ), + job_hash( std::move( hash ) ), + full_amount( std::move( amount ) ), + num_subtasks( subtasks_num ), + original_input( std::move( input ) ) { } }; @@ -110,7 +116,7 @@ namespace sgns void SendTransaction(); bool GetTransactionsFromBlock( const primitives::BlockNumber &block_number ); - void ParseTransaction( std::string transaction_key ); + void ParseTransaction( const std::string &transaction_key ); void ParseTransferTransaction( const std::vector &transaction_data ); void ParseMintTransaction( const std::vector &transaction_data ); diff --git a/src/account/TransferTransaction.cpp b/src/account/TransferTransaction.cpp index 257e8db2..8057276b 100644 --- a/src/account/TransferTransaction.cpp +++ b/src/account/TransferTransaction.cpp @@ -78,11 +78,12 @@ namespace sgns return TransferTransaction( outputs, inputs, tx_struct.dag_struct() ); // Return new instance } - const std::vector TransferTransaction::GetDstInfos() const + std::vector TransferTransaction::GetDstInfos() { return outputs_; } - const std::vector TransferTransaction::GetInputInfos() const + + std::vector TransferTransaction::GetInputInfos() { return input_tx_; } diff --git a/src/account/TransferTransaction.hpp b/src/account/TransferTransaction.hpp index 9c5213a3..527b064d 100644 --- a/src/account/TransferTransaction.hpp +++ b/src/account/TransferTransaction.hpp @@ -44,8 +44,8 @@ namespace sgns */ static TransferTransaction DeSerializeByteVector( const std::vector &data ); - const std::vector GetDstInfos() const; - const std::vector GetInputInfos() const; + std::vector GetDstInfos(); + std::vector GetInputInfos(); std::string GetTransactionSpecificPath() override { diff --git a/src/account/UTXOTxParameters.hpp b/src/account/UTXOTxParameters.hpp index 4b185032..2bf036cb 100644 --- a/src/account/UTXOTxParameters.hpp +++ b/src/account/UTXOTxParameters.hpp @@ -8,12 +8,15 @@ #define _UTXO_TX_PARAMETERS_HPP_ #include "account/GeniusUTXO.hpp" +#include #include #include "outcome/outcome.hpp" - +#include namespace sgns { + using namespace boost::multiprecision; + struct InputUTXOInfo { base::Hash256 txid_hash_; @@ -38,11 +41,12 @@ namespace sgns } static outcome::result create( const std::vector &utxo_pool, - const uint256_t &src_address, const uint64_t &amount, - const uint256_t &dest_address, - const std::string signature = "" ) + const uint256_t &src_address, + uint64_t amount, + const uint256_t &dest_address, + std::string signature = "" ) { - UTXOTxParameters instance( utxo_pool, src_address, amount, dest_address, signature ); + UTXOTxParameters instance( utxo_pool, src_address, amount, dest_address, std::move( signature ) ); if ( instance.inputs_.size() ) { @@ -57,9 +61,9 @@ namespace sgns static outcome::result create( const std::vector &utxo_pool, const uint256_t &src_address, const std::vector &destinations, - const std::string signature = "" ) + std::string signature = "" ) { - UTXOTxParameters instance( utxo_pool, src_address, destinations, signature ); + UTXOTxParameters instance( utxo_pool, src_address, destinations, std::move( signature ) ); if ( instance.inputs_.size() ) { @@ -91,15 +95,22 @@ namespace sgns } private: - UTXOTxParameters( const std::vector &utxo_pool, const uint256_t &src_address, - const uint64_t &amount, const uint256_t &dest_address, const std::string signature ) : - UTXOTxParameters( utxo_pool, src_address, { OutputDestInfo{ uint256_t{ amount }, dest_address } }, - signature ) + UTXOTxParameters( const std::vector &utxo_pool, + const uint256_t &src_address, + uint64_t amount, + const uint256_t &dest_address, + std::string signature ) : + UTXOTxParameters( utxo_pool, + src_address, + { OutputDestInfo{ uint256_t{ amount }, dest_address } }, + std::move( signature ) ) { } - UTXOTxParameters( const std::vector &utxo_pool, const uint256_t &src_address, - const std::vector &destinations, const std::string signature ) + UTXOTxParameters( const std::vector &utxo_pool, + const uint256_t &src_address, + const std::vector &destinations, + std::string signature ) { int64_t total_amount = 0; @@ -116,7 +127,7 @@ namespace sgns { break; } - InputUTXOInfo curr_input{ utxo.GetTxID(), utxo.GetOutputIdx(), signature }; + InputUTXOInfo curr_input{ utxo.GetTxID(), utxo.GetOutputIdx(), std::move( signature ) }; remain -= utxo.GetAmount(); inputs_.push_back( curr_input ); diff --git a/src/blockchain/impl/key_value_block_storage.cpp b/src/blockchain/impl/key_value_block_storage.cpp index e8844f3a..cad59072 100644 --- a/src/blockchain/impl/key_value_block_storage.cpp +++ b/src/blockchain/impl/key_value_block_storage.cpp @@ -2,10 +2,6 @@ #include -#include - -#include - #include "blockchain/impl/common.hpp" #include "blockchain/impl/storage_util.hpp" #include "storage/database_error.hpp" @@ -274,13 +270,13 @@ namespace sgns::blockchain { const primitives::BlockNumber &number) { auto header_rm_res = header_repo_->removeBlockHeader(number); if (header_rm_res.has_failure()) - { - return header_rm_res; - } + { + return header_rm_res; + } OUTCOME_TRY((auto &&, key), idToBufferKey(*db_, number)); - //TODO - For now one block data per block header. Revisit this + //TODO - For now one block data per block header. Revisit this return db_->Remove({header_repo_->GetHeaderPath()+std::string(key.toString())+ "/tx/0"}); } diff --git a/src/crdt/globaldb/globaldb.cpp b/src/crdt/globaldb/globaldb.cpp index d8a5d9fc..3f5d835b 100644 --- a/src/crdt/globaldb/globaldb.cpp +++ b/src/crdt/globaldb/globaldb.cpp @@ -32,21 +32,19 @@ using GossipPubSub = sgns::ipfs_pubsub::GossipPubSub; using GraphsyncImpl = sgns::ipfs_lite::ipfs::graphsync::GraphsyncImpl; using GossipPubSubTopic = sgns::ipfs_pubsub::GossipPubSubTopic; -GlobalDB::GlobalDB( - std::shared_ptr context, - std::string databasePath, - int dagSyncPort, +GlobalDB::GlobalDB( std::shared_ptr context, + std::string databasePath, + int dagSyncPort, std::shared_ptr broadcastChannel, - std::vector gsaddresses) - : m_context(std::move(context)) - , m_databasePath(std::move(databasePath)) - , m_dagSyncPort(dagSyncPort) - , m_graphSyncAddrs(gsaddresses) - , m_broadcastChannel(std::move(broadcastChannel)) + std::vector gsaddresses ) : + m_context( std::move( context ) ), + m_databasePath( std::move( databasePath ) ), + m_dagSyncPort( dagSyncPort ), + m_graphSyncAddrs( std::move( gsaddresses ) ), + m_broadcastChannel( std::move( broadcastChannel ) ) { } - std::string GetLocalIP(boost::asio::io_context& io) { boost::asio::ip::tcp::resolver resolver(io); diff --git a/src/crdt/globaldb/keypair_file_storage.cpp b/src/crdt/globaldb/keypair_file_storage.cpp index a66728ba..417715e6 100644 --- a/src/crdt/globaldb/keypair_file_storage.cpp +++ b/src/crdt/globaldb/keypair_file_storage.cpp @@ -131,8 +131,7 @@ outcome::result GenerateKeyPair( } } -KeyPairFileStorage::KeyPairFileStorage(const boost::filesystem::path& keyPath) - : m_keyPath(keyPath) +KeyPairFileStorage::KeyPairFileStorage( boost::filesystem::path keyPath ) : m_keyPath( std::move( keyPath ) ) { // Extract the directory path from the keyPath boost::filesystem::path directory = m_keyPath.parent_path(); diff --git a/src/crdt/globaldb/keypair_file_storage.hpp b/src/crdt/globaldb/keypair_file_storage.hpp index 46d74d22..9a9f7294 100644 --- a/src/crdt/globaldb/keypair_file_storage.hpp +++ b/src/crdt/globaldb/keypair_file_storage.hpp @@ -11,7 +11,7 @@ namespace sgns::crdt class KeyPairFileStorage { public: - KeyPairFileStorage(const boost::filesystem::path& keyPath); + KeyPairFileStorage( boost::filesystem::path keyPath ); [[nodiscard]] outcome::result GetKeyPair() const; diff --git a/src/crdt/graphsync_dagsyncer.hpp b/src/crdt/graphsync_dagsyncer.hpp index 2392f2b7..4a0f84b7 100644 --- a/src/crdt/graphsync_dagsyncer.hpp +++ b/src/crdt/graphsync_dagsyncer.hpp @@ -72,7 +72,7 @@ namespace sgns::crdt const PeerId& peer, boost::optional address, const CID& root_cid) const; void RequestProgressCallback(ResponseStatusCode code, const std::vector& extensions) const; - void BlockReceivedCallback(CID cid, sgns::common::Buffer buffer); + void BlockReceivedCallback( const CID &cid, sgns::common::Buffer buffer ); bool started_ = false; diff --git a/src/crdt/impl/graphsync_dagsyncer.cpp b/src/crdt/impl/graphsync_dagsyncer.cpp index b97d7be0..38e6cdd1 100644 --- a/src/crdt/impl/graphsync_dagsyncer.cpp +++ b/src/crdt/impl/graphsync_dagsyncer.cpp @@ -202,7 +202,7 @@ void GraphsyncDAGSyncer::RequestProgressCallback( logger_->trace("request progress: code={}, extensions={}", statusCodeToString(code), formatExtensions(extensions)); } -void GraphsyncDAGSyncer::BlockReceivedCallback(CID cid, sgns::common::Buffer buffer) +void GraphsyncDAGSyncer::BlockReceivedCallback( const CID &cid, sgns::common::Buffer buffer ) { logger_->trace("Block received: cid={}, extensions={}", cid.toString().value(), buffer.toHex()); auto hb = HasBlock(cid); diff --git a/src/extensions/impl/memory_extension.cpp b/src/extensions/impl/memory_extension.cpp index 8522a2e1..d8c1e1b2 100644 --- a/src/extensions/impl/memory_extension.cpp +++ b/src/extensions/impl/memory_extension.cpp @@ -1,9 +1,5 @@ #include -#include - -#include - #include "extensions/impl/memory_extension.hpp" namespace sgns::extensions { diff --git a/src/network/helpers/scale_message_read_writer.cpp b/src/network/helpers/scale_message_read_writer.cpp index 5717cd96..b75b40f4 100644 --- a/src/network/helpers/scale_message_read_writer.cpp +++ b/src/network/helpers/scale_message_read_writer.cpp @@ -8,7 +8,7 @@ namespace sgns::network { : read_writer_{std::move(read_writer)} {} ScaleMessageReadWriter::ScaleMessageReadWriter( - const std::shared_ptr &read_writer) + std::shared_ptr read_writer) : read_writer_{std::make_shared( - read_writer)} {} + std::move(read_writer))} {} } // namespace sgns::network diff --git a/src/network/helpers/scale_message_read_writer.hpp b/src/network/helpers/scale_message_read_writer.hpp index 4c5f2236..f1142271 100644 --- a/src/network/helpers/scale_message_read_writer.hpp +++ b/src/network/helpers/scale_message_read_writer.hpp @@ -23,8 +23,7 @@ namespace sgns::network { public: explicit ScaleMessageReadWriter( std::shared_ptr read_writer); - explicit ScaleMessageReadWriter( - const std::shared_ptr &read_writer); + explicit ScaleMessageReadWriter( std::shared_ptr read_writer ); /** * Read a SCALE-encoded message from the channel diff --git a/src/network/impl/gossiper_broadcast.cpp b/src/network/impl/gossiper_broadcast.cpp index 245e09d3..2da9c2b5 100644 --- a/src/network/impl/gossiper_broadcast.cpp +++ b/src/network/impl/gossiper_broadcast.cpp @@ -59,7 +59,7 @@ namespace sgns::network { void GossiperBroadcast::addStream( std::shared_ptr stream) { - syncing_streams_.push_back(stream); + syncing_streams_.push_back( std::move( stream ) ); } void GossiperBroadcast::broadcast(GossipMessage &&msg) { diff --git a/src/network/impl/router_libp2p.cpp b/src/network/impl/router_libp2p.cpp index ffd5b5da..d454e318 100644 --- a/src/network/impl/router_libp2p.cpp +++ b/src/network/impl/router_libp2p.cpp @@ -66,8 +66,7 @@ namespace sgns::network { host_addresses.front().getStringAddress()); } - void RouterLibp2p::handleSyncProtocol( - const std::shared_ptr &stream) const { + void RouterLibp2p::handleSyncProtocol( std::shared_ptrstream ) const { RPC::read( stream, [self{shared_from_this()}, stream](auto &&request) { diff --git a/src/network/impl/router_libp2p.hpp b/src/network/impl/router_libp2p.hpp index 1c5f5d43..39cc8b47 100644 --- a/src/network/impl/router_libp2p.hpp +++ b/src/network/impl/router_libp2p.hpp @@ -39,8 +39,7 @@ namespace sgns::network { void init() override; - void handleSyncProtocol( - const std::shared_ptr &stream) const override; + void handleSyncProtocol( std::shared_ptr stream ) const override; void handleGossipProtocol(std::shared_ptr stream) const override; diff --git a/src/network/router.hpp b/src/network/router.hpp index bee92aa0..49f0914b 100644 --- a/src/network/router.hpp +++ b/src/network/router.hpp @@ -27,8 +27,7 @@ namespace sgns::network { * Handle stream, which is opened over a Sync protocol * @param stream to be handled */ - virtual void handleSyncProtocol( - const std::shared_ptr &stream) const = 0; + virtual void handleSyncProtocol( std::shared_ptr stream ) const = 0; /** * Handle stream, which is opened over a Gossip protocol diff --git a/src/processing/impl/processing_core_impl.hpp b/src/processing/impl/processing_core_impl.hpp index 96dda1a6..28d0d1d5 100644 --- a/src/processing/impl/processing_core_impl.hpp +++ b/src/processing/impl/processing_core_impl.hpp @@ -25,7 +25,7 @@ namespace sgns::processing std::shared_ptr db, size_t subTaskProcessingTime, size_t maximalProcessingSubTaskCount) - : m_db(db) + : m_db(std::move(db)) //, m_subTaskProcessingTime(subTaskProcessingTime) , m_processor(nullptr) , m_maximalProcessingSubTaskCount(maximalProcessingSubTaskCount) @@ -47,7 +47,7 @@ namespace sgns::processing * @param factoryFunction - Pointer to processor */ void RegisterProcessorFactory(const std::string& name, std::function()> factoryFunction) { - m_processorFactories[name] = factoryFunction; + m_processorFactories[name] = std::move( factoryFunction ); } /** Set the current processor by name diff --git a/src/processing/impl/processing_task_queue_impl.hpp b/src/processing/impl/processing_task_queue_impl.hpp index 1ac652d3..33a1a11c 100644 --- a/src/processing/impl/processing_task_queue_impl.hpp +++ b/src/processing/impl/processing_task_queue_impl.hpp @@ -24,7 +24,7 @@ namespace sgns::processing * @param db - CRDT globaldb to use */ ProcessingTaskQueueImpl( std::shared_ptr db ) : - m_db( db ), m_processingTimeout( std::chrono::seconds( 10 ) ) + m_db( std::move( db ) ), m_processingTimeout( std::chrono::seconds( 10 ) ) { } diff --git a/src/processing/processing_engine.cpp b/src/processing/processing_engine.cpp index ef113bd7..d09d5fda 100644 --- a/src/processing/processing_engine.cpp +++ b/src/processing/processing_engine.cpp @@ -2,15 +2,12 @@ #include #include -#include "processing_subtask_queue_manager.hpp" +#include namespace sgns::processing { -ProcessingEngine::ProcessingEngine( - std::string nodeId, - std::shared_ptr processingCore) - : m_nodeId(std::move(nodeId)) - , m_processingCore(processingCore) + ProcessingEngine::ProcessingEngine( std::string nodeId, std::shared_ptr processingCore ) : + m_nodeId( std::move( nodeId ) ), m_processingCore( std::move( processingCore ) ) { } @@ -22,8 +19,8 @@ ProcessingEngine::~ProcessingEngine() void ProcessingEngine::StartQueueProcessing( std::shared_ptr subTaskQueueAccessor) { - std::lock_guard queueGuard(m_mutexSubTaskQueue); - m_subTaskQueueAccessor = subTaskQueueAccessor; + std::lock_guard queueGuard( m_mutexSubTaskQueue ); + m_subTaskQueueAccessor = std::move( subTaskQueueAccessor ); m_subTaskQueueAccessor->GrabSubTask( [weakThis(weak_from_this())](boost::optional subTask) { @@ -62,7 +59,7 @@ void ProcessingEngine::OnSubTaskGrabbed(boost::optional processingErrorSink) { - m_processingErrorSink = processingErrorSink; + m_processingErrorSink = std::move( processingErrorSink ); } void ProcessingEngine::ProcessSubTask(SGProcessing::SubTask subTask) diff --git a/src/processing/processing_imagesplit.cpp b/src/processing/processing_imagesplit.cpp index dfc2e98e..bfd850c3 100644 --- a/src/processing/processing_imagesplit.cpp +++ b/src/processing/processing_imagesplit.cpp @@ -54,7 +54,8 @@ namespace sgns::processing { return splitparts_.at(part); } - size_t ImageSplitter::GetPartByCid(libp2p::multi::ContentIdentifier cid) + + size_t ImageSplitter::GetPartByCid( const libp2p::multi::ContentIdentifier &cid ) { //Find the index of cid in cids_ auto it = std::find(cids_.begin(), cids_.end(), cid); diff --git a/src/processing/processing_imagesplit.hpp b/src/processing/processing_imagesplit.hpp index b39ba8e5..fdead974 100644 --- a/src/processing/processing_imagesplit.hpp +++ b/src/processing/processing_imagesplit.hpp @@ -70,7 +70,7 @@ namespace sgns::processing /** Get index of a part by CID * @param cid - CID of part */ - size_t GetPartByCid(libp2p::multi::ContentIdentifier cid); + size_t GetPartByCid( const libp2p::multi::ContentIdentifier &cid ); /** Get size of part in bytes * @param part - index diff --git a/src/processing/processing_node.cpp b/src/processing/processing_node.cpp index a343e87b..165dc6ac 100644 --- a/src/processing/processing_node.cpp +++ b/src/processing/processing_node.cpp @@ -1,24 +1,24 @@ #include "processing_node.hpp" #include "processing_subtask_queue_channel_pubsub.hpp" #include +#include namespace sgns::processing { //////////////////////////////////////////////////////////////////////////////// -ProcessingNode::ProcessingNode( - std::shared_ptr gossipPubSub, - std::shared_ptr subTaskStateStorage, - std::shared_ptr subTaskResultStorage, - std::shared_ptr processingCore, - std::function taskResultProcessingSink, - std::function processingErrorSink) - : m_gossipPubSub(std::move(gossipPubSub)) - , m_nodeId(m_gossipPubSub->GetLocalAddress()[0]) - , m_processingCore(processingCore) - , m_subTaskStateStorage(subTaskStateStorage) - , m_subTaskResultStorage(subTaskResultStorage) - , m_taskResultProcessingSink(taskResultProcessingSink) - , m_processingErrorSink(processingErrorSink) +ProcessingNode::ProcessingNode( std::shared_ptr gossipPubSub, + std::shared_ptr subTaskStateStorage, + std::shared_ptr subTaskResultStorage, + std::shared_ptr processingCore, + std::function taskResultProcessingSink, + std::function processingErrorSink ) : + m_gossipPubSub( std::move( gossipPubSub ) ), + m_nodeId( m_gossipPubSub->GetLocalAddress()[0] ), + m_processingCore( std::move( processingCore ) ), + m_subTaskStateStorage( std::move( subTaskStateStorage ) ), + m_subTaskResultStorage( std::move( subTaskResultStorage ) ), + m_taskResultProcessingSink( std::move( taskResultProcessingSink ) ), + m_processingErrorSink( std::move( processingErrorSink ) ) { } diff --git a/src/processing/processing_service.cpp b/src/processing/processing_service.cpp index b836309e..6675509c 100644 --- a/src/processing/processing_service.cpp +++ b/src/processing/processing_service.cpp @@ -1,47 +1,49 @@ #include "processing_service.hpp" +#include + namespace sgns::processing { - ProcessingServiceImpl::ProcessingServiceImpl( std::shared_ptr gossipPubSub, // - size_t maximalNodesCount, // - std::shared_ptr subTaskEnqueuer, // - std::shared_ptr subTaskStateStorage, // - std::shared_ptr subTaskResultStorage, // - std::shared_ptr processingCore ) : - m_gossipPubSub( gossipPubSub ), // - m_context( gossipPubSub->GetAsioContext() ), // - m_maximalNodesCount( maximalNodesCount ), // - m_subTaskEnqueuer( subTaskEnqueuer ), // - m_subTaskStateStorage( subTaskStateStorage ), // - m_subTaskResultStorage( subTaskResultStorage ), // - m_processingCore( processingCore ), // - m_timerChannelListRequestTimeout( *m_context.get() ), // - m_channelListRequestTimeout( boost::posix_time::seconds( 5 ) ), // - m_isStopped( true ) // + ProcessingServiceImpl::ProcessingServiceImpl( std::shared_ptr gossipPubSub, + size_t maximalNodesCount, + std::shared_ptr subTaskEnqueuer, + std::shared_ptr subTaskStateStorage, + std::shared_ptr subTaskResultStorage, + std::shared_ptr processingCore ) : + m_gossipPubSub( std::move( gossipPubSub ) ), + m_context( m_gossipPubSub->GetAsioContext() ), + m_maximalNodesCount( maximalNodesCount ), + m_subTaskEnqueuer( std::move( subTaskEnqueuer ) ), + m_subTaskStateStorage( std::move( subTaskStateStorage ) ), + m_subTaskResultStorage( std::move( subTaskResultStorage ) ), + m_processingCore( std::move( processingCore ) ), + m_timerChannelListRequestTimeout( *m_context ), + m_channelListRequestTimeout( boost::posix_time::seconds( 5 ) ), + m_isStopped( true ) { } ProcessingServiceImpl::ProcessingServiceImpl( - std::shared_ptr gossipPubSub, // - size_t maximalNodesCount, // - std::shared_ptr subTaskEnqueuer, // - std::shared_ptr subTaskStateStorage, // - std::shared_ptr subTaskResultStorage, // - std::shared_ptr processingCore, // - std::function userCallbackSuccess, // + std::shared_ptr gossipPubSub, + size_t maximalNodesCount, + std::shared_ptr subTaskEnqueuer, + std::shared_ptr subTaskStateStorage, + std::shared_ptr subTaskResultStorage, + std::shared_ptr processingCore, + std::function userCallbackSuccess, std::function userCallbackError ) : - m_gossipPubSub( gossipPubSub ), // - m_context( gossipPubSub->GetAsioContext() ), // - m_maximalNodesCount( maximalNodesCount ), // - m_subTaskEnqueuer( subTaskEnqueuer ), // - m_subTaskStateStorage( subTaskStateStorage ), // - m_subTaskResultStorage( subTaskResultStorage ), // - m_processingCore( processingCore ), // - m_timerChannelListRequestTimeout( *m_context.get() ), // - m_channelListRequestTimeout( boost::posix_time::seconds( 5 ) ), // - m_isStopped( true ), // - userCallbackSuccess_(userCallbackSuccess), // - userCallbackError_(userCallbackError) // + m_gossipPubSub( std::move( gossipPubSub ) ), + m_context( m_gossipPubSub->GetAsioContext() ), + m_maximalNodesCount( maximalNodesCount ), + m_subTaskEnqueuer( std::move( subTaskEnqueuer ) ), + m_subTaskStateStorage( std::move( subTaskStateStorage ) ), + m_subTaskResultStorage( std::move( subTaskResultStorage ) ), + m_processingCore( std::move( processingCore ) ), + m_timerChannelListRequestTimeout( *m_context ), + m_channelListRequestTimeout( boost::posix_time::seconds( 5 ) ), + m_isStopped( true ), + userCallbackSuccess_( std::move( userCallbackSuccess ) ), + userCallbackError_( std::move( userCallbackError ) ) { } diff --git a/src/processing/processing_service.hpp b/src/processing/processing_service.hpp index 381f9062..b8d03bf5 100644 --- a/src/processing/processing_service.hpp +++ b/src/processing/processing_service.hpp @@ -15,12 +15,14 @@ namespace sgns::processing * @param gossipPubSub - pubsub service * @param maximalNodesCount - maximal number of processing nodes allowed to be handled by the service */ - ProcessingServiceImpl( std::shared_ptr gossipPubSub, size_t maximalNodesCount, - std::shared_ptr subTaskEnqueuer, - std::shared_ptr subTaskStateStorage, - std::shared_ptr subTaskResultStorage, - std::shared_ptr processingCore ); - ProcessingServiceImpl( std::shared_ptr gossipPubSub, size_t maximalNodesCount, + ProcessingServiceImpl( std::shared_ptr gossipPubSub, + size_t maximalNodesCount, + std::shared_ptr subTaskEnqueuer, + std::shared_ptr subTaskStateStorage, + std::shared_ptr subTaskResultStorage, + std::shared_ptr processingCore ); + ProcessingServiceImpl( std::shared_ptr gossipPubSub, + size_t maximalNodesCount, std::shared_ptr subTaskEnqueuer, std::shared_ptr subTaskStateStorage, std::shared_ptr subTaskResultStorage, diff --git a/src/processing/processing_subtask_enqueuer_impl.cpp b/src/processing/processing_subtask_enqueuer_impl.cpp index 3654e685..b093e4a2 100644 --- a/src/processing/processing_subtask_enqueuer_impl.cpp +++ b/src/processing/processing_subtask_enqueuer_impl.cpp @@ -1,9 +1,11 @@ #include "processing_subtask_enqueuer_impl.hpp" +#include + namespace sgns::processing { SubTaskEnqueuerImpl::SubTaskEnqueuerImpl( std::shared_ptr taskQueue ) : - m_taskQueue( taskQueue ) + m_taskQueue( std::move( taskQueue ) ) { } diff --git a/src/processing/processing_subtask_queue.cpp b/src/processing/processing_subtask_queue.cpp index 54c8abbb..72d71f6b 100644 --- a/src/processing/processing_subtask_queue.cpp +++ b/src/processing/processing_subtask_queue.cpp @@ -1,15 +1,13 @@ #include "processing_subtask_queue.hpp" -#include #include +#include namespace sgns::processing { //////////////////////////////////////////////////////////////////////////////// -ProcessingSubTaskQueue::ProcessingSubTaskQueue( - const std::string& localNodeId) - : m_localNodeId(localNodeId) - , m_queue(nullptr) +ProcessingSubTaskQueue::ProcessingSubTaskQueue( std::string localNodeId ) : + m_localNodeId( std::move( localNodeId ) ), m_queue( nullptr ) { } diff --git a/src/processing/processing_subtask_queue.hpp b/src/processing/processing_subtask_queue.hpp index 3de113dc..acb26856 100644 --- a/src/processing/processing_subtask_queue.hpp +++ b/src/processing/processing_subtask_queue.hpp @@ -19,7 +19,7 @@ class ProcessingSubTaskQueue /** Construct an empty queue * @param localNodeId local processing node ID */ - ProcessingSubTaskQueue(const std::string& localNodeId); + ProcessingSubTaskQueue( std::string localNodeId ); /** Create a subtask queue by splitting the task to subtasks using the processing code * @param task - task that should be split into subtasks diff --git a/src/processing/processing_subtask_queue_accessor_impl.cpp b/src/processing/processing_subtask_queue_accessor_impl.cpp index d2c6050b..975d3e4f 100644 --- a/src/processing/processing_subtask_queue_accessor_impl.cpp +++ b/src/processing/processing_subtask_queue_accessor_impl.cpp @@ -1,23 +1,24 @@ #include "processing_subtask_queue_accessor_impl.hpp" #include +#include namespace sgns::processing { SubTaskQueueAccessorImpl::SubTaskQueueAccessorImpl( - std::shared_ptr gossipPubSub, - std::shared_ptr subTaskQueueManager, - std::shared_ptr subTaskStateStorage, - std::shared_ptr subTaskResultStorage, - std::function taskResultProcessingSink) - : m_gossipPubSub(gossipPubSub) - , m_subTaskQueueManager(subTaskQueueManager) - , m_subTaskStateStorage(subTaskStateStorage) - , m_subTaskResultStorage(subTaskResultStorage) - , m_taskResultProcessingSink(taskResultProcessingSink) + std::shared_ptr gossipPubSub, + std::shared_ptr subTaskQueueManager, + std::shared_ptr subTaskStateStorage, + std::shared_ptr subTaskResultStorage, + std::function taskResultProcessingSink ) : + m_gossipPubSub( std::move( gossipPubSub ) ), + m_subTaskQueueManager( std::move( subTaskQueueManager ) ), + m_subTaskStateStorage( std::move( subTaskStateStorage ) ), + m_subTaskResultStorage( std::move( subTaskResultStorage ) ), + m_taskResultProcessingSink( std::move( taskResultProcessingSink ) ) { // @todo replace hardcoded channel identified with an input value - m_resultChannel = std::make_shared(m_gossipPubSub, "RESULT_CHANNEL_ID"); - m_logger->debug("[CREATED] this: {}, thread_id {}", reinterpret_cast(this), std::this_thread::get_id()); + m_resultChannel = std::make_shared( m_gossipPubSub, "RESULT_CHANNEL_ID" ); + m_logger->debug( "[CREATED] this: {}, thread_id {}", reinterpret_cast( this ), std::this_thread::get_id() ); } SubTaskQueueAccessorImpl::~SubTaskQueueAccessorImpl() diff --git a/src/processing/processing_subtask_queue_channel_pubsub.cpp b/src/processing/processing_subtask_queue_channel_pubsub.cpp index 0ebacc49..385fd853 100644 --- a/src/processing/processing_subtask_queue_channel_pubsub.cpp +++ b/src/processing/processing_subtask_queue_channel_pubsub.cpp @@ -1,13 +1,13 @@ #include "processing_subtask_queue_channel_pubsub.hpp" #include +#include namespace sgns::processing { //////////////////////////////////////////////////////////////////////////////// ProcessingSubTaskQueueChannelPubSub::ProcessingSubTaskQueueChannelPubSub( - std::shared_ptr gossipPubSub, - const std::string& processingQueueChannelId) - : m_gossipPubSub(gossipPubSub) + std::shared_ptr gossipPubSub, const std::string &processingQueueChannelId ) : + m_gossipPubSub( std::move( gossipPubSub ) ) { using GossipPubSubTopic = sgns::ipfs_pubsub::GossipPubSubTopic; m_processingQueueChannel = std::make_shared(m_gossipPubSub, processingQueueChannelId); @@ -35,7 +35,7 @@ void ProcessingSubTaskQueueChannelPubSub::RequestQueueOwnership(const std::strin { // Send a request to grab a subtask queue SGProcessing::ProcessingChannelMessage message; - auto request = message.mutable_subtask_queue_request(); + auto request = message.mutable_subtask_queue_request(); request->set_node_id(nodeId); m_processingQueueChannel->Publish(message.SerializeAsString()); } diff --git a/src/processing/processing_subtask_queue_manager.cpp b/src/processing/processing_subtask_queue_manager.cpp index 69e10171..881801b4 100644 --- a/src/processing/processing_subtask_queue_manager.cpp +++ b/src/processing/processing_subtask_queue_manager.cpp @@ -1,20 +1,22 @@ #include "processing_subtask_queue_manager.hpp" +#include + namespace sgns::processing { //////////////////////////////////////////////////////////////////////////////// ProcessingSubTaskQueueManager::ProcessingSubTaskQueueManager( std::shared_ptr queueChannel, - std::shared_ptr context, - const std::string& localNodeId) - : m_queueChannel(queueChannel) - , m_context(std::move(context)) - , m_localNodeId(localNodeId) - , m_dltQueueResponseTimeout(*m_context.get()) - , m_queueResponseTimeout(boost::posix_time::seconds(5)) - , m_dltGrabSubTaskTimeout(*m_context.get()) - , m_processingQueue(localNodeId) - , m_processingTimeout(std::chrono::seconds(10)) + std::shared_ptr context, + const std::string &localNodeId ) : + m_queueChannel( std::move( queueChannel ) ), + m_context( std::move( context ) ), + m_localNodeId( localNodeId ), + m_dltQueueResponseTimeout( *m_context ), + m_queueResponseTimeout( boost::posix_time::seconds( 5 ) ), + m_dltGrabSubTaskTimeout( *m_context ), + m_processingQueue( localNodeId ), + m_processingTimeout( std::chrono::seconds( 10 ) ) { } @@ -351,7 +353,7 @@ bool ProcessingSubTaskQueueManager::IsProcessed() const void ProcessingSubTaskQueueManager::SetSubTaskQueueAssignmentEventSink( std::function&)> subTaskQueueAssignmentEventSink) { - m_subTaskQueueAssignmentEventSink = subTaskQueueAssignmentEventSink; + m_subTaskQueueAssignmentEventSink = std::move( subTaskQueueAssignmentEventSink ); if (m_subTaskQueueAssignmentEventSink) { std::unique_lock guard(m_queueMutex); diff --git a/src/processing/processors/processing_processor_mnn_posenet.cpp b/src/processing/processors/processing_processor_mnn_posenet.cpp index 63b012ed..f4d1a399 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.cpp +++ b/src/processing/processors/processing_processor_mnn_posenet.cpp @@ -109,10 +109,10 @@ namespace sgns::processing } } - MNN::Tensor MNN_PoseNet::MNNProcess( const std::vector &imgdata, - const int origwidth, - const int origheight, - const std::string &filename ) + std::unique_ptr MNN_PoseNet::MNNProcess( const std::vector &imgdata, + int origwidth, + int origheight, + const std::string &filename ) { std::vector ret_vect( imgdata ); //Get Target WIdth diff --git a/src/processing/processors/processing_processor_mnn_posenet.hpp b/src/processing/processors/processing_processor_mnn_posenet.hpp index 2de8f238..4156a022 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.hpp +++ b/src/processing/processors/processing_processor_mnn_posenet.hpp @@ -70,8 +70,10 @@ namespace sgns::processing * @param origwidth - Width of image * @param origheight - Height of image */ - std::unique_ptr MNNProcess( const std::vector &imgdata, const int origwidth, const int origheight, - const std::string filename = "" ); + std::unique_ptr MNNProcess( const std::vector &imgdata, + int origwidth, + int origheight, + const std::string &filename = "" ); std::unique_ptr>> imageData_; std::unique_ptr> modelFile_; diff --git a/src/verification/finality/impl/finality_impl.cpp b/src/verification/finality/impl/finality_impl.cpp index 15f25a8a..a7152cd5 100644 --- a/src/verification/finality/impl/finality_impl.cpp +++ b/src/verification/finality/impl/finality_impl.cpp @@ -16,35 +16,34 @@ namespace sgns::verification::finality { static size_t round_id = 0; - FinalityImpl::FinalityImpl( - std::shared_ptr app_state_manager, - std::shared_ptr environment, - std::shared_ptr storage, - std::shared_ptr crypto_provider, - //std::shared_ptr finality_api, - const crypto::ED25519Keypair &keypair, - std::shared_ptr clock, - std::shared_ptr io_context, - std::shared_ptr authority_manager) - : app_state_manager_(std::move(app_state_manager)), - environment_{std::move(environment)}, - storage_{std::move(storage)}, - crypto_provider_{std::move(crypto_provider)}, - //finality_api_{std::move(finality_api)}, - keypair_{keypair}, - clock_{std::move(clock)}, - io_context_{std::move(io_context)}, - authority_manager_(std::move(authority_manager)) { - BOOST_ASSERT(app_state_manager_ != nullptr); - BOOST_ASSERT(environment_ != nullptr); - BOOST_ASSERT(storage_ != nullptr); - BOOST_ASSERT(crypto_provider_ != nullptr); - //BOOST_ASSERT(finality_api_ != nullptr); - BOOST_ASSERT(clock_ != nullptr); - BOOST_ASSERT(io_context_ != nullptr); - BOOST_ASSERT(authority_manager_ != nullptr); - - app_state_manager_->takeControl(*this); + FinalityImpl::FinalityImpl( std::shared_ptr app_state_manager, + std::shared_ptr environment, + std::shared_ptr storage, + std::shared_ptr crypto_provider, + //std::shared_ptr finality_api, + crypto::ED25519Keypair keypair, + std::shared_ptr clock, + std::shared_ptr io_context, + std::shared_ptr authority_manager ) : + app_state_manager_( std::move( app_state_manager ) ), + environment_{ std::move( environment ) }, + storage_{ std::move( storage ) }, + crypto_provider_{ std::move( crypto_provider ) }, + keypair_{ std::move( keypair ) }, + clock_{ std::move( clock ) }, + io_context_{ std::move( io_context ) }, + authority_manager_( std::move( authority_manager ) ) + { + BOOST_ASSERT( app_state_manager_ != nullptr ); + BOOST_ASSERT( environment_ != nullptr ); + BOOST_ASSERT( storage_ != nullptr ); + BOOST_ASSERT( crypto_provider_ != nullptr ); + //BOOST_ASSERT(finality_api_ != nullptr); + BOOST_ASSERT( clock_ != nullptr ); + BOOST_ASSERT( io_context_ != nullptr ); + BOOST_ASSERT( authority_manager_ != nullptr ); + + app_state_manager_->takeControl( *this ); } bool FinalityImpl::prepare() { diff --git a/src/verification/finality/impl/finality_impl.hpp b/src/verification/finality/impl/finality_impl.hpp index e401411d..cdf3a8b8 100644 --- a/src/verification/finality/impl/finality_impl.hpp +++ b/src/verification/finality/impl/finality_impl.hpp @@ -26,15 +26,15 @@ namespace sgns::verification::finality { public: ~FinalityImpl() override = default; //TODO - Check if finalityAPI needed. Removed due to binaryen - FinalityImpl(std::shared_ptr app_state_manager, - std::shared_ptr environment, - std::shared_ptr storage, - std::shared_ptr crypto_provider, - //std::shared_ptr finality_api, - const crypto::ED25519Keypair &keypair, - std::shared_ptr clock, - std::shared_ptr io_context, - std::shared_ptr authority_manager); + FinalityImpl( std::shared_ptr app_state_manager, + std::shared_ptr environment, + std::shared_ptr storage, + std::shared_ptr crypto_provider, + crypto::ED25519Keypair keypair, + //std::shared_ptr finality_api, + std::shared_ptr clock, + std::shared_ptr io_context, + std::shared_ptr authority_manager ); /** @see AppStateManager::takeControl */ bool prepare(); diff --git a/src/verification/production/impl/production_impl.cpp b/src/verification/production/impl/production_impl.cpp index 3c476ffc..b36eaf26 100644 --- a/src/verification/production/impl/production_impl.cpp +++ b/src/verification/production/impl/production_impl.cpp @@ -4,10 +4,9 @@ #include #include +#include -#include "blockchain/block_tree_error.hpp" #include "base/buffer.hpp" -#include "verification/production/production_error.hpp" #include "verification/production/impl/production_digests_util.hpp" #include "verification/production/impl/threshold_util.hpp" #include "verification/production/types/production_block_header.hpp" From cd760eb84df77df3472599eb6cd4ed830efa7ca3 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:23:30 -0300 Subject: [PATCH 09/30] Use static when possible --- src/account/GeniusAccount.hpp | 2 +- src/account/GeniusNode.hpp | 4 ++-- .../author/requests/pending_extrinsics.hpp | 2 +- src/api/service/system/requests/chain.hpp | 2 +- src/api/service/system/requests/name.hpp | 2 +- src/api/service/system/requests/version.hpp | 6 +++--- src/api/transport/impl/http/http_session.hpp | 4 +--- src/application/impl/app_config_impl.hpp | 15 ++++++--------- .../supergenius_trie/supergenius_trie_impl.cpp | 2 +- .../supergenius_trie/supergenius_trie_impl.hpp | 3 +-- .../finality/impl/voting_round_impl.hpp | 2 +- 11 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/account/GeniusAccount.hpp b/src/account/GeniusAccount.hpp index d9a22096..44b2bf74 100644 --- a/src/account/GeniusAccount.hpp +++ b/src/account/GeniusAccount.hpp @@ -148,7 +148,7 @@ namespace sgns private: uint64_t balance; - outcome::result GenerateGeniusAddress( const std::string &base_path ) + static outcome::result GenerateGeniusAddress( const std::string &base_path ) { auto component_factory = SINGLETONINSTANCE( CComponentFactory ); OUTCOME_TRY( ( auto &&, icomponent ), component_factory->GetComponent( "LocalSecureStorage" ) ); diff --git a/src/account/GeniusNode.hpp b/src/account/GeniusNode.hpp index 49dba384..773689a6 100644 --- a/src/account/GeniusNode.hpp +++ b/src/account/GeniusNode.hpp @@ -101,10 +101,10 @@ namespace sgns DevConfig_st dev_config_; - uint16_t GenerateRandomPort( const std::string &address ); + static uint16_t GenerateRandomPort( const std::string &address ); void ProcessingDone( const std::string &subtask_id ); - void ProcessingError( const std::string &subtask_id ); + static void ProcessingError( const std::string &subtask_id ); void ProcessingFinished( const std::string &task_id, const std::set &subtasks_ids ); static constexpr std::string_view db_path_ = "bc-%d/"; diff --git a/src/api/service/author/requests/pending_extrinsics.hpp b/src/api/service/author/requests/pending_extrinsics.hpp index 4d9f34be..5f04602a 100644 --- a/src/api/service/author/requests/pending_extrinsics.hpp +++ b/src/api/service/author/requests/pending_extrinsics.hpp @@ -14,7 +14,7 @@ namespace sgns::api::author::request { explicit PendingExtrinsics(std::shared_ptr api) : api_(std::move(api)){}; - outcome::result init(const jsonrpc::Request::Parameters ¶ms); + static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); outcome::result> execute(); diff --git a/src/api/service/system/requests/chain.hpp b/src/api/service/system/requests/chain.hpp index faed7347..d7d03722 100644 --- a/src/api/service/system/requests/chain.hpp +++ b/src/api/service/system/requests/chain.hpp @@ -25,7 +25,7 @@ namespace sgns::api::system::request { explicit Chain(std::shared_ptr api); ~Chain() = default; - outcome::result init(const jsonrpc::Request::Parameters ¶ms); + static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); outcome::result execute(); diff --git a/src/api/service/system/requests/name.hpp b/src/api/service/system/requests/name.hpp index 134612f6..c090c00b 100644 --- a/src/api/service/system/requests/name.hpp +++ b/src/api/service/system/requests/name.hpp @@ -24,7 +24,7 @@ namespace sgns::api::system::request { explicit Name(std::shared_ptr api); ~Name() = default; - outcome::result init(const jsonrpc::Request::Parameters ¶ms); + static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); outcome::result execute(); diff --git a/src/api/service/system/requests/version.hpp b/src/api/service/system/requests/version.hpp index c84fd487..b6e54440 100644 --- a/src/api/service/system/requests/version.hpp +++ b/src/api/service/system/requests/version.hpp @@ -24,11 +24,11 @@ namespace sgns::api::system::request { explicit Version(std::shared_ptr api); ~Version() = default; - outcome::result init(const jsonrpc::Request::Parameters ¶ms); + static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); - outcome::result execute(); + static outcome::result execute(); - private: +private: std::shared_ptr api_; }; diff --git a/src/api/transport/impl/http/http_session.hpp b/src/api/transport/impl/http/http_session.hpp index 320576a3..681740af 100644 --- a/src/api/transport/impl/http/http_session.hpp +++ b/src/api/transport/impl/http/http_session.hpp @@ -126,9 +126,7 @@ namespace sgns::api { * otherwise * @return composed request */ - auto makeBadResponse(std::string_view message, - unsigned version, - bool keep_alive); + static auto makeBadResponse( std::string_view message, unsigned version, bool keep_alive ); /** * @brief reports error code and message diff --git a/src/application/impl/app_config_impl.hpp b/src/application/impl/app_config_impl.hpp index dc18c526..f442022e 100644 --- a/src/application/impl/app_config_impl.hpp +++ b/src/application/impl/app_config_impl.hpp @@ -83,19 +83,16 @@ namespace sgns::application { void validate_config(AppConfiguration::LoadScheme scheme); void read_config_from_file(const std::string &filepath); - bool load_str(const rapidjson::Value &val, - char const *name, - std::string &target); - bool load_u16(const rapidjson::Value &val, - char const *name, - uint16_t &target); - bool load_bool(const rapidjson::Value &val, char const *name, bool &target); + static bool load_str( const rapidjson::Value &val, char const *name, std::string &target ); + static bool load_u16( const rapidjson::Value &val, char const *name, uint16_t &target ); + static bool load_bool( const rapidjson::Value &val, char const *name, bool &target ); boost::asio::ip::tcp::endpoint get_endpoint_from(const std::string &host, uint16_t port); - FilePtr open_file(const std::string &filepath); - public: + static FilePtr open_file( const std::string &filepath ); + +public: explicit AppConfigurationImpl(base::Logger logger); ~AppConfigurationImpl() override = default; diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp b/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp index 141af2b7..6256d2f8 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp @@ -406,7 +406,7 @@ namespace sgns::storage::trie { } uint32_t SuperGeniusTrieImpl::getCommonPrefixLength(const KeyNibbles &pref1, - const KeyNibbles &pref2) const { + const KeyNibbles &pref2) { size_t length = 0; auto min = pref1.size(); diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp b/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp index 1124a428..f8d10a24 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp @@ -85,8 +85,7 @@ namespace sgns::storage::trie { outcome::result detachNode(const NodePtr &parent, const KeyNibbles &prefix_nibbles); - uint32_t getCommonPrefixLength(const KeyNibbles &pref1, - const KeyNibbles &pref2) const; + static uint32_t getCommonPrefixLength( const KeyNibbles &pref1, const KeyNibbles &pref2 ); outcome::result retrieveChild(BranchPtr parent, uint8_t idx) const override; diff --git a/src/verification/finality/impl/voting_round_impl.hpp b/src/verification/finality/impl/voting_round_impl.hpp index 8e202639..f354c8d4 100644 --- a/src/verification/finality/impl/voting_round_impl.hpp +++ b/src/verification/finality/impl/voting_round_impl.hpp @@ -184,7 +184,7 @@ namespace sgns::verification::finality { bool isPrimary() const; /// Calculate threshold from the total weights of voters - size_t getThreshold(const std::shared_ptr &voters); + static size_t getThreshold( const std::shared_ptr &voters ); /// Triggered when we receive \param signed_prevote for the current peer void onSignedPrevote(const SignedMessage &signed_prevote); From e70cf46218154d4649894587f44d488606c6ec26 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:22:35 -0300 Subject: [PATCH 10/30] Use const when possible --- src/account/TransferTransaction.cpp | 4 ++-- src/account/TransferTransaction.hpp | 4 ++-- src/crdt/crdt_options.hpp | 2 +- src/processing/processing_imagesplit.cpp | 14 +++++++------- src/processing/processing_imagesplit.hpp | 16 ++++++++-------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/account/TransferTransaction.cpp b/src/account/TransferTransaction.cpp index 8057276b..4ad3bc67 100644 --- a/src/account/TransferTransaction.cpp +++ b/src/account/TransferTransaction.cpp @@ -78,12 +78,12 @@ namespace sgns return TransferTransaction( outputs, inputs, tx_struct.dag_struct() ); // Return new instance } - std::vector TransferTransaction::GetDstInfos() + std::vector TransferTransaction::GetDstInfos() const { return outputs_; } - std::vector TransferTransaction::GetInputInfos() + std::vector TransferTransaction::GetInputInfos() const { return input_tx_; } diff --git a/src/account/TransferTransaction.hpp b/src/account/TransferTransaction.hpp index 527b064d..7530e610 100644 --- a/src/account/TransferTransaction.hpp +++ b/src/account/TransferTransaction.hpp @@ -44,8 +44,8 @@ namespace sgns */ static TransferTransaction DeSerializeByteVector( const std::vector &data ); - std::vector GetDstInfos(); - std::vector GetInputInfos(); + std::vector GetDstInfos() const; + std::vector GetInputInfos() const; std::string GetTransactionSpecificPath() override { diff --git a/src/crdt/crdt_options.hpp b/src/crdt/crdt_options.hpp index 7c87916d..2783de52 100644 --- a/src/crdt/crdt_options.hpp +++ b/src/crdt/crdt_options.hpp @@ -68,7 +68,7 @@ namespace sgns::crdt } /** Verifies CrdtOptions */ - outcome::result Verify() + outcome::result Verify() const { if (rebroadcastIntervalMilliseconds <= 0) { diff --git a/src/processing/processing_imagesplit.cpp b/src/processing/processing_imagesplit.cpp index bfd850c3..3669e9fe 100644 --- a/src/processing/processing_imagesplit.cpp +++ b/src/processing/processing_imagesplit.cpp @@ -125,37 +125,37 @@ namespace sgns::processing } } - uint32_t ImageSplitter::GetPartSize(int part) + uint32_t ImageSplitter::GetPartSize(int part) const { return splitparts_.at(part).size(); } - uint32_t ImageSplitter::GetPartStride(int part) + uint32_t ImageSplitter::GetPartStride(int part) const { return chunkWidthActual_.at(part); } - int ImageSplitter::GetPartWidthActual(int part) + int ImageSplitter::GetPartWidthActual(int part) const { return chunkWidthActual_.at(part); } - int ImageSplitter::GetPartHeightActual(int part) + int ImageSplitter::GetPartHeightActual(int part) const { return chunkHeightActual_.at(part); } - size_t ImageSplitter::GetPartCount() + size_t ImageSplitter::GetPartCount() const { return splitparts_.size(); } - size_t ImageSplitter::GetImageSize() + size_t ImageSplitter::GetImageSize() const { return imageSize; } - libp2p::multi::ContentIdentifier ImageSplitter::GetPartCID(int part) + libp2p::multi::ContentIdentifier ImageSplitter::GetPartCID(int part) const { return cids_.at(part); } diff --git a/src/processing/processing_imagesplit.hpp b/src/processing/processing_imagesplit.hpp index fdead974..55f3cda8 100644 --- a/src/processing/processing_imagesplit.hpp +++ b/src/processing/processing_imagesplit.hpp @@ -70,37 +70,37 @@ namespace sgns::processing /** Get index of a part by CID * @param cid - CID of part */ - size_t GetPartByCid( const libp2p::multi::ContentIdentifier &cid ); + size_t GetPartByCid( const libp2p::multi::ContentIdentifier &cid ) const; /** Get size of part in bytes * @param part - index */ - uint32_t GetPartSize(int part); + uint32_t GetPartSize( int part ) const; /** Get stride of part * @param part - index */ - uint32_t GetPartStride(int part); + uint32_t GetPartStride( int part ) const; /** Get Width of part * @param part - index */ - int GetPartWidthActual(int part); + int GetPartWidthActual( int part ) const; /** Get Height of part * @param part - index */ - int GetPartHeightActual(int part); + int GetPartHeightActual( int part ) const; /** Get total number of parts */ - size_t GetPartCount(); + size_t GetPartCount() const; /** Get image size */ - size_t GetImageSize(); + size_t GetImageSize() const; - libp2p::multi::ContentIdentifier GetPartCID(int part); + libp2p::multi::ContentIdentifier GetPartCID( int part ) const; private: /** Function that actually splits image data From 16950c014dbecc87b857a0ecb63a8446f65f754c Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:28:04 -0300 Subject: [PATCH 11/30] Removes size check to use empty when possible --- src/account/TransactionManager.cpp | 6 +++--- src/account/UTXOTxParameters.hpp | 7 ++----- src/crdt/globaldb/globaldb.cpp | 12 ++++++------ src/crdt/impl/hierarchical_key.cpp | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/account/TransactionManager.cpp b/src/account/TransactionManager.cpp index 4eadfafe..dda320af 100644 --- a/src/account/TransactionManager.cpp +++ b/src/account/TransactionManager.cpp @@ -128,7 +128,7 @@ namespace sgns bool TransactionManager::ReleaseEscrow( const std::string &job_id, const bool &pay ) { bool ret = false; - if ( escrow_ctrl_m.size() ) + if ( !escrow_ctrl_m.empty() ) { //TODO - hash in string form in escrolcontrol auto hash_data = hasher_m->blake2b_256( std::vector{ job_id.begin(), job_id.end() } ); @@ -400,7 +400,7 @@ namespace sgns { auto dest_infos = tx.GetUTXOParameters(); - if ( dest_infos.outputs_.size() ) + if ( !dest_infos.outputs_.empty() ) { //The first is the escrow, second is the change (might not happen) auto hash = ( base::Hash256::fromReadableString( tx.dag_st.data_hash() ) ).value(); @@ -427,7 +427,7 @@ namespace sgns void TransactionManager::ParseProcessingTransaction( const std::vector &transaction_data ) { - if ( escrow_ctrl_m.size() ) + if ( !escrow_ctrl_m.empty() ) { ProcessingTransaction tx = ProcessingTransaction::DeSerializeByteVector( transaction_data ); diff --git a/src/account/UTXOTxParameters.hpp b/src/account/UTXOTxParameters.hpp index 2bf036cb..ca652012 100644 --- a/src/account/UTXOTxParameters.hpp +++ b/src/account/UTXOTxParameters.hpp @@ -48,7 +48,7 @@ namespace sgns { UTXOTxParameters instance( utxo_pool, src_address, amount, dest_address, std::move( signature ) ); - if ( instance.inputs_.size() ) + if ( !instance.inputs_.empty() ) { return instance; } @@ -65,14 +65,11 @@ namespace sgns { UTXOTxParameters instance( utxo_pool, src_address, destinations, std::move( signature ) ); - if ( instance.inputs_.size() ) + if ( !instance.inputs_.empty() ) { return instance; } - else - { return outcome::failure( boost::system::error_code{} ); - } } static std::vector UpdateUTXOList( const std::vector &utxo_pool, diff --git a/src/crdt/globaldb/globaldb.cpp b/src/crdt/globaldb/globaldb.cpp index 3f5d835b..677dce6d 100644 --- a/src/crdt/globaldb/globaldb.cpp +++ b/src/crdt/globaldb/globaldb.cpp @@ -35,7 +35,7 @@ using GossipPubSubTopic = sgns::ipfs_pubsub::GossipPubSubTopic; GlobalDB::GlobalDB( std::shared_ptr context, std::string databasePath, int dagSyncPort, - std::shared_ptr broadcastChannel, + std::shared_ptr broadcastChannel, std::vector gsaddresses ) : m_context( std::move( context ) ), m_databasePath( std::move( databasePath ) ), @@ -65,8 +65,7 @@ std::string GetLocalIP(boost::asio::io_context& io) return addr; } - -outcome::result GlobalDB::Init(std::shared_ptr crdtOptions) +outcome::result GlobalDB::Init( std::shared_ptr crdtOptions ) { std::shared_ptr dataStore = nullptr; auto databasePathAbsolute = boost::filesystem::absolute(m_databasePath).string(); @@ -87,7 +86,7 @@ outcome::result GlobalDB::Init(std::shared_ptr crdtOptions) } boost::filesystem::path keyPath = databasePathAbsolute + "/key"; - KeyPairFileStorage keyPairStorage(keyPath); + KeyPairFileStorage keyPairStorage( keyPath ); auto keyPair = keyPairStorage.GetKeyPair(); // injector creates and ties dependent objects auto injector = libp2p::injector::makeHostInjector( @@ -244,14 +243,15 @@ outcome::result GlobalDB::KeyToString(const Buffer& key) const auto sKey = std::string(key.toString()); - size_t prefixPos = (keysPrefix.value().size() != 0) ? sKey.find(keysPrefix.value(), 0) : 0; + size_t prefixPos = ( !keysPrefix.value().empty() ) ? sKey.find( keysPrefix.value(), 0 ) : 0; if (prefixPos != 0) { return outcome::failure(boost::system::error_code{}); } size_t keyPos = keysPrefix.value().size(); - auto suffixPos = (valueSuffix.value().size() != 0) ? sKey.rfind(valueSuffix.value(), std::string::npos) : sKey.size(); + auto suffixPos = + ( !valueSuffix.value().empty() ) ? sKey.rfind( valueSuffix.value(), std::string::npos ) : sKey.size(); if ((suffixPos == std::string::npos) || (suffixPos < keyPos)) { return outcome::failure(boost::system::error_code{}); diff --git a/src/crdt/impl/hierarchical_key.cpp b/src/crdt/impl/hierarchical_key.cpp index 1f2b06da..10926c9b 100644 --- a/src/crdt/impl/hierarchical_key.cpp +++ b/src/crdt/impl/hierarchical_key.cpp @@ -28,7 +28,7 @@ namespace sgns::crdt HierarchicalKey HierarchicalKey::ChildString(const std::string& s) const { std::string childString = s; - if (childString.size() > 0 && childString[0] != '/') + if ( !childString.empty() && childString[0] != '/' ) { childString.insert(childString.begin(), '/'); } From c3090bd9edb32498e87ee6a98ba5b9597de390a4 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:30:52 -0300 Subject: [PATCH 12/30] Removed else after return else after return --- src/account/GeniusNode.cpp | 24 ++++++--------- src/account/UTXOTxParameters.hpp | 10 +++---- src/base/util.hpp | 5 ++-- src/processing/impl/processing_core_impl.cpp | 29 ++++++++----------- src/processing/impl/processing_core_impl.hpp | 6 ++-- .../impl/processing_task_queue_impl.cpp | 14 ++++----- src/processing/processing_engine.cpp | 6 ++-- src/processing/processing_imagesplit.cpp | 2 -- src/processing/processing_subtask_queue.cpp | 21 +++++--------- ...processing_subtask_queue_accessor_impl.cpp | 5 +++- src/singleton/CComponentFactory.cpp | 6 ++-- 11 files changed, 51 insertions(+), 77 deletions(-) diff --git a/src/account/GeniusNode.cpp b/src/account/GeniusNode.cpp index 9350296a..d83830ae 100644 --- a/src/account/GeniusNode.cpp +++ b/src/account/GeniusNode.cpp @@ -301,14 +301,10 @@ namespace sgns std::cout << "Buffer from AsyncIO is 0" << std::endl; return; } - else - { - //Process settings json + //Process settings json - mainbuffers->first.insert( mainbuffers->first.end(), buffers->first.begin(), buffers->first.end() ); - mainbuffers->second.insert( - mainbuffers->second.end(), buffers->second.begin(), buffers->second.end() ); - } + mainbuffers->first.insert( mainbuffers->first.end(), buffers->first.begin(), buffers->first.end() ); + mainbuffers->second.insert( mainbuffers->second.end(), buffers->second.begin(), buffers->second.end() ); }, "file" ); ioc->reset(); @@ -327,7 +323,7 @@ namespace sgns if ( index == std::string::npos ) { std::cerr << "settings.json doesn't exist" << std::endl; - return std::vector(); + return {}; } std::vector &jsonData = mainbuffers->second[index]; std::string jsonString( jsonData.begin(), jsonData.end() ); @@ -335,7 +331,7 @@ namespace sgns document.Parse( jsonString.c_str() ); // Extract input image name - std::string inputImage = ""; + std::string inputImage; if ( document.HasMember( "input" ) && document["input"].IsObject() ) { const auto &input = document["input"]; @@ -347,7 +343,7 @@ namespace sgns else { std::cerr << "No Input file" << std::endl; - return std::vector(); + return {}; } } @@ -380,12 +376,10 @@ namespace sgns std::cout << "Buffer from AsyncIO is 0" << std::endl; return; } - else - { - //Process settings json - imageData.assign( buffers->second[0].begin(), buffers->second[0].end() ); - } + //Process settings json + + imageData.assign( buffers->second[0].begin(), buffers->second[0].end() ); }, "file" ); ioc->reset(); diff --git a/src/account/UTXOTxParameters.hpp b/src/account/UTXOTxParameters.hpp index ca652012..03cddf3d 100644 --- a/src/account/UTXOTxParameters.hpp +++ b/src/account/UTXOTxParameters.hpp @@ -52,10 +52,8 @@ namespace sgns { return instance; } - else - { - return outcome::failure( boost::system::error_code{} ); - } + + return outcome::failure( boost::system::error_code{} ); } static outcome::result create( const std::vector &utxo_pool, @@ -69,7 +67,7 @@ namespace sgns { return instance; } - return outcome::failure( boost::system::error_code{} ); + return outcome::failure( boost::system::error_code{} ); } static std::vector UpdateUTXOList( const std::vector &utxo_pool, @@ -125,7 +123,7 @@ namespace sgns break; } InputUTXOInfo curr_input{ utxo.GetTxID(), utxo.GetOutputIdx(), std::move( signature ) }; - remain -= utxo.GetAmount(); + remain -= static_cast( utxo.GetAmount() ); inputs_.push_back( curr_input ); } diff --git a/src/base/util.hpp b/src/base/util.hpp index eb6b1634..e6d805e0 100644 --- a/src/base/util.hpp +++ b/src/base/util.hpp @@ -175,10 +175,9 @@ namespace sgns { return out_vect.begin(); } - else - { + return out_vect.end(); - } + }; for ( std::size_t i = 0; i < char_ptr_size; i += num_nibbles_resolution ) diff --git a/src/processing/impl/processing_core_impl.cpp b/src/processing/impl/processing_core_impl.cpp index b8e54213..009395ee 100644 --- a/src/processing/impl/processing_core_impl.cpp +++ b/src/processing/impl/processing_core_impl.cpp @@ -84,13 +84,12 @@ namespace sgns::processing std::cout << "Buffer from AsyncIO is 0" << std::endl; return; } - else { //Process settings json + mainbuffers->first.insert( mainbuffers->first.end(), buffers->first.begin(), buffers->first.end() ); + mainbuffers->second.insert( + mainbuffers->second.end(), buffers->second.begin(), buffers->second.end() ); - mainbuffers->first.insert(mainbuffers->first.end(), buffers->first.begin(), buffers->first.end()); - mainbuffers->second.insert(mainbuffers->second.end(), buffers->second.begin(), buffers->second.end()); - } }, "file"); ioc->reset(); ioc->run(); @@ -121,7 +120,7 @@ namespace sgns::processing //Parse json to look for model/image rapidjson::Document document; document.Parse(jsonString.c_str()); - std::string modelFile = ""; + std::string modelFile; // Extract model name if (document.HasMember("model") && document["model"].IsObject()) { const auto& model = document["model"]; @@ -135,7 +134,7 @@ namespace sgns::processing } } // Extract input image name - std::string inputImage = ""; + std::string inputImage; if (document.HasMember("input") && document["input"].IsObject()) { const auto& input = document["input"]; if (input.HasMember("image") && input["image"].IsString()) { @@ -213,20 +212,16 @@ namespace sgns::processing { return true; } - else - { - std::cerr << "No processor by name in settings json" << std::endl; - return false; - } - } - else { - std::cerr << "Model name not found or not a string" << std::endl; + + std::cerr << "No processor by name in settings json" << std::endl; return false; } - } - else { - std::cerr << "Model object not found or not an object" << std::endl; + + std::cerr << "Model name not found or not a string" << std::endl; return false; } + + std::cerr << "Model object not found or not an object" << std::endl; + return false; } } \ No newline at end of file diff --git a/src/processing/impl/processing_core_impl.hpp b/src/processing/impl/processing_core_impl.hpp index 28d0d1d5..29a65d19 100644 --- a/src/processing/impl/processing_core_impl.hpp +++ b/src/processing/impl/processing_core_impl.hpp @@ -59,10 +59,8 @@ namespace sgns::processing m_processor = factoryFunction->second(); return true; } - else { - std::cerr << "Unknown processor name: " << name << std::endl; - return false; - } + std::cerr << "Unknown processor name: " << name << std::endl; + return false; } /** Get processing type from json data to set processor diff --git a/src/processing/impl/processing_task_queue_impl.cpp b/src/processing/impl/processing_task_queue_impl.cpp index a2ba9b80..4c0d47ca 100644 --- a/src/processing/impl/processing_task_queue_impl.cpp +++ b/src/processing/impl/processing_task_queue_impl.cpp @@ -79,11 +79,9 @@ namespace sgns::processing return true; } - else - { - m_logger->debug( "NO_SUBTASKS_FOUND. TaskId {}", taskId ); - return false; - } + + m_logger->debug( "NO_SUBTASKS_FOUND. TaskId {}", taskId ); + return false; } outcome::result> ProcessingTaskQueueImpl::GrabTask() @@ -150,10 +148,8 @@ namespace sgns::processing { return std::make_pair( task.ipfs_block_id(), task ); } - else - { - return outcome::failure( boost::system::error_code{} ); - } + + return outcome::failure( boost::system::error_code{} ); } bool ProcessingTaskQueueImpl::CompleteTask( const std::string &taskKey, const SGProcessing::TaskResult &taskResult ) diff --git a/src/processing/processing_engine.cpp b/src/processing/processing_engine.cpp index d09d5fda..7dec90e1 100644 --- a/src/processing/processing_engine.cpp +++ b/src/processing/processing_engine.cpp @@ -8,8 +8,8 @@ namespace sgns::processing { ProcessingEngine::ProcessingEngine( std::string nodeId, std::shared_ptr processingCore ) : m_nodeId( std::move( nodeId ) ), m_processingCore( std::move( processingCore ) ) -{ -} + { + } ProcessingEngine::~ProcessingEngine() { @@ -43,7 +43,7 @@ void ProcessingEngine::StopQueueProcessing() bool ProcessingEngine::IsQueueProcessingStarted() const { std::lock_guard queueGuard(m_mutexSubTaskQueue); - return (m_subTaskQueueAccessor.get() != nullptr); + return m_subTaskQueueAccessor != nullptr; } void ProcessingEngine::OnSubTaskGrabbed(boost::optional subTask) diff --git a/src/processing/processing_imagesplit.cpp b/src/processing/processing_imagesplit.cpp index 3669e9fe..827b0e33 100644 --- a/src/processing/processing_imagesplit.cpp +++ b/src/processing/processing_imagesplit.cpp @@ -71,10 +71,8 @@ namespace sgns::processing if (index < splitparts_.size()) { return index; } - else { //Index out of range return -1; - } } void ImageSplitter::SplitImageData() diff --git a/src/processing/processing_subtask_queue.cpp b/src/processing/processing_subtask_queue.cpp index 72d71f6b..2d1ee5d9 100644 --- a/src/processing/processing_subtask_queue.cpp +++ b/src/processing/processing_subtask_queue.cpp @@ -22,8 +22,7 @@ void ProcessingSubTaskQueue::CreateQueue( bool ProcessingSubTaskQueue::UpdateQueue( SGProcessing::ProcessingQueue* queue, const std::vector& enabledItemIndices) { - if (!m_queue - || (m_queue->last_update_timestamp() <= queue->last_update_timestamp())) + if ( ( m_queue == nullptr ) || ( m_queue->last_update_timestamp() <= queue->last_update_timestamp() ) ) { m_queue = queue; m_enabledItemIndices = enabledItemIndices; @@ -121,11 +120,9 @@ bool ProcessingSubTaskQueue::RollbackOwnership() ChangeOwnershipTo(m_localNodeId); return true; } - else - { - // Another node should take the ownership - return false; - } + + // Another node should take the ownership + return false; } } } @@ -144,11 +141,9 @@ bool ProcessingSubTaskQueue::RollbackOwnership() ChangeOwnershipTo(m_localNodeId); return true; } - else - { - // Another node should take the ownership - return false; - } + + // Another node should take the ownership + return false; } } } @@ -161,7 +156,7 @@ bool ProcessingSubTaskQueue::RollbackOwnership() bool ProcessingSubTaskQueue::HasOwnership() const { - return (m_queue && m_queue->owner_node_id() == m_localNodeId); + return ( m_queue != nullptr ) && m_queue->owner_node_id() == m_localNodeId; } bool ProcessingSubTaskQueue::UnlockExpiredItems(std::chrono::system_clock::duration expirationTimeout) diff --git a/src/processing/processing_subtask_queue_accessor_impl.cpp b/src/processing/processing_subtask_queue_accessor_impl.cpp index 975d3e4f..982b489b 100644 --- a/src/processing/processing_subtask_queue_accessor_impl.cpp +++ b/src/processing/processing_subtask_queue_accessor_impl.cpp @@ -129,7 +129,10 @@ void SubTaskQueueAccessorImpl::CompleteSubTask(const std::string& subTaskId, con void SubTaskQueueAccessorImpl::OnResultReceived(SGProcessing::SubTaskResult&& subTaskResult) { - if (!m_subTaskQueueManager->IsQueueInit()) return; + if ( !m_subTaskQueueManager->IsQueueInit() ) + { + return; + } std::string subTaskId = subTaskResult.subtaskid(); // Results accumulation diff --git a/src/singleton/CComponentFactory.cpp b/src/singleton/CComponentFactory.cpp index 8ac7c535..b5d13e73 100644 --- a/src/singleton/CComponentFactory.cpp +++ b/src/singleton/CComponentFactory.cpp @@ -41,8 +41,6 @@ outcome::result> CComponentFactory::GetComponent( { return outcome::failure( boost::system::error_code{} ); } - else - { - return ComponentTable[key]; - } + + return ComponentTable[key]; } From dc9a1f9e19ec00d3cb16fabd978929648f469a1e Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:32:39 -0300 Subject: [PATCH 13/30] Use `emplace` when possible --- src/blockchain/impl/block_tree_impl.cpp | 3 +-- src/crdt/globaldb/pubsub_broadcaster.cpp | 2 +- src/crdt/impl/graphsync_dagsyncer.cpp | 20 +++++++++++-------- src/processing/processing_imagesplit.cpp | 6 ++---- ...processing_subtask_queue_accessor_impl.cpp | 2 +- .../supergenius_trie_impl.cpp | 2 +- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/blockchain/impl/block_tree_impl.cpp b/src/blockchain/impl/block_tree_impl.cpp index 1996e918..d78452a4 100644 --- a/src/blockchain/impl/block_tree_impl.cpp +++ b/src/blockchain/impl/block_tree_impl.cpp @@ -474,8 +474,7 @@ namespace sgns::blockchain { leaf_depths.reserve(leaves.size()); for (auto &leaf : leaves) { auto leaf_node = tree_->getByHash(leaf); - leaf_depths.emplace_back( - primitives::BlockInfo{leaf_node->depth, leaf_node->block_hash}); + leaf_depths.emplace_back( leaf_node->depth, leaf_node->block_hash ); } std::sort(leaf_depths.begin(), leaf_depths.end(), diff --git a/src/crdt/globaldb/pubsub_broadcaster.cpp b/src/crdt/globaldb/pubsub_broadcaster.cpp index 265cc998..495ee898 100644 --- a/src/crdt/globaldb/pubsub_broadcaster.cpp +++ b/src/crdt/globaldb/pubsub_broadcaster.cpp @@ -19,7 +19,7 @@ namespace sgns::crdt if ( peerId.has_value() ) { std::scoped_lock lock( mutex_ ); - listOfMessages_.push( std::make_tuple( std::move( peerId.value() ), std::move( cid ) ) ); + listOfMessages_.emplace( std::move( peerId.value() ), std::move( cid ) ); } } } ); diff --git a/src/crdt/impl/graphsync_dagsyncer.cpp b/src/crdt/impl/graphsync_dagsyncer.cpp index 38e6cdd1..0ede0b09 100644 --- a/src/crdt/impl/graphsync_dagsyncer.cpp +++ b/src/crdt/impl/graphsync_dagsyncer.cpp @@ -1,6 +1,7 @@ #include "crdt/graphsync_dagsyncer.hpp" #include +#include #include namespace sgns::crdt @@ -51,20 +52,23 @@ outcome::result>> Graphsy auto result = std::make_shared>>(); std::vector extensions; ResponseMetadata response_metadata{}; - Extension response_metadata_extension = ipfs_lite::ipfs::graphsync::encodeResponseMetadata(response_metadata); + Extension response_metadata_extension = ipfs_lite::ipfs::graphsync::encodeResponseMetadata( response_metadata ); extensions.push_back(response_metadata_extension); std::vector cids; - Extension do_not_send_cids_extension = ipfs_lite::ipfs::graphsync::encodeDontSendCids(cids); + Extension do_not_send_cids_extension = ipfs_lite::ipfs::graphsync::encodeDontSendCids( cids ); extensions.push_back(do_not_send_cids_extension); - auto subscription = graphsync_->makeRequest(peer, std::move(address), root_cid, {}, extensions, - std::bind(&GraphsyncDAGSyncer::RequestProgressCallback, this, std::placeholders::_1, std::placeholders::_2)); + auto subscription = graphsync_->makeRequest( + peer, + std::move( address ), + root_cid, + {}, + extensions, + std::bind( &GraphsyncDAGSyncer::RequestProgressCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); // keeping subscriptions alive, otherwise they cancel themselves - requests_.insert(std::make_pair(root_cid, std::make_tuple( - std::shared_ptr(new Subscription(std::move(subscription))), - result))); - + requests_.insert( std::make_pair( + root_cid, std::make_tuple( std::make_shared( std::move( subscription ) ), result ) ) ); return result->get_future(); } diff --git a/src/processing/processing_imagesplit.cpp b/src/processing/processing_imagesplit.cpp index 827b0e33..55da828c 100644 --- a/src/processing/processing_imagesplit.cpp +++ b/src/processing/processing_imagesplit.cpp @@ -115,11 +115,9 @@ namespace sgns::processing SHA256_Update(&sha256, chunkBuffer.data(), chunkBuffer.size()); SHA256_Final(shahash.data(), &sha256); auto hash = libp2p::multi::Multihash::create(libp2p::multi::HashType::sha256, shahash); - cids_.push_back(libp2p::multi::ContentIdentifier( - libp2p::multi::ContentIdentifier::Version::V0, + cids_.emplace_back( libp2p::multi::ContentIdentifier::Version::V0, libp2p::multi::MulticodecType::Code::DAG_PB, - hash.value() - )); + hash.value() ); } } diff --git a/src/processing/processing_subtask_queue_accessor_impl.cpp b/src/processing/processing_subtask_queue_accessor_impl.cpp index 982b489b..6f471e15 100644 --- a/src/processing/processing_subtask_queue_accessor_impl.cpp +++ b/src/processing/processing_subtask_queue_accessor_impl.cpp @@ -199,7 +199,7 @@ std::vector> SubTaskQueueAc std::vector> results; for (auto& item : m_results) { - results.push_back({ item.first, item.second }); + results.emplace_back( item.first, item.second ); } std::sort(results.begin(), results.end(), [](const std::tuple& v1, diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp b/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp index 6256d2f8..31b5c984 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp @@ -240,7 +240,7 @@ namespace sgns::storage::trie { auto parent_as_branch = std::dynamic_pointer_cast(parent); OUTCOME_TRY((auto &&, n), retrieveChild(parent_as_branch, key_nibbles[length])); OUTCOME_TRY((auto &&, path), getPath(n, key_nibbles.subspan(length + 1))); - path.push_front({parent_as_branch, key_nibbles[length]}); + path.emplace_front( parent_as_branch, key_nibbles[length] ); return std::move(path); } case T::Leaf: From cd5d25d06491c1cdcde4da96957f1cd8987f9c40 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:33:36 -0300 Subject: [PATCH 14/30] Use enhanced for loops --- src/primitives/block.hpp | 5 ++-- src/processing/processing_service.cpp | 19 ++++++++----- ...processing_subtask_queue_accessor_impl.cpp | 11 ++++---- .../processing_subtask_queue_manager.cpp | 27 ++++++++++--------- src/verification/production/types/epoch.hpp | 4 +-- 5 files changed, 38 insertions(+), 28 deletions(-) diff --git a/src/primitives/block.hpp b/src/primitives/block.hpp index 4a9f7b16..2966ba87 100644 --- a/src/primitives/block.hpp +++ b/src/primitives/block.hpp @@ -28,8 +28,9 @@ namespace sgns::primitives { { out << b.header; out << b.body.size(); - for (auto it = b.body.begin(); it != b.body.end(); ++it) { - out << *it; + for ( const auto &it : b.body ) + { + out << it; } return out ; } diff --git a/src/processing/processing_service.cpp b/src/processing/processing_service.cpp index 6675509c..a85ef96c 100644 --- a/src/processing/processing_service.cpp +++ b/src/processing/processing_service.cpp @@ -183,12 +183,17 @@ namespace sgns::processing std::scoped_lock lock( m_mutexNodes ); if ( m_processingNodes.size() < m_maximalNodesCount ) { - auto node = std::make_shared( m_gossipPubSub, m_subTaskStateStorage, m_subTaskResultStorage, + auto node = std::make_shared( + m_gossipPubSub, + m_subTaskStateStorage, + m_subTaskResultStorage, m_processingCore, std::bind( &ProcessingServiceImpl::OnQueueProcessingCompleted, - this, processingQueuelId, std::placeholders::_1 ), - std::bind( &ProcessingServiceImpl::OnProcessingError, this, - processingQueuelId, std::placeholders::_1 ) ); + this, + processingQueuelId, + std::placeholders::_1 ), + std::bind( + &ProcessingServiceImpl::OnProcessingError, this, processingQueuelId, std::placeholders::_1 ) ); node->AttachTo( processingQueuelId ); m_processingNodes[processingQueuelId] = node; @@ -203,14 +208,14 @@ namespace sgns::processing void ProcessingServiceImpl::PublishLocalChannelList() { std::scoped_lock lock( m_mutexNodes ); - for ( auto itNode = m_processingNodes.begin(); itNode != m_processingNodes.end(); ++itNode ) + for ( auto &itNode : m_processingNodes ) { // Only channel host answers to reduce a number of published messages - if ( itNode->second->HasQueueOwnership() ) + if ( itNode.second->HasQueueOwnership() ) { SGProcessing::GridChannelMessage gridMessage; auto channelResponse = gridMessage.mutable_processing_channel_response(); - channelResponse->set_channel_id( itNode->first ); + channelResponse->set_channel_id( itNode.first ); m_gridChannel->Publish( gridMessage.SerializeAsString() ); m_logger->debug( "Channel published. {}", channelResponse->channel_id() ); diff --git a/src/processing/processing_subtask_queue_accessor_impl.cpp b/src/processing/processing_subtask_queue_accessor_impl.cpp index 6f471e15..6c11c96b 100644 --- a/src/processing/processing_subtask_queue_accessor_impl.cpp +++ b/src/processing/processing_subtask_queue_accessor_impl.cpp @@ -4,7 +4,7 @@ namespace sgns::processing { -SubTaskQueueAccessorImpl::SubTaskQueueAccessorImpl( + SubTaskQueueAccessorImpl::SubTaskQueueAccessorImpl( std::shared_ptr gossipPubSub, std::shared_ptr subTaskQueueManager, std::shared_ptr subTaskStateStorage, @@ -15,8 +15,8 @@ SubTaskQueueAccessorImpl::SubTaskQueueAccessorImpl( m_subTaskStateStorage( std::move( subTaskStateStorage ) ), m_subTaskResultStorage( std::move( subTaskResultStorage ) ), m_taskResultProcessingSink( std::move( taskResultProcessingSink ) ) -{ - // @todo replace hardcoded channel identified with an input value + { + // @todo replace hardcoded channel identified with an input value m_resultChannel = std::make_shared( m_gossipPubSub, "RESULT_CHANNEL_ID" ); m_logger->debug( "[CREATED] this: {}, thread_id {}", reinterpret_cast( this ), std::this_thread::get_id() ); } @@ -91,7 +91,7 @@ void SubTaskQueueAccessorImpl::GrabSubTask(SubTaskGrabbedCallback onSubTaskGrabb auto queue = m_subTaskQueueManager->GetQueueSnapshot(); std::set subTaskIds; - for (size_t itemIdx = 0; itemIdx < (size_t)queue->subtasks().items_size(); ++itemIdx) + for ( size_t itemIdx = 0; itemIdx < static_cast( queue->subtasks().items_size() ); ++itemIdx ) { subTaskIds.insert(queue->subtasks().items(itemIdx).subtaskid()); } @@ -197,7 +197,8 @@ std::vector> SubTaskQueueAc { std::lock_guard guard(m_mutexResults); std::vector> results; - for (auto& item : m_results) + results.reserve( m_results.size() ); + for ( auto &item : m_results ) { results.emplace_back( item.first, item.second ); } diff --git a/src/processing/processing_subtask_queue_manager.cpp b/src/processing/processing_subtask_queue_manager.cpp index 881801b4..d667314f 100644 --- a/src/processing/processing_subtask_queue_manager.cpp +++ b/src/processing/processing_subtask_queue_manager.cpp @@ -41,10 +41,10 @@ bool ProcessingSubTaskQueueManager::CreateQueue( auto queue = std::make_shared(); auto queueSubTasks = queue->mutable_subtasks(); auto processingQueue = queue->mutable_processing_queue(); - for (auto itSubTask = subTasks.begin(); itSubTask != subTasks.end(); ++itSubTask) + for ( auto itSubTask : subTasks ) { // Move subtask to heap - auto subTask = std::make_unique(std::move(*itSubTask)); + auto subTask = std::make_unique( std::move( itSubTask ) ); queueSubTasks->mutable_items()->AddAllocated(subTask.release()); processingQueue->add_items(); } @@ -74,7 +74,8 @@ bool ProcessingSubTaskQueueManager::CreateQueue( if (m_subTaskQueueAssignmentEventSink) { std::vector subTaskIds; - for (int subTaskIdx = 0; subTaskIdx < m_queue->subtasks().items_size(); ++subTaskIdx) + subTaskIds.reserve( m_queue->subtasks().items_size() ); + for ( int subTaskIdx = 0; subTaskIdx < m_queue->subtasks().items_size(); ++subTaskIdx ) { subTaskIds.push_back(m_queue->subtasks().items(subTaskIdx).subtaskid()); } @@ -88,7 +89,7 @@ bool ProcessingSubTaskQueueManager::CreateQueue( bool ProcessingSubTaskQueueManager::UpdateQueue(SGProcessing::SubTaskQueue* pQueue) { - if (pQueue) + if ( pQueue != nullptr ) { std::shared_ptr queue(pQueue); @@ -119,7 +120,7 @@ void ProcessingSubTaskQueueManager::ProcessPendingSubTaskGrabbing() m_dltGrabSubTaskTimeout.expires_at(boost::posix_time::pos_infin); while (!m_onSubTaskGrabbedCallbacks.empty()) { - size_t itemIdx; + size_t itemIdx = 0; if (m_processingQueue.GrabItem(itemIdx)) { LogQueue(); @@ -141,7 +142,7 @@ void ProcessingSubTaskQueueManager::ProcessPendingSubTaskGrabbing() if (!m_onSubTaskGrabbedCallbacks.empty()) { - if (m_processedSubTaskIds.size() <(size_t)m_queue->processing_queue().items_size()) + if ( m_processedSubTaskIds.size() < static_cast( m_queue->processing_queue().items_size() ) ) { // Wait for subtasks are processed auto timestamp = std::chrono::system_clock::now(); @@ -181,8 +182,8 @@ void ProcessingSubTaskQueueManager::HandleGrabSubTaskTimeout(const boost::system std::lock_guard guard(m_queueMutex); m_dltGrabSubTaskTimeout.expires_at(boost::posix_time::pos_infin); m_logger->debug("HANDLE_GRAB_TIMEOUT"); - if (!m_onSubTaskGrabbedCallbacks.empty() - && (m_processedSubTaskIds.size() < (size_t)m_queue->processing_queue().items_size())) + if ( !m_onSubTaskGrabbedCallbacks.empty() && + ( m_processedSubTaskIds.size() < static_cast( m_queue->processing_queue().items_size() ) ) ) { GrabSubTasks(); } @@ -250,7 +251,8 @@ bool ProcessingSubTaskQueueManager::ProcessSubTaskQueueMessage(SGProcessing::Sub if (!queueInitilalized && queueChanged) { std::vector subTaskIds; - for (int subTaskIdx = 0; subTaskIdx < queue->subtasks().items_size(); ++subTaskIdx) + subTaskIds.reserve( queue->subtasks().items_size() ); + for ( int subTaskIdx = 0; subTaskIdx < queue->subtasks().items_size(); ++subTaskIdx ) { subTaskIds.push_back(queue->subtasks().items(subTaskIdx).subtaskid()); } @@ -265,7 +267,7 @@ bool ProcessingSubTaskQueueManager::ProcessSubTaskQueueMessage(SGProcessing::Sub bool ProcessingSubTaskQueueManager::ProcessSubTaskQueueRequestMessage( const SGProcessing::SubTaskQueueRequest& request) { - std::lock_guard guard(m_queueMutex); + std::lock_guard guard( m_queueMutex ); if (m_processingQueue.MoveOwnershipTo(request.node_id())) { LogQueue(); @@ -357,12 +359,13 @@ void ProcessingSubTaskQueueManager::SetSubTaskQueueAssignmentEventSink( if (m_subTaskQueueAssignmentEventSink) { std::unique_lock guard(m_queueMutex); - bool isQueueInitialized = (m_queue != nullptr); + bool isQueueInitialized = ( m_queue != nullptr ); if (isQueueInitialized) { std::vector subTaskIds; - for (int subTaskIdx = 0; subTaskIdx < m_queue->subtasks().items_size(); ++subTaskIdx) + subTaskIds.reserve( m_queue->subtasks().items_size() ); + for ( int subTaskIdx = 0; subTaskIdx < m_queue->subtasks().items_size(); ++subTaskIdx ) { subTaskIds.push_back(m_queue->subtasks().items(subTaskIdx).subtaskid()); } diff --git a/src/verification/production/types/epoch.hpp b/src/verification/production/types/epoch.hpp index 8156fc46..83e54a2e 100644 --- a/src/verification/production/types/epoch.hpp +++ b/src/verification/production/types/epoch.hpp @@ -44,9 +44,9 @@ namespace sgns::verification { { out << test_struct.epoch_index << test_struct.start_slot << test_struct.epoch_duration ; out << test_struct.authorities.size(); - for(auto it = test_struct.authorities.begin(); it != test_struct.authorities.end() ; it++) + for ( const auto &authorithy : test_struct.authorities ) { - out << *it; + out << authorithy; } out << test_struct.randomness ; return out; From aa1b31a2e5db67a18387a351b892acdd50fb375e Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 29 Jul 2024 14:33:45 -0300 Subject: [PATCH 15/30] Minor fixes minor fixes --- src/account/EscrowTransaction.cpp | 3 +-- src/account/GeniusAccount.hpp | 2 +- src/base/util.hpp | 10 ++++---- src/crypto/bip39/mnemonic.cpp | 8 +++--- src/processing/processing_imagesplit.cpp | 25 +++++++++---------- .../processing_processor_mnn_posenet.hpp | 3 ++- src/storage/rocksdb/rocksdb_util.hpp | 2 +- 7 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/account/EscrowTransaction.cpp b/src/account/EscrowTransaction.cpp index 750fb16b..615959ac 100644 --- a/src/account/EscrowTransaction.cpp +++ b/src/account/EscrowTransaction.cpp @@ -87,8 +87,7 @@ namespace sgns uint64_t num_chunks = tx_struct.num_chunks(); float dev_cut = tx_struct.dev_cut(); uint256_t dev_addr( tx_struct.dev_addr() ); - return EscrowTransaction( UTXOTxParameters{ inputs, outputs }, num_chunks, dev_addr, dev_cut, - tx_struct.dag_struct() ); // Return new instance + return { UTXOTxParameters{ inputs, outputs }, num_chunks, dev_addr, dev_cut, tx_struct.dag_struct() }; } uint64_t EscrowTransaction::GetNumChunks() const diff --git a/src/account/GeniusAccount.hpp b/src/account/GeniusAccount.hpp index 44b2bf74..7ca1655c 100644 --- a/src/account/GeniusAccount.hpp +++ b/src/account/GeniusAccount.hpp @@ -170,7 +170,7 @@ namespace sgns } else { - key_seed = HexASCII2NumStr( &load_res.value().data()[2], load_res.value().size() - 2 ); + key_seed = HexASCII2NumStr( &load_res.value()[2], load_res.value().size() - 2 ); } auto result = KDFGenerator::GenerateKDF( key_seed, KDFGenerator::HashType::SHA256 ); diff --git a/src/base/util.hpp b/src/base/util.hpp index e6d805e0..25c5a1bf 100644 --- a/src/base/util.hpp +++ b/src/base/util.hpp @@ -49,7 +49,7 @@ namespace sgns static bool isLittleEndian() { std::uint32_t num = 1; - std::uint8_t *bytePtr = reinterpret_cast( &num ); + auto *bytePtr = reinterpret_cast( &num ); return *bytePtr == 1; } @@ -124,7 +124,7 @@ namespace sgns template static std::vector Num2Vector( const T &num, std::size_t num_bytes_resolution = sizeof( T ) ) { - const uint8_t *bytesPtr = reinterpret_cast( &num ); + const auto *bytesPtr = reinterpret_cast( &num ); return std::vector( bytesPtr, bytesPtr + sizeof( T ) ); } @@ -175,9 +175,9 @@ namespace sgns { return out_vect.begin(); } - - return out_vect.end(); - + + return out_vect.end(); + }; for ( std::size_t i = 0; i < char_ptr_size; i += num_nibbles_resolution ) diff --git a/src/crypto/bip39/mnemonic.cpp b/src/crypto/bip39/mnemonic.cpp index 16e19fbb..7a5824d8 100644 --- a/src/crypto/bip39/mnemonic.cpp +++ b/src/crypto/bip39/mnemonic.cpp @@ -47,10 +47,10 @@ namespace sgns::crypto::bip39 { mnemonic_list = phrase; } - if (mnemonic_list.find("/") != std::string_view::npos) { - base::createLogger(kMnemonicLoggerString) - ->error("junctions are not supported yet"); - return bip39::MnemonicError::INVALID_MNEMONIC; + if ( mnemonic_list.find( '/' ) != std::string_view::npos ) + { + base::createLogger( kMnemonicLoggerString )->error( "junctions are not supported yet" ); + return bip39::MnemonicError::INVALID_MNEMONIC; } // split word list into separate words diff --git a/src/processing/processing_imagesplit.cpp b/src/processing/processing_imagesplit.cpp index 55da828c..50070595 100644 --- a/src/processing/processing_imagesplit.cpp +++ b/src/processing/processing_imagesplit.cpp @@ -36,17 +36,16 @@ namespace sgns::processing // SplitImageData(); //} - ImageSplitter::ImageSplitter(const std::vector& buffer, - uint32_t blockstride, - uint32_t blocklinestride, - uint32_t blocklen) - : blockstride_(blockstride), blocklinestride_(blocklinestride), blocklen_(blocklen) { - // Set inputImage and imageSize from the provided buffer - //inputImage = reinterpret_cast(buffer.data()); - - inputImage = reinterpret_cast(buffer.data()); - imageSize = buffer.size(); - + ImageSplitter::ImageSplitter( const std::vector &buffer, + uint32_t blockstride, + uint32_t blocklinestride, + uint32_t blocklen ) : + blockstride_( blockstride ), + blocklinestride_( blocklinestride ), + blocklen_( blocklen ), + inputImage( reinterpret_cast( buffer.data() ) ), + imageSize( buffer.size() ) + { SplitImageData(); } @@ -72,7 +71,7 @@ namespace sgns::processing return index; } //Index out of range - return -1; + return -1; } void ImageSplitter::SplitImageData() @@ -116,7 +115,7 @@ namespace sgns::processing SHA256_Final(shahash.data(), &sha256); auto hash = libp2p::multi::Multihash::create(libp2p::multi::HashType::sha256, shahash); cids_.emplace_back( libp2p::multi::ContentIdentifier::Version::V0, - libp2p::multi::MulticodecType::Code::DAG_PB, + libp2p::multi::MulticodecType::Code::DAG_PB, hash.value() ); } } diff --git a/src/processing/processors/processing_processor_mnn_posenet.hpp b/src/processing/processors/processing_processor_mnn_posenet.hpp index 4156a022..509cde1c 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.hpp +++ b/src/processing/processors/processing_processor_mnn_posenet.hpp @@ -55,7 +55,8 @@ namespace sgns::processing * @param task - Reference to task to get image split data * @param subTask - Reference to subtask to get chunk data from */ - std::vector StartProcessing( SGProcessing::SubTaskResult &result, const SGProcessing::Task &task, + std::vector StartProcessing( SGProcessing::SubTaskResult &result, + const SGProcessing::Task &task, const SGProcessing::SubTask &subTask ) override; /** Set data for processor diff --git a/src/storage/rocksdb/rocksdb_util.hpp b/src/storage/rocksdb/rocksdb_util.hpp index f27f3f49..74078153 100644 --- a/src/storage/rocksdb/rocksdb_util.hpp +++ b/src/storage/rocksdb/rocksdb_util.hpp @@ -77,7 +77,7 @@ namespace sgns::storage // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) const auto *ptr = reinterpret_cast(s.data()); // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - return base::Buffer(ptr, ptr + s.size()); + return { ptr, ptr + s.size() }; } } // namespace sgns::storage From a26c0c4f8b2b21ee4a53adc8dce877af8a482d3d Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 14:17:34 -0300 Subject: [PATCH 16/30] Fixed header includes --- example/AsyncFile/MNNExample.cpp | 2 +- example/crdt_globaldb/globaldb_app.cpp | 4 +-- example/ipfs_client/ipfs_dht.hpp | 2 +- example/ipfs_client2/testipfs.cpp | 3 +- example/ipfs_pubsub/ipfs_pubsub.cpp | 4 +-- example/processing_dapp/processing_dapp.cpp | 4 +-- ...processing_subtask_result_storage_impl.hpp | 4 +-- example/processing_mnn/processing_mnn.cpp | 10 ++++++- example/processing_mnn/processing_mnn.hpp | 20 ++++--------- example/processing_mnn/processing_mnn_p.cpp | 12 ++++++++ example/processing_room/processing_app.cpp | 4 +-- src/account/EscrowTransaction.cpp | 1 + src/account/GeniusAccount.hpp | 4 ++- src/account/GeniusNode.cpp | 4 ++- src/account/GeniusNode.hpp | 17 +++++------ src/account/IGeniusTransactions.hpp | 4 ++- src/account/MintTransaction.hpp | 1 + src/account/ProcessingTransaction.hpp | 4 ++- src/account/TransferTransaction.hpp | 3 +- src/account/UTXOTxParameters.hpp | 6 ++-- src/application/app_state_manager.hpp | 3 ++ src/application/configuration_storage.hpp | 4 ++- src/application/impl/config_reader/error.hpp | 2 +- .../impl/configuration_storage_impl.hpp | 2 +- src/application/key_storage.hpp | 1 + src/authorship/impl/block_builder_impl.cpp | 2 -- src/base/buffer.hpp | 2 +- src/base/unused.hpp | 2 ++ src/base/util.hpp | 5 +--- src/blockchain/block_tree.hpp | 2 +- src/blockchain/block_tree_error.hpp | 2 +- src/blockchain/impl/common.hpp | 4 +-- .../key_value_block_header_repository.hpp | 4 +-- .../impl/key_value_block_storage.hpp | 2 +- src/blockchain/impl/storage_util.cpp | 2 +- src/blockchain/impl/storage_util.hpp | 4 +-- src/blockchain/impl/types.cpp | 4 +-- src/crdt/broadcaster.hpp | 2 +- src/crdt/crdt_datastore.hpp | 12 ++++---- src/crdt/crdt_heads.hpp | 2 +- src/crdt/crdt_options.hpp | 6 ++-- src/crdt/crdt_set.hpp | 4 +-- src/crdt/globaldb/globaldb.cpp | 4 +-- src/crdt/globaldb/globaldb.hpp | 2 +- src/crdt/globaldb/keypair_file_storage.cpp | 2 +- src/crdt/globaldb/keypair_file_storage.hpp | 4 +-- src/crdt/globaldb/pubsub_broadcaster.hpp | 4 +-- src/crdt/globaldb/pubsub_broadcaster_ext.cpp | 4 +-- src/crdt/globaldb/pubsub_broadcaster_ext.hpp | 6 ++-- src/crdt/graphsync_dagsyncer.hpp | 4 +-- src/crdt/impl/crdt_datastore.cpp | 4 +-- src/crdt/impl/crdt_heads.cpp | 2 +- src/crdt/impl/crdt_set.cpp | 2 +- src/crdt/impl/hierarchical_key.cpp | 2 +- src/crdt/session_dag_syncer.hpp | 29 ------------------- src/crypto/ed25519_provider.hpp | 2 +- src/crypto/random_generator.hpp | 2 +- .../random_generator/boost_generator.hpp | 2 +- src/crypto/sr25519_provider.hpp | 2 +- src/extensions/impl/crypto_extension.cpp | 3 +- src/injector/application_injector.hpp | 2 +- .../block_producing_node_injector.hpp | 10 ++++++- src/local_secure_storage/ISecureStorage.hpp | 3 +- src/network/adapter/adapter_errors.hpp | 2 +- src/network/common.hpp | 2 +- .../helpers/protobuf_message_read_writer.hpp | 2 +- .../helpers/scale_message_read_writer.hpp | 2 +- src/network/impl/gossiper_broadcast.hpp | 7 ++--- src/network/impl/loopback_stream.hpp | 2 +- src/network/impl/router_libp2p.cpp | 3 +- src/network/impl/router_libp2p.hpp | 8 ++--- .../impl/sync_protocol_observer_impl.cpp | 2 +- src/network/rpc.hpp | 15 +++++----- src/network/sync_protocol_client.hpp | 2 +- src/network/sync_protocol_observer.hpp | 2 +- src/primitives/authority.hpp | 4 +-- src/primitives/common.hpp | 2 +- src/primitives/inherent_data.hpp | 3 +- src/primitives/parachain_host.hpp | 1 - src/primitives/production_configuration.hpp | 2 +- src/primitives/scheduled_change.hpp | 1 - src/primitives/transaction_validity.hpp | 2 +- src/primitives/version.hpp | 3 +- src/processing/impl/processing_core_impl.cpp | 6 +++- src/processing/impl/processing_core_impl.hpp | 9 +++--- ...processing_subtask_result_storage_impl.cpp | 2 +- ...processing_subtask_result_storage_impl.hpp | 4 +-- .../impl/processing_task_queue_impl.cpp | 2 +- .../impl/processing_task_queue_impl.hpp | 4 +-- src/processing/processing_core.hpp | 2 +- src/processing/processing_engine.hpp | 6 ++-- src/processing/processing_imagesplit.cpp | 4 +-- src/processing/processing_imagesplit.hpp | 5 +--- src/processing/processing_node.cpp | 6 ++-- src/processing/processing_node.hpp | 12 ++++---- src/processing/processing_processor.hpp | 9 +++--- src/processing/processing_service.hpp | 6 ++-- .../processing_subtask_enqueuer.hpp | 2 +- .../processing_subtask_enqueuer_impl.hpp | 7 +++-- src/processing/processing_subtask_queue.hpp | 4 +-- .../processing_subtask_queue_accessor.hpp | 2 +- ...processing_subtask_queue_accessor_impl.hpp | 10 +++---- .../processing_subtask_queue_channel.hpp | 2 +- ...rocessing_subtask_queue_channel_pubsub.hpp | 4 +-- .../processing_subtask_queue_manager.hpp | 6 ++-- .../processing_subtask_result_storage.hpp | 3 +- .../processing_subtask_state_storage.hpp | 2 +- src/processing/processing_task_queue.hpp | 3 +- src/processing/processing_tasksplit.cpp | 1 + src/processing/processing_tasksplit.hpp | 4 ++- src/processing/processing_validation_core.hpp | 6 ++-- .../processing_processor_mnn_posenet.cpp | 1 + .../processing_processor_mnn_posenet.hpp | 7 ++--- src/runtime/block_builder.hpp | 2 +- .../common/trie_storage_provider_impl.hpp | 2 +- src/runtime/core.hpp | 2 +- src/runtime/finality_api.hpp | 2 +- src/runtime/metadata.hpp | 2 +- src/runtime/offchain_worker.hpp | 2 +- src/runtime/parachain_host.hpp | 2 +- src/runtime/production_api.hpp | 2 +- src/scale/detail/fixed_witdh_integer.hpp | 1 + src/scale/detail/tuple.hpp | 1 + src/scale/detail/variant.hpp | 1 - src/scale/scale.hpp | 3 +- src/scale/scale_decoder_stream.hpp | 7 +++-- src/scale/scale_encoder_stream.hpp | 8 +++-- src/scale/scale_error.hpp | 3 +- src/scale/types.hpp | 2 +- src/storage/buffer_map_types.hpp | 1 - src/storage/changes_trie/changes_tracker.hpp | 1 - .../changes_trie/changes_trie_config.hpp | 1 + .../changes_trie/impl/changes_trie.hpp | 4 +-- .../impl/storage_changes_tracker_impl.cpp | 1 + .../impl/storage_changes_tracker_impl.hpp | 8 ++--- src/storage/database_error.hpp | 2 +- src/storage/face/batchable.hpp | 1 - src/storage/face/generic_list.hpp | 1 - src/storage/face/readable.hpp | 3 +- src/storage/face/writeable.hpp | 2 +- src/storage/rocksdb/rocksdb.cpp | 13 +++++---- src/storage/rocksdb/rocksdb_util.hpp | 3 +- .../trie/impl/topper_trie_batch_impl.hpp | 8 ++--- src/storage/trie/impl/trie_storage_impl.cpp | 1 - src/storage/trie/impl/trie_storage_impl.hpp | 1 - .../trie/serialization/ordered_trie_hash.hpp | 1 - .../trie/serialization/supergenius_codec.hpp | 1 - .../supergenius_trie/supergenius_node.hpp | 1 - .../supergenius_trie/supergenius_trie.hpp | 3 +- .../supergenius_trie_impl.cpp | 1 - .../supergenius_trie_impl.hpp | 1 - src/storage/trie/trie_batches.hpp | 1 - src/storage/trie/trie_storage_backend.hpp | 4 +-- src/subscription/subscription_engine.hpp | 1 + .../impl/transaction_pool_impl.hpp | 2 +- src/transaction_pool/pool_moderator.hpp | 2 +- src/transaction_pool/transaction_pool.hpp | 5 ++-- .../transaction_pool_error.hpp | 2 +- .../authority/authority_manager.hpp | 1 + .../authority/authority_manager_error.hpp | 2 +- .../authority/authority_update_observer.hpp | 3 +- .../authority_update_observer_error.hpp | 2 +- .../authority/impl/schedule_node.hpp | 1 + src/verification/finality/chain.hpp | 3 +- src/verification/finality/common.hpp | 4 --- src/verification/finality/gossiper.hpp | 4 +-- .../finality/impl/observer_dummy.cpp | 21 -------------- .../finality/impl/observer_dummy.hpp | 29 ------------------- .../finality/impl/voting_round_error.hpp | 2 +- src/verification/finality/structs.hpp | 6 +--- src/verification/finality/vote_graph.hpp | 1 - .../finality/vote_graph/vote_graph_impl.hpp | 6 ++-- src/verification/finality/vote_weight.hpp | 3 +- src/verification/finality/voting_round.hpp | 1 - src/verification/production.hpp | 2 -- .../production/impl/epoch_storage_impl.hpp | 2 -- .../impl/production_digests_util.hpp | 2 +- .../production/impl/production_impl.hpp | 4 +-- .../production/production_error.hpp | 2 +- .../production/production_gossiper.hpp | 3 -- src/verification/production/types/epoch.hpp | 3 -- .../types/next_epoch_descriptor.hpp | 1 + .../validation/block_validator.hpp | 3 +- .../validation/production_block_validator.cpp | 1 + .../validation/production_block_validator.hpp | 2 -- test/src/crdt/crdt_datastore_test.cpp | 6 ++-- test/src/crdt/crdt_heads_test.cpp | 4 +-- test/src/crdt/crdt_hierarchical_key_test.cpp | 2 +- test/src/crdt/crdt_set_test.cpp | 4 +-- .../src/processing/processing_engine_test.cpp | 4 +-- .../processing/processing_service_test.cpp | 4 +-- ...ssing_subtask_queue_accessor_impl_test.cpp | 10 +++---- ...sing_subtask_queue_channel_pubsub_test.cpp | 2 +- .../processing_subtask_queue_manager_test.cpp | 4 +-- test/src/scale/scale_variant_test.cpp | 11 ++++--- .../changes_trie/changes_trie_test.cpp | 2 +- .../supergenius_trie_test.cpp | 4 --- .../trie/trie_storage/trie_batch_test.cpp | 4 +-- test/testutil/storage/base_crdt_test.cpp | 6 ++-- 199 files changed, 353 insertions(+), 435 deletions(-) delete mode 100644 src/crdt/session_dag_syncer.hpp delete mode 100644 src/verification/finality/impl/observer_dummy.cpp delete mode 100644 src/verification/finality/impl/observer_dummy.hpp diff --git a/example/AsyncFile/MNNExample.cpp b/example/AsyncFile/MNNExample.cpp index 04d49e14..6f27ef05 100644 --- a/example/AsyncFile/MNNExample.cpp +++ b/example/AsyncFile/MNNExample.cpp @@ -13,7 +13,7 @@ //#include "WSLoader.hpp" #include "URLStringUtil.h" #include -#include "libp2p/injector/kademlia_injector.hpp" +#include /** * This program is example to loading MNN model file diff --git a/example/crdt_globaldb/globaldb_app.cpp b/example/crdt_globaldb/globaldb_app.cpp index 7daf166a..eaff7f7a 100644 --- a/example/crdt_globaldb/globaldb_app.cpp +++ b/example/crdt_globaldb/globaldb_app.cpp @@ -8,8 +8,8 @@ #include #include -#include -#include +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" #include #include diff --git a/example/ipfs_client/ipfs_dht.hpp b/example/ipfs_client/ipfs_dht.hpp index 0a0d9028..6ae6bbde 100644 --- a/example/ipfs_client/ipfs_dht.hpp +++ b/example/ipfs_client/ipfs_dht.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_IPFS_DHT_HPP #define SUPERGENIUS_IPFS_DHT_HPP -#include +#include "base/logger.hpp" #include #include diff --git a/example/ipfs_client2/testipfs.cpp b/example/ipfs_client2/testipfs.cpp index e25726b6..7578b058 100644 --- a/example/ipfs_client2/testipfs.cpp +++ b/example/ipfs_client2/testipfs.cpp @@ -26,8 +26,7 @@ #include #include #include -#include - +#include "base/logger.hpp" #include #include diff --git a/example/ipfs_pubsub/ipfs_pubsub.cpp b/example/ipfs_pubsub/ipfs_pubsub.cpp index 262591d3..3d8111aa 100644 --- a/example/ipfs_pubsub/ipfs_pubsub.cpp +++ b/example/ipfs_pubsub/ipfs_pubsub.cpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" #include using GossipPubSub = sgns::ipfs_pubsub::GossipPubSub; diff --git a/example/processing_dapp/processing_dapp.cpp b/example/processing_dapp/processing_dapp.cpp index a55500d0..3bf108fb 100644 --- a/example/processing_dapp/processing_dapp.cpp +++ b/example/processing_dapp/processing_dapp.cpp @@ -1,7 +1,7 @@ #include "processing/impl/processing_task_queue_impl.hpp" -#include -#include +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" #include #include diff --git a/example/processing_dapp/processing_subtask_result_storage_impl.hpp b/example/processing_dapp/processing_subtask_result_storage_impl.hpp index bfb7a554..2215043c 100644 --- a/example/processing_dapp/processing_subtask_result_storage_impl.hpp +++ b/example/processing_dapp/processing_subtask_result_storage_impl.hpp @@ -6,8 +6,8 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_SUBTASK_RESULT_STORAGE_IMPL_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_SUBTASK_RESULT_STORAGE_IMPL_HPP -#include -#include +#include "processing/processing_subtask_result_storage.hpp" +#include "crdt/globaldb/globaldb.hpp" namespace sgns::processing { diff --git a/example/processing_mnn/processing_mnn.cpp b/example/processing_mnn/processing_mnn.cpp index 160368fe..04a254d0 100644 --- a/example/processing_mnn/processing_mnn.cpp +++ b/example/processing_mnn/processing_mnn.cpp @@ -1,9 +1,17 @@ //#define STB_IMAGE_IMPLEMENTATION //#define STB_IMAGE_WRITE_IMPLEMENTATION #include "processing_mnn.hpp" + +#include #include + #include "FileManager.hpp" -#include "URLStringUtil.h" +#include "base/logger.hpp" +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" +#include "processing/impl/processing_task_queue_impl.hpp" +#include "processing/processing_imagesplit.hpp" + using GossipPubSub = sgns::ipfs_pubsub::GossipPubSub; const std::string logger_config(R"( # ---------------- diff --git a/example/processing_mnn/processing_mnn.hpp b/example/processing_mnn/processing_mnn.hpp index 27cf07d3..bd57db8d 100644 --- a/example/processing_mnn/processing_mnn.hpp +++ b/example/processing_mnn/processing_mnn.hpp @@ -1,17 +1,8 @@ #pragma once -#include -#include -#include + +#include #include -#include "processing/impl/processing_task_queue_impl.hpp" -#include "processing/impl/processing_subtask_result_storage_impl.hpp" -#include -#include -#include -#include -#include -#include -#include + #include #include #include @@ -20,9 +11,10 @@ #include #include #include -#include -#include "ipfs_pubsub/gossip_pubsub.hpp" +#include +#include "processing/processing_subtask_state_storage.hpp" +#include "processing/processing_imagesplit.hpp" namespace { diff --git a/example/processing_mnn/processing_mnn_p.cpp b/example/processing_mnn/processing_mnn_p.cpp index 0b7bd395..5e051aae 100644 --- a/example/processing_mnn/processing_mnn_p.cpp +++ b/example/processing_mnn/processing_mnn_p.cpp @@ -1,3 +1,15 @@ +#include +#include + +#include "base/logger.hpp" +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" +#include "processing/impl/processing_core_impl.hpp" +#include "processing/impl/processing_subtask_result_storage_impl.hpp" +#include "processing/impl/processing_task_queue_impl.hpp" +#include "processing/processing_service.hpp" +#include "processing/processing_subtask_enqueuer_impl.hpp" +#include "processing/processors/processing_processor_mnn_posenet.hpp" #include "processing_mnn.hpp" using GossipPubSub = sgns::ipfs_pubsub::GossipPubSub; diff --git a/example/processing_room/processing_app.cpp b/example/processing_room/processing_app.cpp index 5ffe29c6..c62a7787 100644 --- a/example/processing_room/processing_app.cpp +++ b/example/processing_room/processing_app.cpp @@ -1,5 +1,5 @@ -#include -#include +#include "processing/processing_service.hpp" +#include "processing/processing_subtask_enqueuer_impl.hpp" #include #include diff --git a/src/account/EscrowTransaction.cpp b/src/account/EscrowTransaction.cpp index 615959ac..0da920aa 100644 --- a/src/account/EscrowTransaction.cpp +++ b/src/account/EscrowTransaction.cpp @@ -7,6 +7,7 @@ #include "account/EscrowTransaction.hpp" #include + #include "crypto/hasher/hasher_impl.hpp" #include "base/blob.hpp" diff --git a/src/account/GeniusAccount.hpp b/src/account/GeniusAccount.hpp index 7ca1655c..bda78499 100644 --- a/src/account/GeniusAccount.hpp +++ b/src/account/GeniusAccount.hpp @@ -8,9 +8,11 @@ #define _GENIUS_ACCOUNT_HPP_ #include #include + #include + #include "account/GeniusUTXO.hpp" -#include "account/TransferTransaction.hpp" +#include "account/UTXOTxParameters.hpp" #include "singleton/CComponentFactory.hpp" #include "local_secure_storage/ISecureStorage.hpp" #include diff --git a/src/account/GeniusNode.cpp b/src/account/GeniusNode.cpp index d83830ae..19f4c9de 100644 --- a/src/account/GeniusNode.cpp +++ b/src/account/GeniusNode.cpp @@ -8,11 +8,13 @@ #include #include #include + #include "account/GeniusNode.hpp" +#include "FileManager.hpp" +#include "upnp.hpp" #include "processing/processing_imagesplit.hpp" #include "processing/processing_tasksplit.hpp" #include "processing/processing_subtask_enqueuer_impl.hpp" -#include "processing/processing_subtask_result_storage.hpp" #include "processing/processors/processing_processor_mnn_posenet.hpp" #include "local_secure_storage/impl/json/JSONSecureStorage.hpp" diff --git a/src/account/GeniusNode.hpp b/src/account/GeniusNode.hpp index 773689a6..d540ce7d 100644 --- a/src/account/GeniusNode.hpp +++ b/src/account/GeniusNode.hpp @@ -7,28 +7,27 @@ #ifndef _ACCOUNT_MANAGER_HPP_ #define _ACCOUNT_MANAGER_HPP_ #include + #include #include -#include "account/GeniusAccount.hpp" -#include "ipfs_pubsub/gossip_pubsub.hpp" -#include "crdt/globaldb/globaldb.hpp" -#include "crdt/globaldb/keypair_file_storage.hpp" -#include "crdt/globaldb/proto/broadcast.pb.h" -#include "account/TransactionManager.hpp" #include #include #include #include + +#include "account/GeniusAccount.hpp" +#include "ipfs_pubsub/gossip_pubsub.hpp" +#include "crdt/globaldb/globaldb.hpp" +#include "account/TransactionManager.hpp" #include #include "crypto/hasher/hasher_impl.hpp" #include "blockchain/impl/key_value_block_header_repository.hpp" #include "blockchain/impl/key_value_block_storage.hpp" -#include "singleton/IComponent.hpp" -#include "processing/impl/processing_task_queue_impl.hpp" #include "processing/impl/processing_core_impl.hpp" #include "processing/impl/processing_subtask_result_storage_impl.hpp" #include "processing/processing_service.hpp" -#include "upnp.hpp" +#include "singleton/IComponent.hpp" +#include "processing/impl/processing_task_queue_impl.hpp" #ifndef __cplusplus extern "C" diff --git a/src/account/IGeniusTransactions.hpp b/src/account/IGeniusTransactions.hpp index c072f2d6..df29f83b 100644 --- a/src/account/IGeniusTransactions.hpp +++ b/src/account/IGeniusTransactions.hpp @@ -10,11 +10,13 @@ #include #include #include + #include #include -#include "account/proto/SGTransaction.pb.h" #include +#include "account/proto/SGTransaction.pb.h" + using namespace boost::multiprecision; namespace sgns diff --git a/src/account/MintTransaction.hpp b/src/account/MintTransaction.hpp index c6d04480..27bfe05f 100644 --- a/src/account/MintTransaction.hpp +++ b/src/account/MintTransaction.hpp @@ -9,6 +9,7 @@ #include #include + #include "account/IGeniusTransactions.hpp" namespace sgns diff --git a/src/account/ProcessingTransaction.hpp b/src/account/ProcessingTransaction.hpp index bf638242..a0a8005f 100644 --- a/src/account/ProcessingTransaction.hpp +++ b/src/account/ProcessingTransaction.hpp @@ -7,9 +7,11 @@ #ifndef _PROCESSING_TRANSACTION_HPP_ #define _PROCESSING_TRANSACTION_HPP_ #include -#include "account/IGeniusTransactions.hpp" + #include +#include "account/IGeniusTransactions.hpp" + using namespace boost::multiprecision; namespace sgns diff --git a/src/account/TransferTransaction.hpp b/src/account/TransferTransaction.hpp index 7530e610..a6aabe52 100644 --- a/src/account/TransferTransaction.hpp +++ b/src/account/TransferTransaction.hpp @@ -6,8 +6,9 @@ */ #ifndef _TRANSFER_TRANSACTION_HPP_ #define _TRANSFER_TRANSACTION_HPP_ -#include "account/IGeniusTransactions.hpp" #include + +#include "account/IGeniusTransactions.hpp" #include "account/proto/SGTransaction.pb.h" #include "account/UTXOTxParameters.hpp" diff --git a/src/account/UTXOTxParameters.hpp b/src/account/UTXOTxParameters.hpp index 03cddf3d..161d91f4 100644 --- a/src/account/UTXOTxParameters.hpp +++ b/src/account/UTXOTxParameters.hpp @@ -7,12 +7,14 @@ #ifndef _UTXO_TX_PARAMETERS_HPP_ #define _UTXO_TX_PARAMETERS_HPP_ -#include "account/GeniusUTXO.hpp" #include #include -#include "outcome/outcome.hpp" + #include +#include "account/GeniusUTXO.hpp" +#include "outcome/outcome.hpp" + namespace sgns { using namespace boost::multiprecision; diff --git a/src/application/app_state_manager.hpp b/src/application/app_state_manager.hpp index 070b821c..ccd99c29 100644 --- a/src/application/app_state_manager.hpp +++ b/src/application/app_state_manager.hpp @@ -1,7 +1,10 @@ #ifndef SUPERGENIUS_APPLICATION_DISPATCHER #define SUPERGENIUS_APPLICATION_DISPATCHER +#include #include +#include + #include "singleton/IComponent.hpp" namespace sgns::application { diff --git a/src/application/configuration_storage.hpp b/src/application/configuration_storage.hpp index df59248c..cf69540b 100644 --- a/src/application/configuration_storage.hpp +++ b/src/application/configuration_storage.hpp @@ -1,10 +1,12 @@ #ifndef SUPERGENIUS_CONFIGURATION_STORAGE_HPP #define SUPERGENIUS_CONFIGURATION_STORAGE_HPP +#include + #include + #include "application/genesis_raw_config.hpp" #include "network/types/peer_list.hpp" -#include #include "singleton/IComponent.hpp" #include "primitives/common.hpp" namespace sgns::application { diff --git a/src/application/impl/config_reader/error.hpp b/src/application/impl/config_reader/error.hpp index cb00df4d..ebf31b94 100644 --- a/src/application/impl/config_reader/error.hpp +++ b/src/application/impl/config_reader/error.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_APPLICATION_CONFIG_READER_ERROR_HPP #define SUPERGENIUS_APPLICATION_CONFIG_READER_ERROR_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::application { diff --git a/src/application/impl/configuration_storage_impl.hpp b/src/application/impl/configuration_storage_impl.hpp index 7167d2b3..72cef49e 100644 --- a/src/application/impl/configuration_storage_impl.hpp +++ b/src/application/impl/configuration_storage_impl.hpp @@ -6,7 +6,7 @@ #include -#include +#include "base/logger.hpp" namespace sgns::application { diff --git a/src/application/key_storage.hpp b/src/application/key_storage.hpp index 7a79d751..5913bbbb 100644 --- a/src/application/key_storage.hpp +++ b/src/application/key_storage.hpp @@ -3,6 +3,7 @@ #include #include + #include "crypto/ed25519_types.hpp" #include "crypto/sr25519_types.hpp" #include "singleton/IComponent.hpp" diff --git a/src/authorship/impl/block_builder_impl.cpp b/src/authorship/impl/block_builder_impl.cpp index 1ff6bd8a..15af72cd 100644 --- a/src/authorship/impl/block_builder_impl.cpp +++ b/src/authorship/impl/block_builder_impl.cpp @@ -1,7 +1,5 @@ #include "authorship/impl/block_builder_impl.hpp" -#include "authorship/impl/block_builder_error.hpp" - namespace sgns::authorship { BlockBuilderImpl::BlockBuilderImpl( diff --git a/src/base/buffer.hpp b/src/base/buffer.hpp index 93348058..d0e41f8d 100644 --- a/src/base/buffer.hpp +++ b/src/base/buffer.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include "outcome/outcome.hpp" namespace sgns::base { diff --git a/src/base/unused.hpp b/src/base/unused.hpp index 83c921ba..8212a9fc 100644 --- a/src/base/unused.hpp +++ b/src/base/unused.hpp @@ -1,6 +1,8 @@ #ifndef SUPERGENIUS_UNUSED #define SUPERGENIUS_UNUSED +#include + namespace sgns { /// Special zero-size-type for some things diff --git a/src/base/util.hpp b/src/base/util.hpp index 25c5a1bf..4ba01d48 100644 --- a/src/base/util.hpp +++ b/src/base/util.hpp @@ -10,14 +10,11 @@ #define _UTIL_HPP #include -#include -#include #include #include #include #include -#include -#include + #include #include diff --git a/src/blockchain/block_tree.hpp b/src/blockchain/block_tree.hpp index be8cc671..cc1b894c 100644 --- a/src/blockchain/block_tree.hpp +++ b/src/blockchain/block_tree.hpp @@ -5,7 +5,7 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "primitives/block.hpp" #include "primitives/block_id.hpp" #include "primitives/common.hpp" diff --git a/src/blockchain/block_tree_error.hpp b/src/blockchain/block_tree_error.hpp index 4a14a4b6..8c8d44f4 100644 --- a/src/blockchain/block_tree_error.hpp +++ b/src/blockchain/block_tree_error.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_BLOCK_TREE_ERROR_HPP #define SUPERGENIUS_BLOCK_TREE_ERROR_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::blockchain { /** diff --git a/src/blockchain/impl/common.hpp b/src/blockchain/impl/common.hpp index b1466ae0..361f4c63 100644 --- a/src/blockchain/impl/common.hpp +++ b/src/blockchain/impl/common.hpp @@ -1,11 +1,11 @@ #ifndef SUPERGENIUS_BLOCKCHAIN_COMMON_HPP #define SUPERGENIUS_BLOCKCHAIN_COMMON_HPP -#include +#include "outcome/outcome.hpp" #include "base/buffer.hpp" #include "primitives/block_id.hpp" -#include +#include "crdt/globaldb/globaldb.hpp" namespace sgns::blockchain { using ReadableBufferMap = diff --git a/src/blockchain/impl/key_value_block_header_repository.hpp b/src/blockchain/impl/key_value_block_header_repository.hpp index 0c3dda7f..75a49e93 100644 --- a/src/blockchain/impl/key_value_block_header_repository.hpp +++ b/src/blockchain/impl/key_value_block_header_repository.hpp @@ -4,8 +4,8 @@ #include "blockchain/block_header_repository.hpp" #include "crypto/hasher.hpp" -#include -#include +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" namespace sgns::blockchain { diff --git a/src/blockchain/impl/key_value_block_storage.hpp b/src/blockchain/impl/key_value_block_storage.hpp index 0efd938d..7c843fff 100644 --- a/src/blockchain/impl/key_value_block_storage.hpp +++ b/src/blockchain/impl/key_value_block_storage.hpp @@ -5,7 +5,7 @@ #include "base/logger.hpp" #include "crypto/hasher.hpp" -#include +#include "crdt/globaldb/globaldb.hpp" #include "blockchain/impl/key_value_block_header_repository.hpp" namespace sgns::blockchain { diff --git a/src/blockchain/impl/storage_util.cpp b/src/blockchain/impl/storage_util.cpp index 2b83b5fc..5e2a3227 100644 --- a/src/blockchain/impl/storage_util.cpp +++ b/src/blockchain/impl/storage_util.cpp @@ -2,7 +2,7 @@ #include "blockchain/impl/common.hpp" #include "storage/database_error.hpp" -#include +#include "crdt/globaldb/globaldb.hpp" #include "blockchain/impl/proto/SGBlocks.pb.h" using sgns::blockchain::prefix::Prefix; diff --git a/src/blockchain/impl/storage_util.hpp b/src/blockchain/impl/storage_util.hpp index 12e08b03..e5f4f3aa 100644 --- a/src/blockchain/impl/storage_util.hpp +++ b/src/blockchain/impl/storage_util.hpp @@ -3,8 +3,8 @@ #include "base/buffer.hpp" #include "primitives/block_id.hpp" -#include -#include +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/keypair_file_storage.hpp" /** * Auxiliary functions to simplify usage of persistant map based storage diff --git a/src/blockchain/impl/types.cpp b/src/blockchain/impl/types.cpp index e5bde1f7..d9eed53a 100644 --- a/src/blockchain/impl/types.cpp +++ b/src/blockchain/impl/types.cpp @@ -1,9 +1,9 @@ #include "blockchain/impl/common.hpp" #include "blockchain/impl/storage_util.hpp" #include "base/visitor.hpp" +#include "storage/trie/serialization/supergenius_codec.hpp" #include "storage/trie/supergenius_trie/supergenius_trie_impl.hpp" -#include -#include +#include "crdt/globaldb/globaldb.hpp" OUTCOME_CPP_DEFINE_CATEGORY_3(sgns::blockchain, Error, e) { switch (e) { diff --git a/src/crdt/broadcaster.hpp b/src/crdt/broadcaster.hpp index f8bbebb0..50d11882 100644 --- a/src/crdt/broadcaster.hpp +++ b/src/crdt/broadcaster.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_BROADCASTER_HPP #define SUPERGENIUS_BROADCASTER_HPP -#include +#include "base/buffer.hpp" namespace sgns::crdt { diff --git a/src/crdt/crdt_datastore.hpp b/src/crdt/crdt_datastore.hpp index 441bb5b2..4965580f 100644 --- a/src/crdt/crdt_datastore.hpp +++ b/src/crdt/crdt_datastore.hpp @@ -2,13 +2,13 @@ #define SUPERGENIUS_CRDT_DATASTORE_HPP #include -#include +#include "base/logger.hpp" #include -#include -#include -#include -#include -#include +#include "crdt/crdt_set.hpp" +#include "crdt/crdt_heads.hpp" +#include "crdt/broadcaster.hpp" +#include "crdt/dagsyncer.hpp" +#include "crdt/crdt_options.hpp" #include #include #include diff --git a/src/crdt/crdt_heads.hpp b/src/crdt/crdt_heads.hpp index 9378ab9e..f5147d40 100644 --- a/src/crdt/crdt_heads.hpp +++ b/src/crdt/crdt_heads.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include "crdt/hierarchical_key.hpp" #include namespace sgns::crdt diff --git a/src/crdt/crdt_options.hpp b/src/crdt/crdt_options.hpp index 2783de52..be78d40b 100644 --- a/src/crdt/crdt_options.hpp +++ b/src/crdt/crdt_options.hpp @@ -1,9 +1,9 @@ #ifndef SUPERGENIUS_CRDT_OPTIONS_HPP #define SUPERGENIUS_CRDT_OPTIONS_HPP -#include -#include -#include +#include "base/buffer.hpp" +#include "base/logger.hpp" +#include "crdt/hierarchical_key.hpp" #include namespace sgns::crdt diff --git a/src/crdt/crdt_set.hpp b/src/crdt/crdt_set.hpp index 42151b85..6ebc3308 100644 --- a/src/crdt/crdt_set.hpp +++ b/src/crdt/crdt_set.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include "crdt/hierarchical_key.hpp" +#include "crdt/proto/delta.pb.h" namespace sgns::crdt { diff --git a/src/crdt/globaldb/globaldb.cpp b/src/crdt/globaldb/globaldb.cpp index 677dce6d..e2bdc799 100644 --- a/src/crdt/globaldb/globaldb.cpp +++ b/src/crdt/globaldb/globaldb.cpp @@ -3,8 +3,8 @@ #include "pubsub_broadcaster_ext.hpp" #include "keypair_file_storage.hpp" -#include -#include +#include "crdt/crdt_datastore.hpp" +#include "crdt/graphsync_dagsyncer.hpp" #include #include diff --git a/src/crdt/globaldb/globaldb.hpp b/src/crdt/globaldb/globaldb.hpp index 7709dbf3..86eb645f 100644 --- a/src/crdt/globaldb/globaldb.hpp +++ b/src/crdt/globaldb/globaldb.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include "outcome/outcome.hpp" #include #include "crdt/crdt_options.hpp" #include "crdt/crdt_datastore.hpp" diff --git a/src/crdt/globaldb/keypair_file_storage.cpp b/src/crdt/globaldb/keypair_file_storage.cpp index 417715e6..82786b24 100644 --- a/src/crdt/globaldb/keypair_file_storage.cpp +++ b/src/crdt/globaldb/keypair_file_storage.cpp @@ -1,4 +1,4 @@ -#include +#include "crdt/globaldb/keypair_file_storage.hpp" #include #include diff --git a/src/crdt/globaldb/keypair_file_storage.hpp b/src/crdt/globaldb/keypair_file_storage.hpp index 9a9f7294..59198eb5 100644 --- a/src/crdt/globaldb/keypair_file_storage.hpp +++ b/src/crdt/globaldb/keypair_file_storage.hpp @@ -1,8 +1,8 @@ #ifndef SUPERGENIUS_CRDT_KEYPAIR_FILE_STORAGE_HPP #define SUPERGENIUS_CRDT_KEYPAIR_FILE_STORAGE_HPP -#include -#include +#include "outcome/outcome.hpp" +#include "base/logger.hpp" #include #include diff --git a/src/crdt/globaldb/pubsub_broadcaster.hpp b/src/crdt/globaldb/pubsub_broadcaster.hpp index f652f430..13f8549c 100644 --- a/src/crdt/globaldb/pubsub_broadcaster.hpp +++ b/src/crdt/globaldb/pubsub_broadcaster.hpp @@ -1,8 +1,8 @@ #ifndef SUPERGENIUS_CRDT_PUBSUB_BROADCASTER_HPP #define SUPERGENIUS_CRDT_PUBSUB_BROADCASTER_HPP -#include -#include +#include "crdt/broadcaster.hpp" +#include "base/logger.hpp" #include #include diff --git a/src/crdt/globaldb/pubsub_broadcaster_ext.cpp b/src/crdt/globaldb/pubsub_broadcaster_ext.cpp index 00218929..3a83172b 100644 --- a/src/crdt/globaldb/pubsub_broadcaster_ext.cpp +++ b/src/crdt/globaldb/pubsub_broadcaster_ext.cpp @@ -1,7 +1,7 @@ #include "pubsub_broadcaster_ext.hpp" -#include +#include "crdt/globaldb/proto/broadcast.pb.h" -#include +#include "crdt/crdt_datastore.hpp" #include #include #include diff --git a/src/crdt/globaldb/pubsub_broadcaster_ext.hpp b/src/crdt/globaldb/pubsub_broadcaster_ext.hpp index 1db5771f..201e2759 100644 --- a/src/crdt/globaldb/pubsub_broadcaster_ext.hpp +++ b/src/crdt/globaldb/pubsub_broadcaster_ext.hpp @@ -1,9 +1,9 @@ #ifndef SUPERGENIUS_CRDT_PUBSUB_BROADCASTER_EXT_HPP #define SUPERGENIUS_CRDT_PUBSUB_BROADCASTER_EXT_HPP -#include -#include -#include +#include "crdt/broadcaster.hpp" +#include "crdt/graphsync_dagsyncer.hpp" +#include "base/logger.hpp" #include #include diff --git a/src/crdt/graphsync_dagsyncer.hpp b/src/crdt/graphsync_dagsyncer.hpp index 4a0f84b7..1cfea2d0 100644 --- a/src/crdt/graphsync_dagsyncer.hpp +++ b/src/crdt/graphsync_dagsyncer.hpp @@ -2,8 +2,8 @@ #define SUPERGENIUS_GRAPHSYNC_DAGSYNCER_HPP #include "crdt/dagsyncer.hpp" -#include -#include +#include "base/logger.hpp" +#include "base/buffer.hpp" #include #include diff --git a/src/crdt/impl/crdt_datastore.cpp b/src/crdt/impl/crdt_datastore.cpp index 03e4d755..49f1279f 100644 --- a/src/crdt/impl/crdt_datastore.cpp +++ b/src/crdt/impl/crdt_datastore.cpp @@ -1,7 +1,7 @@ -#include +#include "crdt/crdt_datastore.hpp" #include #include -#include +#include "crdt/proto/bcast.pb.h" #include #include #include diff --git a/src/crdt/impl/crdt_heads.cpp b/src/crdt/impl/crdt_heads.cpp index ed3919ac..a2396266 100644 --- a/src/crdt/impl/crdt_heads.cpp +++ b/src/crdt/impl/crdt_heads.cpp @@ -1,4 +1,4 @@ -#include +#include "crdt/crdt_heads.hpp" #include #include #include diff --git a/src/crdt/impl/crdt_set.cpp b/src/crdt/impl/crdt_set.cpp index 7c989dcc..6a4ec41c 100644 --- a/src/crdt/impl/crdt_set.cpp +++ b/src/crdt/impl/crdt_set.cpp @@ -1,4 +1,4 @@ -#include +#include "crdt/crdt_set.hpp" #include #include #include diff --git a/src/crdt/impl/hierarchical_key.cpp b/src/crdt/impl/hierarchical_key.cpp index 10926c9b..d5098ae5 100644 --- a/src/crdt/impl/hierarchical_key.cpp +++ b/src/crdt/impl/hierarchical_key.cpp @@ -1,4 +1,4 @@ -#include +#include "crdt/hierarchical_key.hpp" #include namespace sgns::crdt { diff --git a/src/crdt/session_dag_syncer.hpp b/src/crdt/session_dag_syncer.hpp deleted file mode 100644 index f1ec9d08..00000000 --- a/src/crdt/session_dag_syncer.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef SUPERGENIUS_SESSIONDAGSYNCER_HPP -#define SUPERGENIUS_SESSIONDAGSYNCER_HPP - -#include - -namespace sgns::crdt -{ - /** - * @brief A SessionDAGSyncer is an abstraction to an IPLD-based p2p storage layer. - * A SessionDAGSyncer is a DAGService with the ability to publish new ipld nodes - * to the network, and retrieving others from it. - */ - class SessionDAGSyncer : public DAGSyncer - { - public: - virtual ~SessionDAGSyncer() = default; - - /** - * Check if the block with {@param cid} is locally available (therefore, it - * is considered processed). - * @param cid Content identifier of the node - * @return true if the block is locally available - */ - outcome::result HasBlock(CID cid) const = 0; - }; -} // namespace sgns::crdt - -#endif // SUPERGENIUS_SESSIONDAGSYNCER_HPP diff --git a/src/crypto/ed25519_provider.hpp b/src/crypto/ed25519_provider.hpp index 92913508..5fe18261 100644 --- a/src/crypto/ed25519_provider.hpp +++ b/src/crypto/ed25519_provider.hpp @@ -2,7 +2,7 @@ #define SUPERGENIUS_SRC_CRYPTO_ED25519_PROVIDER_HPP #include -#include +#include "outcome/outcome.hpp" #include "crypto/ed25519_types.hpp" #include "singleton/IComponent.hpp" diff --git a/src/crypto/random_generator.hpp b/src/crypto/random_generator.hpp index 7d80e4b8..73a5b4d9 100644 --- a/src/crypto/random_generator.hpp +++ b/src/crypto/random_generator.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_SRC_CRYPTO_RANDOM_GENERATOR_HPP #define SUPERGENIUS_SRC_CRYPTO_RANDOM_GENERATOR_HPP -#include "libp2p/crypto/random_generator.hpp" +#include namespace sgns::crypto { using RandomGenerator = libp2p::crypto::random::RandomGenerator; diff --git a/src/crypto/random_generator/boost_generator.hpp b/src/crypto/random_generator/boost_generator.hpp index b9831ad7..a26c9c9d 100644 --- a/src/crypto/random_generator/boost_generator.hpp +++ b/src/crypto/random_generator/boost_generator.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_SRC_CRYPTO_RANDOM_GENERATOR_BOOST_GENERATOR_HPP #define SUPERGENIUS_SRC_CRYPTO_RANDOM_GENERATOR_BOOST_GENERATOR_HPP -#include "libp2p/crypto/random_generator/boost_generator.hpp" +#include namespace sgns::crypto { diff --git a/src/crypto/sr25519_provider.hpp b/src/crypto/sr25519_provider.hpp index 78ceca56..a22dae76 100644 --- a/src/crypto/sr25519_provider.hpp +++ b/src/crypto/sr25519_provider.hpp @@ -4,7 +4,7 @@ #define SUPERGENIUS_SRC_CRYPTO_SR25519_PROVIDER_HPP #include -#include +#include "outcome/outcome.hpp" #include "crypto/sr25519_types.hpp" #include "singleton/IComponent.hpp" diff --git a/src/extensions/impl/crypto_extension.cpp b/src/extensions/impl/crypto_extension.cpp index 99eecae0..1af67a27 100644 --- a/src/extensions/impl/crypto_extension.cpp +++ b/src/extensions/impl/crypto_extension.cpp @@ -2,9 +2,10 @@ #include #include -#include +#include #include + #include "crypto/bip39/bip39_provider.hpp" #include "crypto/bip39/mnemonic.hpp" #include "crypto/crypto_store.hpp" diff --git a/src/injector/application_injector.hpp b/src/injector/application_injector.hpp index 059cf0b1..9771aeef 100644 --- a/src/injector/application_injector.hpp +++ b/src/injector/application_injector.hpp @@ -17,7 +17,7 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "api/service/api_service.hpp" #include "api/service/author/author_jrpc_processor.hpp" #include "api/service/author/impl/author_api_impl.hpp" diff --git a/src/injector/block_producing_node_injector.hpp b/src/injector/block_producing_node_injector.hpp index 23e6ff6e..9a4d1aae 100644 --- a/src/injector/block_producing_node_injector.hpp +++ b/src/injector/block_producing_node_injector.hpp @@ -1,9 +1,17 @@ #ifndef SUPERGENIUS_SRC_INJECTOR_BLOCK_PRODUCING_NODE_INJECTOR_HPP #define SUPERGENIUS_SRC_INJECTOR_BLOCK_PRODUCING_NODE_INJECTOR_HPP -#include "application/app_config.hpp" +#include +#include "application/app_config.hpp" +#include "application/key_storage.hpp" #include "platform/platform.hpp" +#include "injector/application_injector.hpp" +#include "runtime/dummy/finality_api_dummy.hpp" +#include "verification/finality/impl/syncing_round_observer.hpp" +#include "verification/production.hpp" +#include "verification/production/impl/production_lottery_impl.hpp" + namespace sgns::injector { template auto makeBlockProducingNodeInjector( diff --git a/src/local_secure_storage/ISecureStorage.hpp b/src/local_secure_storage/ISecureStorage.hpp index 8f750a07..00b9ba80 100644 --- a/src/local_secure_storage/ISecureStorage.hpp +++ b/src/local_secure_storage/ISecureStorage.hpp @@ -9,8 +9,7 @@ #define _I_SECURE_STORAGE_HPP_ #include -#include -#include + #include "outcome/outcome.hpp" #include "singleton/IComponent.hpp" diff --git a/src/network/adapter/adapter_errors.hpp b/src/network/adapter/adapter_errors.hpp index 8c3144bd..b838ec22 100644 --- a/src/network/adapter/adapter_errors.hpp +++ b/src/network/adapter/adapter_errors.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_ADAPTERS_ERRORS #define SUPERGENIUS_ADAPTERS_ERRORS -#include +#include "outcome/outcome.hpp" namespace sgns::network { /** diff --git a/src/network/common.hpp b/src/network/common.hpp index 19e2256f..04d34285 100644 --- a/src/network/common.hpp +++ b/src/network/common.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_NETWORK_COMMON_HPP #define SUPERGENIUS_NETWORK_COMMON_HPP -#include "libp2p/peer/protocol.hpp" +#include namespace sgns::network { const libp2p::peer::Protocol kSyncProtocol = "/supergenius-sync/1.0.0"; diff --git a/src/network/helpers/protobuf_message_read_writer.hpp b/src/network/helpers/protobuf_message_read_writer.hpp index 037ea56b..ed95cec1 100644 --- a/src/network/helpers/protobuf_message_read_writer.hpp +++ b/src/network/helpers/protobuf_message_read_writer.hpp @@ -7,7 +7,7 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "network/helpers/message_read_writer.hpp" #include "network/adapters/uvar.hpp" diff --git a/src/network/helpers/scale_message_read_writer.hpp b/src/network/helpers/scale_message_read_writer.hpp index f1142271..05dec85c 100644 --- a/src/network/helpers/scale_message_read_writer.hpp +++ b/src/network/helpers/scale_message_read_writer.hpp @@ -7,7 +7,7 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "scale/scale.hpp" diff --git a/src/network/impl/gossiper_broadcast.hpp b/src/network/impl/gossiper_broadcast.hpp index c4ca7627..cb8ee68c 100644 --- a/src/network/impl/gossiper_broadcast.hpp +++ b/src/network/impl/gossiper_broadcast.hpp @@ -6,10 +6,9 @@ #include #include - -#include "libp2p/connection/stream.hpp" -#include "libp2p/host/host.hpp" -#include "libp2p/peer/peer_info.hpp" +#include +#include +#include #include "network/gossiper.hpp" #include "network/types/gossip_message.hpp" #include "network/types/peer_list.hpp" diff --git a/src/network/impl/loopback_stream.hpp b/src/network/impl/loopback_stream.hpp index 30a32492..f5b1cd66 100644 --- a/src/network/impl/loopback_stream.hpp +++ b/src/network/impl/loopback_stream.hpp @@ -4,8 +4,8 @@ #include #include +#include -#include "base/buffer.hpp" #include "base/logger.hpp" #include "outcome/outcome.hpp" diff --git a/src/network/impl/router_libp2p.cpp b/src/network/impl/router_libp2p.cpp index d454e318..fe1a62c1 100644 --- a/src/network/impl/router_libp2p.cpp +++ b/src/network/impl/router_libp2p.cpp @@ -4,8 +4,7 @@ #include "network/common.hpp" #include "network/rpc.hpp" #include "network/types/block_announce.hpp" -#include "network/types/blocks_request.hpp" -#include "network/types/blocks_response.hpp" +#include "network/helpers/scale_message_read_writer.hpp" #include "network/types/peer_list.hpp" #include "scale/scale.hpp" diff --git a/src/network/impl/router_libp2p.hpp b/src/network/impl/router_libp2p.hpp index 39cc8b47..82d4d278 100644 --- a/src/network/impl/router_libp2p.hpp +++ b/src/network/impl/router_libp2p.hpp @@ -3,17 +3,12 @@ #define SUPERGENIUS_SRC_NETWORK_IMPL_ROUTER_LIBP2P_HPP #include - +#include #include "verification/finality/round_observer.hpp" -#include "libp2p/connection/stream.hpp" -#include "libp2p/host/host.hpp" -#include "libp2p/peer/peer_info.hpp" -#include "libp2p/peer/protocol.hpp" #include "network/production_observer.hpp" #include "network/extrinsic_observer.hpp" #include "network/gossiper.hpp" -#include "network/helpers/scale_message_read_writer.hpp" #include "network/impl/loopback_stream.hpp" #include "network/router.hpp" #include "network/sync_protocol_observer.hpp" @@ -21,6 +16,7 @@ #include "network/types/own_peer_info.hpp" #include "network/types/peer_list.hpp" #include "base/logger.hpp" + namespace sgns::network { class RouterLibp2p : public Router, public std::enable_shared_from_this { diff --git a/src/network/impl/sync_protocol_observer_impl.cpp b/src/network/impl/sync_protocol_observer_impl.cpp index a0d830c2..76f025a8 100644 --- a/src/network/impl/sync_protocol_observer_impl.cpp +++ b/src/network/impl/sync_protocol_observer_impl.cpp @@ -3,7 +3,7 @@ #include -#include "network/common.hpp" +#include "network/types/block_attributes.hpp" OUTCOME_CPP_DEFINE_CATEGORY_3(sgns::network, SyncProtocolObserverImpl::Error, diff --git a/src/network/rpc.hpp b/src/network/rpc.hpp index c4fbc769..e6638f60 100644 --- a/src/network/rpc.hpp +++ b/src/network/rpc.hpp @@ -1,17 +1,16 @@ - - #ifndef SUPERGENIUS_RPC_HPP #define SUPERGENIUS_RPC_HPP #include #include -#include -#include "base/buffer.hpp" -#include "libp2p/basic/readwriter.hpp" -#include "libp2p/host/host.hpp" -#include "libp2p/peer/peer_info.hpp" -#include "libp2p/peer/protocol.hpp" +#include "outcome/outcome.hpp" +#include + +#include +#include +#include +#include namespace sgns::network { /** diff --git a/src/network/sync_protocol_client.hpp b/src/network/sync_protocol_client.hpp index 79e43c9f..988a725c 100644 --- a/src/network/sync_protocol_client.hpp +++ b/src/network/sync_protocol_client.hpp @@ -5,7 +5,7 @@ #include -#include +#include "outcome/outcome.hpp" #include "network/types/blocks_request.hpp" #include "network/types/blocks_response.hpp" diff --git a/src/network/sync_protocol_observer.hpp b/src/network/sync_protocol_observer.hpp index 0f7a2087..46b8f16b 100644 --- a/src/network/sync_protocol_observer.hpp +++ b/src/network/sync_protocol_observer.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_SYNC_PROTOCOL_OBSERVER_HPP #define SUPERGENIUS_SYNC_PROTOCOL_OBSERVER_HPP -#include +#include "outcome/outcome.hpp" #include "network/types/blocks_request.hpp" #include "network/types/blocks_response.hpp" #include "singleton/IComponent.hpp" diff --git a/src/primitives/authority.hpp b/src/primitives/authority.hpp index d7ed41c5..75da6b67 100644 --- a/src/primitives/authority.hpp +++ b/src/primitives/authority.hpp @@ -4,9 +4,7 @@ #define SUPERGENIUS_AUTHORITY_HPP #include -#include - -#include "primitives/common.hpp" +#include "primitives/session_key.hpp" namespace sgns::primitives { using AuthorityWeight = uint64_t; diff --git a/src/primitives/common.hpp b/src/primitives/common.hpp index 84dcea2c..9e2acd8c 100644 --- a/src/primitives/common.hpp +++ b/src/primitives/common.hpp @@ -6,7 +6,7 @@ #include #include -#include "primitives/session_key.hpp" +#include "base/blob.hpp" namespace sgns::primitives { using BlocksRequestId = uint64_t; diff --git a/src/primitives/inherent_data.hpp b/src/primitives/inherent_data.hpp index a62c90c0..40f6e6c2 100644 --- a/src/primitives/inherent_data.hpp +++ b/src/primitives/inherent_data.hpp @@ -8,12 +8,11 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "base/blob.hpp" #include "base/buffer.hpp" #include "base/outcome_throw.hpp" #include "scale/scale.hpp" -#include "scale/scale_error.hpp" namespace sgns::primitives { /** diff --git a/src/primitives/parachain_host.hpp b/src/primitives/parachain_host.hpp index 4d6beed4..0c8043e5 100644 --- a/src/primitives/parachain_host.hpp +++ b/src/primitives/parachain_host.hpp @@ -9,7 +9,6 @@ #include #include #include "base/blob.hpp" -#include "base/buffer.hpp" namespace sgns::primitives::parachain { /** diff --git a/src/primitives/production_configuration.hpp b/src/primitives/production_configuration.hpp index a4e58bbc..e2cc1a68 100644 --- a/src/primitives/production_configuration.hpp +++ b/src/primitives/production_configuration.hpp @@ -4,10 +4,10 @@ #define SUPERGENIUS_CORE_PRIMITIVES_PRODUCTION_CONFIGURATION_HPP #include "base/blob.hpp" -#include "verification/production/common.hpp" #include "crypto/sr25519_types.hpp" #include "primitives/authority.hpp" #include "singleton/IComponent.hpp" +#include "verification/production/common.hpp" namespace sgns::primitives { diff --git a/src/primitives/scheduled_change.hpp b/src/primitives/scheduled_change.hpp index 87170148..9be948a6 100644 --- a/src/primitives/scheduled_change.hpp +++ b/src/primitives/scheduled_change.hpp @@ -3,7 +3,6 @@ #define SUPERGENIUS_SRC_PRIMITIVES_SCHEDULED_CHANGE #include "primitives/authority.hpp" -#include "primitives/common.hpp" namespace sgns::primitives { struct DelayInChain { diff --git a/src/primitives/transaction_validity.hpp b/src/primitives/transaction_validity.hpp index 5e0c0308..0284eb09 100644 --- a/src/primitives/transaction_validity.hpp +++ b/src/primitives/transaction_validity.hpp @@ -7,7 +7,7 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "primitives/transaction.hpp" namespace sgns::primitives { diff --git a/src/primitives/version.hpp b/src/primitives/version.hpp index bbbc6027..184ec5b8 100644 --- a/src/primitives/version.hpp +++ b/src/primitives/version.hpp @@ -3,10 +3,11 @@ #ifndef SUPERGENIUS_SRC_PRIMITIVES_VERSION_HPP #define SUPERGENIUS_SRC_PRIMITIVES_VERSION_HPP -#include #include #include +#include "base/blob.hpp" + namespace sgns::primitives { /** * This is the same structure as RuntimeVersion from substrate diff --git a/src/processing/impl/processing_core_impl.cpp b/src/processing/impl/processing_core_impl.cpp index 009395ee..08690db9 100644 --- a/src/processing/impl/processing_core_impl.cpp +++ b/src/processing/impl/processing_core_impl.cpp @@ -1,5 +1,9 @@ -#include +#include "processing/impl/processing_core_impl.hpp" + #include + +#include "FileManager.hpp" + namespace sgns::processing { void ProcessingCoreImpl::ProcessSubTask( diff --git a/src/processing/impl/processing_core_impl.hpp b/src/processing/impl/processing_core_impl.hpp index 29a65d19..a057343f 100644 --- a/src/processing/impl/processing_core_impl.hpp +++ b/src/processing/impl/processing_core_impl.hpp @@ -1,20 +1,21 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_IMPL_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_IMPL_HPP -#include -#include + +#include #include #include +#include + #include #include #include #include #include #include + #include "processing/processing_core.hpp" #include "crdt/globaldb/globaldb.hpp" #include "processing/processing_processor.hpp" -#include "FileManager.hpp" -#include "URLStringUtil.h" namespace sgns::processing { diff --git a/src/processing/impl/processing_subtask_result_storage_impl.cpp b/src/processing/impl/processing_subtask_result_storage_impl.cpp index 2c35b74b..e281ea8d 100644 --- a/src/processing/impl/processing_subtask_result_storage_impl.cpp +++ b/src/processing/impl/processing_subtask_result_storage_impl.cpp @@ -1,6 +1,6 @@ #include "processing_subtask_result_storage_impl.hpp" -#include #include +#include namespace sgns::processing { diff --git a/src/processing/impl/processing_subtask_result_storage_impl.hpp b/src/processing/impl/processing_subtask_result_storage_impl.hpp index 5609f5b2..9f9e59d4 100644 --- a/src/processing/impl/processing_subtask_result_storage_impl.hpp +++ b/src/processing/impl/processing_subtask_result_storage_impl.hpp @@ -6,8 +6,8 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_SUBTASK_RESULT_STORAGE_IMPL_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_SUBTASK_RESULT_STORAGE_IMPL_HPP -#include -#include +#include "processing/processing_subtask_result_storage.hpp" +#include "crdt/globaldb/globaldb.hpp" namespace sgns::processing { diff --git a/src/processing/impl/processing_task_queue_impl.cpp b/src/processing/impl/processing_task_queue_impl.cpp index 4c0d47ca..7520b3fb 100644 --- a/src/processing/impl/processing_task_queue_impl.cpp +++ b/src/processing/impl/processing_task_queue_impl.cpp @@ -1,4 +1,4 @@ -#include +#include "processing/impl/processing_task_queue_impl.hpp" namespace sgns::processing { diff --git a/src/processing/impl/processing_task_queue_impl.hpp b/src/processing/impl/processing_task_queue_impl.hpp index 33a1a11c..83727827 100644 --- a/src/processing/impl/processing_task_queue_impl.hpp +++ b/src/processing/impl/processing_task_queue_impl.hpp @@ -6,11 +6,11 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_TASK_QUEUE_IMPL_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_TASK_QUEUE_IMPL_HPP -#include #include + #include -#include "outcome/outcome.hpp" +#include "outcome/outcome.hpp" #include "processing/processing_task_queue.hpp" #include "crdt/globaldb/globaldb.hpp" diff --git a/src/processing/processing_core.hpp b/src/processing/processing_core.hpp index e06b3c10..eab7aae8 100644 --- a/src/processing/processing_core.hpp +++ b/src/processing/processing_core.hpp @@ -5,7 +5,7 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_HPP -#include +#include "processing/proto/SGProcessing.pb.h" #include #include diff --git a/src/processing/processing_engine.hpp b/src/processing/processing_engine.hpp index 2ce92203..723a5a4e 100644 --- a/src/processing/processing_engine.hpp +++ b/src/processing/processing_engine.hpp @@ -6,9 +6,9 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_ENGINE_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_ENGINE_HPP -#include -#include -#include +#include "processing/processing_core.hpp" +#include "processing/processing_subtask_queue_accessor.hpp" +#include "base/logger.hpp" namespace sgns::processing { diff --git a/src/processing/processing_imagesplit.cpp b/src/processing/processing_imagesplit.cpp index 50070595..42dcde89 100644 --- a/src/processing/processing_imagesplit.cpp +++ b/src/processing/processing_imagesplit.cpp @@ -1,6 +1,6 @@ #define STB_IMAGE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION -#include +#include "processing/processing_imagesplit.hpp" namespace sgns::processing { @@ -54,7 +54,7 @@ namespace sgns::processing return splitparts_.at(part); } - size_t ImageSplitter::GetPartByCid( const libp2p::multi::ContentIdentifier &cid ) + size_t ImageSplitter::GetPartByCid( const libp2p::multi::ContentIdentifier &cid ) const { //Find the index of cid in cids_ auto it = std::find(cids_.begin(), cids_.end(), cid); diff --git a/src/processing/processing_imagesplit.hpp b/src/processing/processing_imagesplit.hpp index 55f3cda8..12dc4f8e 100644 --- a/src/processing/processing_imagesplit.hpp +++ b/src/processing/processing_imagesplit.hpp @@ -4,10 +4,7 @@ */ #ifndef PROCESSING_IMAGESPLIT_HPP #define PROCESSING_IMAGESPLIT_HPP -#include -#include -#include -#include +#include #include #include #include diff --git a/src/processing/processing_node.cpp b/src/processing/processing_node.cpp index 165dc6ac..3b9f24a5 100644 --- a/src/processing/processing_node.cpp +++ b/src/processing/processing_node.cpp @@ -1,8 +1,10 @@ #include "processing_node.hpp" -#include "processing_subtask_queue_channel_pubsub.hpp" -#include + #include +#include "processing_subtask_queue_channel_pubsub.hpp" +#include "processing/processing_subtask_queue_accessor_impl.hpp" + namespace sgns::processing { //////////////////////////////////////////////////////////////////////////////// diff --git a/src/processing/processing_node.hpp b/src/processing/processing_node.hpp index 86f03719..dd700389 100644 --- a/src/processing/processing_node.hpp +++ b/src/processing/processing_node.hpp @@ -6,14 +6,14 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_NODE #define GRPC_FOR_SUPERGENIUS_PROCESSING_NODE -#include -#include -#include -#include -#include - #include +#include "processing/processing_engine.hpp" +#include "processing/processing_subtask_queue_manager.hpp" +#include "processing/processing_subtask_queue_accessor.hpp" +#include "processing/processing_subtask_state_storage.hpp" +#include "processing/processing_subtask_result_storage.hpp" + namespace sgns::processing { /** diff --git a/src/processing/processing_processor.hpp b/src/processing/processing_processor.hpp index d0e05d94..c630ba7f 100644 --- a/src/processing/processing_processor.hpp +++ b/src/processing/processing_processor.hpp @@ -5,13 +5,12 @@ */ #ifndef PROCESSING_PROCESSOR_HPP #define PROCESSING_PROCESSOR_HPP -#include -#include -#include + +#include #include #include -#include -#include + +#include "processing/proto/SGProcessing.pb.h" namespace sgns::processing { diff --git a/src/processing/processing_service.hpp b/src/processing/processing_service.hpp index b8d03bf5..bf9a7b03 100644 --- a/src/processing/processing_service.hpp +++ b/src/processing/processing_service.hpp @@ -1,11 +1,11 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_SERVICE #define GRPC_FOR_SUPERGENIUS_PROCESSING_SERVICE -#include -#include - #include +#include "processing/processing_node.hpp" +#include "processing/processing_subtask_enqueuer.hpp" + namespace sgns::processing { class ProcessingServiceImpl diff --git a/src/processing/processing_subtask_enqueuer.hpp b/src/processing/processing_subtask_enqueuer.hpp index d113fb76..3faf794b 100644 --- a/src/processing/processing_subtask_enqueuer.hpp +++ b/src/processing/processing_subtask_enqueuer.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_HPP -#include +#include "processing/proto/SGProcessing.pb.h" #include #include diff --git a/src/processing/processing_subtask_enqueuer_impl.hpp b/src/processing/processing_subtask_enqueuer_impl.hpp index b46a7500..f2da2f59 100644 --- a/src/processing/processing_subtask_enqueuer_impl.hpp +++ b/src/processing/processing_subtask_enqueuer_impl.hpp @@ -1,12 +1,13 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_IMPL_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_IMPL_HPP -#include -#include -#include #include #include +#include "base/logger.hpp" +#include "processing/processing_subtask_enqueuer.hpp" +#include "processing/processing_task_queue.hpp" + namespace sgns::processing { // Encapsulates subtask queue construction algorithm diff --git a/src/processing/processing_subtask_queue.hpp b/src/processing/processing_subtask_queue.hpp index acb26856..be43c054 100644 --- a/src/processing/processing_subtask_queue.hpp +++ b/src/processing/processing_subtask_queue.hpp @@ -6,8 +6,8 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_HPP -#include -#include +#include "processing/proto/SGProcessing.pb.h" +#include "base/logger.hpp" namespace sgns::processing { diff --git a/src/processing/processing_subtask_queue_accessor.hpp b/src/processing/processing_subtask_queue_accessor.hpp index acb9ea5b..fc21d4df 100644 --- a/src/processing/processing_subtask_queue_accessor.hpp +++ b/src/processing/processing_subtask_queue_accessor.hpp @@ -6,7 +6,7 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_HPP -#include +#include "processing/proto/SGProcessing.pb.h" #include #include diff --git a/src/processing/processing_subtask_queue_accessor_impl.hpp b/src/processing/processing_subtask_queue_accessor_impl.hpp index 9d2e1611..04dd1af1 100644 --- a/src/processing/processing_subtask_queue_accessor_impl.hpp +++ b/src/processing/processing_subtask_queue_accessor_impl.hpp @@ -6,11 +6,11 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_IMPL_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_IMPL_HPP -#include -#include -#include -#include -#include +#include "processing/processing_subtask_queue_accessor.hpp" +#include "processing/processing_subtask_queue_manager.hpp" +#include "processing/processing_subtask_state_storage.hpp" +#include "processing/processing_subtask_result_storage.hpp" +#include "processing/processing_validation_core.hpp" #include #include diff --git a/src/processing/processing_subtask_queue_channel.hpp b/src/processing/processing_subtask_queue_channel.hpp index 367a1176..e5156dca 100644 --- a/src/processing/processing_subtask_queue_channel.hpp +++ b/src/processing/processing_subtask_queue_channel.hpp @@ -6,7 +6,7 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_CHANNEL_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_CHANNEL_HPP -#include +#include "processing/proto/SGProcessing.pb.h" #include #include diff --git a/src/processing/processing_subtask_queue_channel_pubsub.hpp b/src/processing/processing_subtask_queue_channel_pubsub.hpp index a0e4750a..de872cac 100644 --- a/src/processing/processing_subtask_queue_channel_pubsub.hpp +++ b/src/processing/processing_subtask_queue_channel_pubsub.hpp @@ -6,10 +6,10 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_CHANNEL_PUBSUB_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_CHANNEL_PUBSUB_HPP -#include +#include "processing/processing_subtask_queue_channel.hpp" #include -#include +#include "base/logger.hpp" namespace sgns::processing { diff --git a/src/processing/processing_subtask_queue_manager.hpp b/src/processing/processing_subtask_queue_manager.hpp index 4602a560..bd23cf1c 100644 --- a/src/processing/processing_subtask_queue_manager.hpp +++ b/src/processing/processing_subtask_queue_manager.hpp @@ -6,10 +6,10 @@ #ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_MANAGER_HPP #define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_MANAGER_HPP -#include -#include +#include "processing/processing_subtask_queue.hpp" +#include "processing/processing_subtask_queue_channel.hpp" -#include +#include "processing/proto/SGProcessing.pb.h" #include #include diff --git a/src/processing/processing_subtask_result_storage.hpp b/src/processing/processing_subtask_result_storage.hpp index 39d8ffc7..818afc85 100644 --- a/src/processing/processing_subtask_result_storage.hpp +++ b/src/processing/processing_subtask_result_storage.hpp @@ -6,8 +6,7 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_SUTASK_RESULT_STORAGE_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_SUTASK_RESULT_STORAGE_HPP -#include -#include +#include "processing/proto/SGProcessing.pb.h" namespace sgns::processing { diff --git a/src/processing/processing_subtask_state_storage.hpp b/src/processing/processing_subtask_state_storage.hpp index 94904272..66ca25a1 100644 --- a/src/processing/processing_subtask_state_storage.hpp +++ b/src/processing/processing_subtask_state_storage.hpp @@ -6,7 +6,7 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_SUBTASK_STATE_STORAGE_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_SUBTASK_STATE_STORAGE_HPP -#include +#include "processing/proto/SGProcessing.pb.h" #include namespace sgns::processing diff --git a/src/processing/processing_task_queue.hpp b/src/processing/processing_task_queue.hpp index 2f5023ca..2b940e1a 100644 --- a/src/processing/processing_task_queue.hpp +++ b/src/processing/processing_task_queue.hpp @@ -6,9 +6,8 @@ #ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_TASK_QUEUE_HPP #define GRPC_FOR_SUPERGENIUS_PROCESSING_TASK_QUEUE_HPP -#include +#include "processing/proto/SGProcessing.pb.h" #include "outcome/outcome.hpp" -#include #include class ProcessingTaskQueue diff --git a/src/processing/processing_tasksplit.cpp b/src/processing/processing_tasksplit.cpp index 5d69e9ac..bac5722d 100644 --- a/src/processing/processing_tasksplit.cpp +++ b/src/processing/processing_tasksplit.cpp @@ -5,6 +5,7 @@ * @author Henrique A. Klein (hklein@gnus.ai) */ #include "processing/processing_tasksplit.hpp" + namespace sgns { namespace processing diff --git a/src/processing/processing_tasksplit.hpp b/src/processing/processing_tasksplit.hpp index 759eb133..80b7fa18 100644 --- a/src/processing/processing_tasksplit.hpp +++ b/src/processing/processing_tasksplit.hpp @@ -8,8 +8,10 @@ #define _PROCESSING_TASKSPLIT_HPP_ #include #include + #include -#include + +#include "processing/proto/SGProcessing.pb.h" #include "processing/processing_imagesplit.hpp" #include "processing/processing_subtask_state_storage.hpp" namespace sgns diff --git a/src/processing/processing_validation_core.hpp b/src/processing/processing_validation_core.hpp index 7933b4d7..eeaa7ee1 100644 --- a/src/processing/processing_validation_core.hpp +++ b/src/processing/processing_validation_core.hpp @@ -6,10 +6,10 @@ #ifndef SUPERGENIUS_PROCESSING_VALIDATION_CORE_HPP #define SUPERGENIUS_PROCESSING_VALIDATION_CORE_HPP -#include -#include +#include "processing/processing_subtask_queue.hpp" +#include "processing/processing_subtask_queue_channel.hpp" -#include +#include "processing/proto/SGProcessing.pb.h" #include #include diff --git a/src/processing/processors/processing_processor_mnn_posenet.cpp b/src/processing/processors/processing_processor_mnn_posenet.cpp index f4d1a399..d4e09351 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.cpp +++ b/src/processing/processors/processing_processor_mnn_posenet.cpp @@ -1,4 +1,5 @@ #include "processing_processor_mnn_posenet.hpp" +#include "processing/processing_imagesplit.hpp" //#define STB_IMAGE_IMPLEMENTATION //#define STB_IMAGE_WRITE_IMPLEMENTATION diff --git a/src/processing/processors/processing_processor_mnn_posenet.hpp b/src/processing/processors/processing_processor_mnn_posenet.hpp index 509cde1c..2b4f9633 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.hpp +++ b/src/processing/processors/processing_processor_mnn_posenet.hpp @@ -3,14 +3,13 @@ * @author Justin Church */ #pragma once -#include -#include -#include +#include #include #include + #include #include -#include +#include "processing/processing_processor.hpp" #define MNN_OPEN_TIME_TRACE #include diff --git a/src/runtime/block_builder.hpp b/src/runtime/block_builder.hpp index be864285..6e30440a 100644 --- a/src/runtime/block_builder.hpp +++ b/src/runtime/block_builder.hpp @@ -4,7 +4,7 @@ #include -#include +#include "outcome/outcome.hpp" #include "primitives/apply_result.hpp" #include "primitives/block.hpp" #include "primitives/block_header.hpp" diff --git a/src/runtime/common/trie_storage_provider_impl.hpp b/src/runtime/common/trie_storage_provider_impl.hpp index 37e00196..2f129431 100644 --- a/src/runtime/common/trie_storage_provider_impl.hpp +++ b/src/runtime/common/trie_storage_provider_impl.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_RUNTIME_COMMON_TRIE_STORAGE_PROVIDER_IMPL #define SUPERGENIUS_SRC_RUNTIME_COMMON_TRIE_STORAGE_PROVIDER_IMPL -#include +#include "base/buffer.hpp" #include "runtime/trie_storage_provider.hpp" #include "storage/trie/trie_storage.hpp" diff --git a/src/runtime/core.hpp b/src/runtime/core.hpp index c191df85..c2eca9c6 100644 --- a/src/runtime/core.hpp +++ b/src/runtime/core.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_RUNTIME_CORE_HPP #define SUPERGENIUS_RUNTIME_CORE_HPP -#include +#include "outcome/outcome.hpp" #include #include "primitives/authority.hpp" diff --git a/src/runtime/finality_api.hpp b/src/runtime/finality_api.hpp index 12f195a0..0844336b 100644 --- a/src/runtime/finality_api.hpp +++ b/src/runtime/finality_api.hpp @@ -3,7 +3,7 @@ #define SUPERGENIUS_SRC_RUNTIME_FINALITY_API_HPP #include -#include +#include "outcome/outcome.hpp" #include "base/buffer.hpp" #include "primitives/authority.hpp" #include "primitives/block_id.hpp" diff --git a/src/runtime/metadata.hpp b/src/runtime/metadata.hpp index 0da3a41b..b5993ff5 100644 --- a/src/runtime/metadata.hpp +++ b/src/runtime/metadata.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_RUNTIME_METADATA_HPP #define SUPERGENIUS_SRC_RUNTIME_METADATA_HPP -#include +#include "outcome/outcome.hpp" #include "primitives/opaque_metadata.hpp" namespace sgns::runtime { diff --git a/src/runtime/offchain_worker.hpp b/src/runtime/offchain_worker.hpp index 76e3b848..5f0c212d 100644 --- a/src/runtime/offchain_worker.hpp +++ b/src/runtime/offchain_worker.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_RUNTIME_OFFCHAIN_WORKER_HPP #define SUPERGENIUS_SRC_RUNTIME_OFFCHAIN_WORKER_HPP -#include +#include "outcome/outcome.hpp" #include "base/buffer.hpp" #include "primitives/common.hpp" diff --git a/src/runtime/parachain_host.hpp b/src/runtime/parachain_host.hpp index b1b86083..fa6903b8 100644 --- a/src/runtime/parachain_host.hpp +++ b/src/runtime/parachain_host.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_RUNTIME_PARACHAIN_HOST_HPP #define SUPERGENIUS_SRC_RUNTIME_PARACHAIN_HOST_HPP -#include "primitives/block_id.hpp" +#include "base/buffer.hpp" #include "primitives/parachain_host.hpp" namespace sgns::runtime { diff --git a/src/runtime/production_api.hpp b/src/runtime/production_api.hpp index e26da1cf..b2f0d533 100644 --- a/src/runtime/production_api.hpp +++ b/src/runtime/production_api.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_SRC_RUNTIME_PRODUCTION_API_HPP #define SUPERGENIUS_SRC_RUNTIME_PRODUCTION_API_HPP -#include +#include "outcome/outcome.hpp" #include "primitives/production_configuration.hpp" #include "primitives/block_id.hpp" diff --git a/src/scale/detail/fixed_witdh_integer.hpp b/src/scale/detail/fixed_witdh_integer.hpp index ffe4359f..c349d61a 100644 --- a/src/scale/detail/fixed_witdh_integer.hpp +++ b/src/scale/detail/fixed_witdh_integer.hpp @@ -5,6 +5,7 @@ #include #include + #include "base/outcome_throw.hpp" #include "macro/unreachable.hpp" #include "scale/scale_error.hpp" diff --git a/src/scale/detail/tuple.hpp b/src/scale/detail/tuple.hpp index 37588dd6..21016063 100644 --- a/src/scale/detail/tuple.hpp +++ b/src/scale/detail/tuple.hpp @@ -3,6 +3,7 @@ #ifndef SUPERGENIUS_SCALE_DETAIL_TUPLE_HPP #define SUPERGENIUS_SCALE_DETAIL_TUPLE_HPP +#include #include namespace sgns::scale::detail { diff --git a/src/scale/detail/variant.hpp b/src/scale/detail/variant.hpp index 7303e34f..90f8ee67 100644 --- a/src/scale/detail/variant.hpp +++ b/src/scale/detail/variant.hpp @@ -4,7 +4,6 @@ #define SUPERGENIUS_SCALE_DETAIL_VARIANT_HPP #include -#include #include "base/outcome_throw.hpp" #include "base/visitor.hpp" #include "scale/scale_error.hpp" diff --git a/src/scale/scale.hpp b/src/scale/scale.hpp index 5d90642e..7e59e389 100644 --- a/src/scale/scale.hpp +++ b/src/scale/scale.hpp @@ -8,7 +8,8 @@ #include #include #include -#include + +#include "outcome/outcome.hpp" #include "scale/scale_decoder_stream.hpp" #include "scale/scale_encoder_stream.hpp" diff --git a/src/scale/scale_decoder_stream.hpp b/src/scale/scale_decoder_stream.hpp index cf6b189d..0bba492e 100644 --- a/src/scale/scale_decoder_stream.hpp +++ b/src/scale/scale_decoder_stream.hpp @@ -4,15 +4,16 @@ #define SUPERGENIUS_SRC_SCALE_SCALE_DECODER_STREAM_HPP #include +#include +#include #include #include #include + #include "base/outcome_throw.hpp" #include "scale/detail/fixed_witdh_integer.hpp" -#include "scale/detail/tuple.hpp" -#include "scale/detail/variant.hpp" -#include +#include "scale/types.hpp" namespace sgns::scale { class ScaleDecoderStream { diff --git a/src/scale/scale_encoder_stream.hpp b/src/scale/scale_encoder_stream.hpp index 042e1ad3..c1e5b5df 100644 --- a/src/scale/scale_encoder_stream.hpp +++ b/src/scale/scale_encoder_stream.hpp @@ -4,13 +4,15 @@ #define SUPERGENIUS_SRC_SCALE_SCALE_ENCODER_STREAM_HPP #include +#include +#include +#include #include #include + #include "scale/detail/fixed_witdh_integer.hpp" -#include "scale/detail/tuple.hpp" -#include "scale/detail/variant.hpp" -#include +#include "scale/types.hpp" namespace sgns::scale { /** diff --git a/src/scale/scale_error.hpp b/src/scale/scale_error.hpp index c82a258c..8417b498 100644 --- a/src/scale/scale_error.hpp +++ b/src/scale/scale_error.hpp @@ -3,8 +3,7 @@ #ifndef SUPERGENIUS_SCALE_ERROR_HPP #define SUPERGENIUS_SCALE_ERROR_HPP -#include -#include "scale/types.hpp" +#include "outcome/outcome.hpp" namespace sgns::scale { /** diff --git a/src/scale/types.hpp b/src/scale/types.hpp index 2868d5d0..3eb777bd 100644 --- a/src/scale/types.hpp +++ b/src/scale/types.hpp @@ -5,7 +5,7 @@ #include #include -#include +#include "outcome/outcome.hpp" namespace sgns::scale { /** diff --git a/src/storage/buffer_map_types.hpp b/src/storage/buffer_map_types.hpp index ce91aa81..409b8fda 100644 --- a/src/storage/buffer_map_types.hpp +++ b/src/storage/buffer_map_types.hpp @@ -11,7 +11,6 @@ #include #include "base/buffer.hpp" -#include "storage/face/batchable.hpp" #include "storage/face/generic_storage.hpp" #include "storage/face/write_batch.hpp" diff --git a/src/storage/changes_trie/changes_tracker.hpp b/src/storage/changes_trie/changes_tracker.hpp index 5c17edf4..927090c4 100644 --- a/src/storage/changes_trie/changes_tracker.hpp +++ b/src/storage/changes_trie/changes_tracker.hpp @@ -3,7 +3,6 @@ #include "base/buffer.hpp" #include "primitives/common.hpp" -#include "primitives/extrinsic.hpp" #include "storage/changes_trie/changes_trie_config.hpp" #include "singleton/IComponent.hpp" diff --git a/src/storage/changes_trie/changes_trie_config.hpp b/src/storage/changes_trie/changes_trie_config.hpp index cb05d54e..eaf7ad17 100644 --- a/src/storage/changes_trie/changes_trie_config.hpp +++ b/src/storage/changes_trie/changes_trie_config.hpp @@ -4,6 +4,7 @@ #define SUPERGENIUS_STORAGE_CHANGES_TRIE_CHANGES_TRIE_CONFIG #include +#include namespace sgns::storage::changes_trie { diff --git a/src/storage/changes_trie/impl/changes_trie.hpp b/src/storage/changes_trie/impl/changes_trie.hpp index 9b92e293..fa078202 100644 --- a/src/storage/changes_trie/impl/changes_trie.hpp +++ b/src/storage/changes_trie/impl/changes_trie.hpp @@ -3,12 +3,12 @@ #ifndef SUPERGENIUS_SRC_STORAGE_CHANGES_TRIE_IMPL_CHANGES_TRIE #define SUPERGENIUS_SRC_STORAGE_CHANGES_TRIE_IMPL_CHANGES_TRIE -#include #include +#include -#include "blockchain/block_header_repository.hpp" #include "base/buffer.hpp" #include "base/logger.hpp" +#include "base/unused.hpp" #include "primitives/common.hpp" #include "primitives/extrinsic.hpp" #include "storage/changes_trie/changes_trie_config.hpp" diff --git a/src/storage/changes_trie/impl/storage_changes_tracker_impl.cpp b/src/storage/changes_trie/impl/storage_changes_tracker_impl.cpp index 63b259de..7ce9835c 100644 --- a/src/storage/changes_trie/impl/storage_changes_tracker_impl.cpp +++ b/src/storage/changes_trie/impl/storage_changes_tracker_impl.cpp @@ -1,5 +1,6 @@ #include "storage/changes_trie/impl/storage_changes_tracker_impl.hpp" +#include "subscription/subscriber.hpp" #include "scale/scale.hpp" #include "storage/changes_trie/impl/changes_trie.hpp" diff --git a/src/storage/changes_trie/impl/storage_changes_tracker_impl.hpp b/src/storage/changes_trie/impl/storage_changes_tracker_impl.hpp index 3b1cee29..844d7add 100644 --- a/src/storage/changes_trie/impl/storage_changes_tracker_impl.hpp +++ b/src/storage/changes_trie/impl/storage_changes_tracker_impl.hpp @@ -1,13 +1,13 @@ #ifndef SUPERGENIUS_STORAGE_CHANGES_TRIE_STORAGE_CHANGES_TRACKER_IMPL #define SUPERGENIUS_STORAGE_CHANGES_TRIE_STORAGE_CHANGES_TRACKER_IMPL -#include "storage/changes_trie/changes_tracker.hpp" - -#include "subscription/subscriber.hpp" -//-------------// #include #include +#include "primitives/extrinsic.hpp" +#include "storage/changes_trie/changes_tracker.hpp" +#include "subscription/subscription_engine.hpp" + namespace sgns::storage::trie { class Codec; class SuperGeniusTrieFactory; diff --git a/src/storage/database_error.hpp b/src/storage/database_error.hpp index 4b208594..5bec092b 100644 --- a/src/storage/database_error.hpp +++ b/src/storage/database_error.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_SRC_STORAGE_DATABASE_ERROR_DATABASE_ERROR_HPP #define SUPERGENIUS_SRC_STORAGE_DATABASE_ERROR_DATABASE_ERROR_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::storage { diff --git a/src/storage/face/batchable.hpp b/src/storage/face/batchable.hpp index 17d917b0..690fb833 100644 --- a/src/storage/face/batchable.hpp +++ b/src/storage/face/batchable.hpp @@ -6,7 +6,6 @@ #include #include "storage/face/write_batch.hpp" -#include "storage/face/writeable.hpp" namespace sgns::storage::face { diff --git a/src/storage/face/generic_list.hpp b/src/storage/face/generic_list.hpp index dbe35528..90558eab 100644 --- a/src/storage/face/generic_list.hpp +++ b/src/storage/face/generic_list.hpp @@ -76,7 +76,6 @@ namespace sgns::face { class ForwardIterator { public: using iterator_category = std::forward_iterator_tag; - using difference_type = ssize_t; using pointer = typename Container::value_type *; using const_pointer = const typename Container::value_type *; using reference = typename Container::value_type &; diff --git a/src/storage/face/readable.hpp b/src/storage/face/readable.hpp index 030731f9..8afec742 100644 --- a/src/storage/face/readable.hpp +++ b/src/storage/face/readable.hpp @@ -3,8 +3,7 @@ #ifndef SUPERGENIUS_READABLE_HPP #define SUPERGENIUS_READABLE_HPP -#include -#include "storage/face/map_cursor.hpp" +#include "outcome/outcome.hpp" namespace sgns::storage::face { diff --git a/src/storage/face/writeable.hpp b/src/storage/face/writeable.hpp index cbaf14b7..b3b6d033 100644 --- a/src/storage/face/writeable.hpp +++ b/src/storage/face/writeable.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_WRITEABLE_HPP #define SUPERGENIUS_WRITEABLE_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::storage::face { diff --git a/src/storage/rocksdb/rocksdb.cpp b/src/storage/rocksdb/rocksdb.cpp index f3057304..1eb2ef11 100644 --- a/src/storage/rocksdb/rocksdb.cpp +++ b/src/storage/rocksdb/rocksdb.cpp @@ -1,16 +1,19 @@ #include -#include -#include #include -#include "storage/rocksdb/rocksdb_cursor.hpp" -#include "storage/rocksdb/rocksdb_batch.hpp" -#include "storage/rocksdb/rocksdb_util.hpp" + +#include + #include #include #include +#include +#include "storage/rocksdb/rocksdb_cursor.hpp" +#include "storage/rocksdb/rocksdb_batch.hpp" +#include "storage/rocksdb/rocksdb_util.hpp" + namespace sgns::storage { using BlockBasedTableOptions = ::ROCKSDB_NAMESPACE::BlockBasedTableOptions; diff --git a/src/storage/rocksdb/rocksdb_util.hpp b/src/storage/rocksdb/rocksdb_util.hpp index 74078153..5bbbd61c 100644 --- a/src/storage/rocksdb/rocksdb_util.hpp +++ b/src/storage/rocksdb/rocksdb_util.hpp @@ -5,7 +5,8 @@ #include #include -#include + +#include "outcome/outcome.hpp" #include "base/buffer.hpp" #include "base/logger.hpp" #include "storage/database_error.hpp" diff --git a/src/storage/trie/impl/topper_trie_batch_impl.hpp b/src/storage/trie/impl/topper_trie_batch_impl.hpp index 53f821a0..3e2dafa4 100644 --- a/src/storage/trie/impl/topper_trie_batch_impl.hpp +++ b/src/storage/trie/impl/topper_trie_batch_impl.hpp @@ -3,13 +3,13 @@ #ifndef SUPERGENIUS_SRC_STORAGE_TRIE_IMPL_TOPPER_TRIE_BATCH_IMPL #define SUPERGENIUS_SRC_STORAGE_TRIE_IMPL_TOPPER_TRIE_BATCH_IMPL -#include "storage/trie/trie_batches.hpp" - -#include "storage/trie/supergenius_trie/supergenius_trie_factory.hpp" - #include #include +#include + +#include "storage/trie/trie_batches.hpp" + namespace sgns::storage::trie { class TopperTrieBatchImpl : public TopperTrieBatch { diff --git a/src/storage/trie/impl/trie_storage_impl.cpp b/src/storage/trie/impl/trie_storage_impl.cpp index dc4c7a6a..372f9818 100644 --- a/src/storage/trie/impl/trie_storage_impl.cpp +++ b/src/storage/trie/impl/trie_storage_impl.cpp @@ -7,7 +7,6 @@ #include "outcome/outcome.hpp" #include "storage/trie/impl/ephemeral_trie_batch_impl.hpp" #include "storage/trie/impl/persistent_trie_batch_impl.hpp" -#include "subscription/subscriber.hpp" namespace sgns::storage::trie { diff --git a/src/storage/trie/impl/trie_storage_impl.hpp b/src/storage/trie/impl/trie_storage_impl.hpp index 57a7e5ff..39b05a97 100644 --- a/src/storage/trie/impl/trie_storage_impl.hpp +++ b/src/storage/trie/impl/trie_storage_impl.hpp @@ -10,7 +10,6 @@ #include "storage/trie/codec.hpp" #include "storage/trie/supergenius_trie/supergenius_trie_factory.hpp" #include "storage/trie/serialization/trie_serializer.hpp" -#include "subscription/subscription_engine.hpp" namespace sgns::api { class Session; diff --git a/src/storage/trie/serialization/ordered_trie_hash.hpp b/src/storage/trie/serialization/ordered_trie_hash.hpp index 8a783ae3..ce2e06c2 100644 --- a/src/storage/trie/serialization/ordered_trie_hash.hpp +++ b/src/storage/trie/serialization/ordered_trie_hash.hpp @@ -4,7 +4,6 @@ #define SUPERGENIUS_ORDERED_TRIE_HASH_HPP #include "base/buffer.hpp" -#include "crypto/hasher.hpp" #include "scale/scale.hpp" #include "storage/trie/supergenius_trie/supergenius_trie_impl.hpp" #include "storage/trie/serialization/supergenius_codec.hpp" diff --git a/src/storage/trie/serialization/supergenius_codec.hpp b/src/storage/trie/serialization/supergenius_codec.hpp index 76713ded..d4791bbc 100644 --- a/src/storage/trie/serialization/supergenius_codec.hpp +++ b/src/storage/trie/serialization/supergenius_codec.hpp @@ -4,7 +4,6 @@ #define SUPERGENIUS_TRIE_SUPERGENIUS_CODEC_IMPL_HPP #include -#include #include #include "storage/trie/serialization/buffer_stream.hpp" diff --git a/src/storage/trie/supergenius_trie/supergenius_node.hpp b/src/storage/trie/supergenius_trie/supergenius_node.hpp index f64aa568..4ad4aa69 100644 --- a/src/storage/trie/supergenius_trie/supergenius_node.hpp +++ b/src/storage/trie/supergenius_trie/supergenius_node.hpp @@ -5,7 +5,6 @@ #include -#include "base/blob.hpp" #include "base/buffer.hpp" #include "storage/trie/node.hpp" diff --git a/src/storage/trie/supergenius_trie/supergenius_trie.hpp b/src/storage/trie/supergenius_trie/supergenius_trie.hpp index 47dd794b..b2821ca6 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie.hpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie.hpp @@ -3,9 +3,10 @@ #ifndef SUPERGENIUS_STORAGE_TRIE_SUPERGENIUS_TRIE_HPP #define SUPERGENIUS_STORAGE_TRIE_SUPERGENIUS_TRIE_HPP +#include + #include "storage/face/generic_maps.hpp" #include "storage/trie/supergenius_trie/supergenius_node.hpp" -#include namespace sgns::storage::trie { diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp b/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp index 31b5c984..1ca5e517 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_impl.cpp @@ -2,7 +2,6 @@ #include "storage/trie/supergenius_trie/supergenius_trie_impl.hpp" -#include #include #include "storage/trie/supergenius_trie/supergenius_trie_cursor.hpp" diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp b/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp index f8d10a24..18367b07 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp @@ -6,7 +6,6 @@ #include "storage/trie/supergenius_trie/supergenius_trie.hpp" #include "storage/buffer_map_types.hpp" -#include "storage/trie/serialization/supergenius_codec.hpp" namespace sgns::storage::trie { diff --git a/src/storage/trie/trie_batches.hpp b/src/storage/trie/trie_batches.hpp index 6aef5e05..ee7cbdf6 100644 --- a/src/storage/trie/trie_batches.hpp +++ b/src/storage/trie/trie_batches.hpp @@ -4,7 +4,6 @@ #define SUPERGENIUS_STORAGE_TRIE_IMPL_TRIE_BATCH #include "storage/buffer_map_types.hpp" -#include "storage/trie/supergenius_trie/supergenius_trie_cursor.hpp" namespace sgns::storage::trie { diff --git a/src/storage/trie/trie_storage_backend.hpp b/src/storage/trie/trie_storage_backend.hpp index ad5a0bb3..200c5b31 100644 --- a/src/storage/trie/trie_storage_backend.hpp +++ b/src/storage/trie/trie_storage_backend.hpp @@ -3,11 +3,9 @@ #ifndef SUPERGENIUS_TRIE_DB_BACKEND_HPP #define SUPERGENIUS_TRIE_DB_BACKEND_HPP -#include +#include "outcome/outcome.hpp" -#include "base/buffer.hpp" #include "storage/buffer_map_types.hpp" -#include "storage/trie/supergenius_trie/supergenius_node.hpp" namespace sgns::storage::trie { diff --git a/src/subscription/subscription_engine.hpp b/src/subscription/subscription_engine.hpp index 86311c33..49929a0d 100644 --- a/src/subscription/subscription_engine.hpp +++ b/src/subscription/subscription_engine.hpp @@ -4,6 +4,7 @@ #include #include +#include #include #include diff --git a/src/transaction_pool/impl/transaction_pool_impl.hpp b/src/transaction_pool/impl/transaction_pool_impl.hpp index 274ec5e5..835f71d7 100644 --- a/src/transaction_pool/impl/transaction_pool_impl.hpp +++ b/src/transaction_pool/impl/transaction_pool_impl.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_TRANSACTION_POOL_IMPL_HPP #define SUPERGENIUS_SRC_TRANSACTION_POOL_IMPL_HPP -#include +#include "outcome/outcome.hpp" #include "blockchain/block_header_repository.hpp" #include "base/logger.hpp" diff --git a/src/transaction_pool/pool_moderator.hpp b/src/transaction_pool/pool_moderator.hpp index 5e544594..2997aba2 100644 --- a/src/transaction_pool/pool_moderator.hpp +++ b/src/transaction_pool/pool_moderator.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_POOL_MODERATOR_HPP #define SUPERGENIUS_SRC_POOL_MODERATOR_HPP -#include "primitives/block_id.hpp" +#include "primitives/common.hpp" #include "primitives/transaction.hpp" #include "singleton/IComponent.hpp" diff --git a/src/transaction_pool/transaction_pool.hpp b/src/transaction_pool/transaction_pool.hpp index cd076919..19a91fe4 100644 --- a/src/transaction_pool/transaction_pool.hpp +++ b/src/transaction_pool/transaction_pool.hpp @@ -3,11 +3,12 @@ #ifndef SUPERGENIUS_TRANSACTION_POOL_HPP #define SUPERGENIUS_TRANSACTION_POOL_HPP -#include +#include + +#include "outcome/outcome.hpp" #include "primitives/block_id.hpp" #include "primitives/transaction.hpp" -#include #include "singleton/IComponent.hpp" namespace sgns::transaction_pool { diff --git a/src/transaction_pool/transaction_pool_error.hpp b/src/transaction_pool/transaction_pool_error.hpp index 74b21ecb..a2ec4a11 100644 --- a/src/transaction_pool/transaction_pool_error.hpp +++ b/src/transaction_pool/transaction_pool_error.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_SRC_TRANSACTION_POOL_TRANSACTION_POOL_ERROR_HPP #define SUPERGENIUS_SRC_TRANSACTION_POOL_TRANSACTION_POOL_ERROR_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::transaction_pool { enum class TransactionPoolError { diff --git a/src/verification/authority/authority_manager.hpp b/src/verification/authority/authority_manager.hpp index ec110346..fa6bf850 100644 --- a/src/verification/authority/authority_manager.hpp +++ b/src/verification/authority/authority_manager.hpp @@ -2,6 +2,7 @@ #define SUPERGENIUS_AUTHORITY_MANAGER #include "primitives/authority.hpp" +#include "primitives/common.hpp" #include "singleton/IComponent.hpp" namespace sgns::authority { diff --git a/src/verification/authority/authority_manager_error.hpp b/src/verification/authority/authority_manager_error.hpp index 25ba1749..8bd95a87 100644 --- a/src/verification/authority/authority_manager_error.hpp +++ b/src/verification/authority/authority_manager_error.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_VERIFICATION_AUTHORITIES_MANAGER_ERROR #define SUPERGENIUS_VERIFICATION_AUTHORITIES_MANAGER_ERROR -#include +#include "outcome/outcome.hpp" namespace sgns::authority { enum class AuthorityManagerError { diff --git a/src/verification/authority/authority_update_observer.hpp b/src/verification/authority/authority_update_observer.hpp index 0d2d06fb..3aefb335 100644 --- a/src/verification/authority/authority_update_observer.hpp +++ b/src/verification/authority/authority_update_observer.hpp @@ -1,8 +1,9 @@ #ifndef SUPERGENIUS_AUTHORITY_UPDATE_OBSERVER #define SUPERGENIUS_AUTHORITY_UPDATE_OBSERVER -#include +#include "outcome/outcome.hpp" +#include "primitives/common.hpp" #include "primitives/digest.hpp" #include "singleton/IComponent.hpp" diff --git a/src/verification/authority/authority_update_observer_error.hpp b/src/verification/authority/authority_update_observer_error.hpp index abdbbbf3..f8340712 100644 --- a/src/verification/authority/authority_update_observer_error.hpp +++ b/src/verification/authority/authority_update_observer_error.hpp @@ -1,7 +1,7 @@ #ifndef SUPERGENIUS_VERIFICATION_AUTHORITIES_UPDATE_OBSERVER_ERROR #define SUPERGENIUS_VERIFICATION_AUTHORITIES_UPDATE_OBSERVER_ERROR -#include +#include "outcome/outcome.hpp" namespace sgns::authority { diff --git a/src/verification/authority/impl/schedule_node.hpp b/src/verification/authority/impl/schedule_node.hpp index b7034991..e0a877cf 100644 --- a/src/verification/authority/impl/schedule_node.hpp +++ b/src/verification/authority/impl/schedule_node.hpp @@ -3,6 +3,7 @@ #define SUPERGENIUS_VERIFICATION_AUTHORITIES_SCHEDULE_NODE #include "primitives/authority.hpp" +#include "primitives/common.hpp" namespace sgns::authority { diff --git a/src/verification/finality/chain.hpp b/src/verification/finality/chain.hpp index d5c01e6d..93829736 100644 --- a/src/verification/finality/chain.hpp +++ b/src/verification/finality/chain.hpp @@ -6,8 +6,7 @@ #include #include -#include -#include "verification/finality/common.hpp" +#include "outcome/outcome.hpp" #include "verification/finality/structs.hpp" namespace sgns::verification::finality { diff --git a/src/verification/finality/common.hpp b/src/verification/finality/common.hpp index 3a75ff93..a583e4c1 100644 --- a/src/verification/finality/common.hpp +++ b/src/verification/finality/common.hpp @@ -3,12 +3,8 @@ #ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_COMMON_HPP #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_COMMON_HPP -#include - #include "clock/clock.hpp" -#include "base/wrapper.hpp" #include "crypto/ed25519_types.hpp" -#include "primitives/authority.hpp" #include "primitives/common.hpp" namespace sgns::verification::finality { diff --git a/src/verification/finality/gossiper.hpp b/src/verification/finality/gossiper.hpp index 8364f7ce..b5ea7078 100644 --- a/src/verification/finality/gossiper.hpp +++ b/src/verification/finality/gossiper.hpp @@ -2,9 +2,7 @@ #ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_GOSSIPER_HPP #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_GOSSIPER_HPP -#include - -#include +#include "outcome/outcome.hpp" #include "verification/finality/structs.hpp" namespace sgns::verification::finality { diff --git a/src/verification/finality/impl/observer_dummy.cpp b/src/verification/finality/impl/observer_dummy.cpp deleted file mode 100644 index cc8b799c..00000000 --- a/src/verification/finality/impl/observer_dummy.cpp +++ /dev/null @@ -1,21 +0,0 @@ - -#include "verification/finality/impl/observer_dummy.hpp" - -namespace sgns::verification::finality { - - ObserverDummy::ObserverDummy() - : logger_{base::createLogger("ObserverDummy")} {} - - void ObserverDummy::onPrecommit(Precommit) { - logger_->error("onPrecommit is not implemented"); - } - - void ObserverDummy::onPrevote(Prevote) { - logger_->error("onPrevote is not implemented"); - } - - void ObserverDummy::onPrimaryPropose(PrimaryPropose) { - logger_->error("onPrimaryPropose is not implemented"); - } - -} // namespace sgns::verification::finality diff --git a/src/verification/finality/impl/observer_dummy.hpp b/src/verification/finality/impl/observer_dummy.hpp deleted file mode 100644 index 67d59875..00000000 --- a/src/verification/finality/impl/observer_dummy.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_IMPL_OBSERVER_DUMMY_HPP -#define SUPERGENIUS_SRC_VERIFICATION_FINALITY_IMPL_OBSERVER_DUMMY_HPP - -#include "base/logger.hpp" -#include "verification/finality/observer.hpp" - -namespace sgns::verification::finality { - - // Will be replaced with real implementation when finality is merged - class ObserverDummy : public Observer { - public: - ~ObserverDummy() override = default; - - ObserverDummy(); - - void onPrecommit(Precommit pc) override; - - void onPrevote(Prevote pv) override; - - void onPrimaryPropose(PrimaryPropose pv) override; - - private: - base::Logger logger_; - }; - -} // namespace sgns::verification::finality - -#endif // SUPERGENIUS_SRC_VERIFICATION_FINALITY_IMPL_OBSERVER_DUMMY_HPP diff --git a/src/verification/finality/impl/voting_round_error.hpp b/src/verification/finality/impl/voting_round_error.hpp index af2eefe3..774b625b 100644 --- a/src/verification/finality/impl/voting_round_error.hpp +++ b/src/verification/finality/impl/voting_round_error.hpp @@ -2,7 +2,7 @@ #ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_IMPL_VOTING_ROUND_ERROR_HPP #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_IMPL_VOTING_ROUND_ERROR_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::verification::finality { diff --git a/src/verification/finality/structs.hpp b/src/verification/finality/structs.hpp index 1af91c9c..c37f926b 100644 --- a/src/verification/finality/structs.hpp +++ b/src/verification/finality/structs.hpp @@ -5,15 +5,11 @@ #include #include -#include +#include "base/buffer.hpp" #include -#include "base/blob.hpp" #include "base/visitor.hpp" -#include "base/wrapper.hpp" #include "verification/finality/common.hpp" -#include "crypto/ed25519_types.hpp" -#include "primitives/authority.hpp" #include "primitives/common.hpp" namespace sgns::verification::finality { diff --git a/src/verification/finality/vote_graph.hpp b/src/verification/finality/vote_graph.hpp index 9c82323c..dbb44942 100644 --- a/src/verification/finality/vote_graph.hpp +++ b/src/verification/finality/vote_graph.hpp @@ -5,7 +5,6 @@ #include -#include "verification/finality/chain.hpp" #include "verification/finality/vote_weight.hpp" namespace sgns::verification::finality { diff --git a/src/verification/finality/vote_graph/vote_graph_impl.hpp b/src/verification/finality/vote_graph/vote_graph_impl.hpp index 9d3a0d76..e68d62dc 100644 --- a/src/verification/finality/vote_graph/vote_graph_impl.hpp +++ b/src/verification/finality/vote_graph/vote_graph_impl.hpp @@ -3,12 +3,12 @@ #ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTE_GRAPH_VOTE_GRAPH_IMPL_HPP #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTE_GRAPH_VOTE_GRAPH_IMPL_HPP -#include "verification/finality/vote_graph.hpp" - -#include #include #include +#include "verification/finality/chain.hpp" +#include "verification/finality/vote_graph.hpp" + namespace sgns::verification::finality { class VoteGraphImpl : public VoteGraph { diff --git a/src/verification/finality/vote_weight.hpp b/src/verification/finality/vote_weight.hpp index 6e751ceb..9aaef4ca 100644 --- a/src/verification/finality/vote_weight.hpp +++ b/src/verification/finality/vote_weight.hpp @@ -3,10 +3,9 @@ #ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTE_WEIGHT_HPP #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTE_WEIGHT_HPP -#include - #include #include + #include "verification/finality/structs.hpp" #include "verification/finality/voter_set.hpp" diff --git a/src/verification/finality/voting_round.hpp b/src/verification/finality/voting_round.hpp index 540745b5..85f45d08 100644 --- a/src/verification/finality/voting_round.hpp +++ b/src/verification/finality/voting_round.hpp @@ -1,7 +1,6 @@ #ifndef SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTING_ROUND_HPP #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTING_ROUND_HPP -#include "verification/finality/round_observer.hpp" #include "verification/finality/round_state.hpp" namespace sgns::verification::finality { diff --git a/src/verification/production.hpp b/src/verification/production.hpp index ee019711..e76fab8e 100644 --- a/src/verification/production.hpp +++ b/src/verification/production.hpp @@ -6,9 +6,7 @@ #include #include - #include "verification/production/common.hpp" -#include "verification/production/types/production_meta.hpp" #include "verification/production/types/epoch.hpp" #include "network/production_observer.hpp" #include "singleton/IComponent.hpp" diff --git a/src/verification/production/impl/epoch_storage_impl.hpp b/src/verification/production/impl/epoch_storage_impl.hpp index 3b972d25..91ed95d3 100644 --- a/src/verification/production/impl/epoch_storage_impl.hpp +++ b/src/verification/production/impl/epoch_storage_impl.hpp @@ -4,8 +4,6 @@ #define SUPERGENIUS_EPOCH_STORAGE_DUMB_HPP #include "verification/production/epoch_storage.hpp" - -#include #include "storage/buffer_map_types.hpp" namespace sgns::verification { diff --git a/src/verification/production/impl/production_digests_util.hpp b/src/verification/production/impl/production_digests_util.hpp index 04b7455d..2395a027 100644 --- a/src/verification/production/impl/production_digests_util.hpp +++ b/src/verification/production/impl/production_digests_util.hpp @@ -10,7 +10,7 @@ #include "verification/production/types/next_epoch_descriptor.hpp" #include "verification/production/types/seal.hpp" #include "outcome/outcome.hpp" -#include "primitives/block.hpp" +#include "primitives/block_header.hpp" namespace sgns::verification { diff --git a/src/verification/production/impl/production_impl.hpp b/src/verification/production/impl/production_impl.hpp index 8719ce27..b6df9f86 100644 --- a/src/verification/production/impl/production_impl.hpp +++ b/src/verification/production/impl/production_impl.hpp @@ -8,12 +8,13 @@ #include #include -#include +#include "outcome/outcome.hpp" #include "application/app_state_manager.hpp" #include "authorship/proposer.hpp" #include "blockchain/block_tree.hpp" #include "clock/timer.hpp" #include "base/logger.hpp" +#include "verification/production/types/production_meta.hpp" #include "verification/production/production_gossiper.hpp" #include "verification/production/production_lottery.hpp" #include "verification/production/epoch_storage.hpp" @@ -21,7 +22,6 @@ #include "crypto/hasher.hpp" #include "crypto/sr25519_types.hpp" #include "primitives/production_configuration.hpp" -#include "primitives/common.hpp" #include "storage/trie/trie_storage.hpp" namespace sgns::verification { diff --git a/src/verification/production/production_error.hpp b/src/verification/production/production_error.hpp index 889fb674..58554378 100644 --- a/src/verification/production/production_error.hpp +++ b/src/verification/production/production_error.hpp @@ -3,7 +3,7 @@ #ifndef SUPERGENIUS_VERIFICATION_PRODUCTION_ERROR_HPP #define SUPERGENIUS_VERIFICATION_PRODUCTION_ERROR_HPP -#include +#include "outcome/outcome.hpp" namespace sgns::verification { enum class ProductionError { TIMER_ERROR = 1, NODE_FALL_BEHIND }; diff --git a/src/verification/production/production_gossiper.hpp b/src/verification/production/production_gossiper.hpp index d6f6f2e6..9205e1b1 100644 --- a/src/verification/production/production_gossiper.hpp +++ b/src/verification/production/production_gossiper.hpp @@ -3,9 +3,6 @@ #ifndef SUPERGENIUS_VERIFICATION_VERIFICATION_PRODUCTION_GOSSIPER_HPP #define SUPERGENIUS_VERIFICATION_VERIFICATION_PRODUCTION_GOSSIPER_HPP -#include - -#include #include "network/types/block_announce.hpp" namespace sgns::verification { diff --git a/src/verification/production/types/epoch.hpp b/src/verification/production/types/epoch.hpp index 83e54a2e..a1e6007a 100644 --- a/src/verification/production/types/epoch.hpp +++ b/src/verification/production/types/epoch.hpp @@ -3,9 +3,6 @@ #ifndef SUPERGENIUS_EPOCH_HPP #define SUPERGENIUS_EPOCH_HPP -#include -#include - #include "verification/production/common.hpp" #include "primitives/authority.hpp" diff --git a/src/verification/production/types/next_epoch_descriptor.hpp b/src/verification/production/types/next_epoch_descriptor.hpp index 906e7f2c..42bd0e35 100644 --- a/src/verification/production/types/next_epoch_descriptor.hpp +++ b/src/verification/production/types/next_epoch_descriptor.hpp @@ -4,6 +4,7 @@ #define SUPERGENIUS_SRC_VERIFICATION_PRODUCTION_TYPES_NEXT_EPOCH_DESCRIPTOR_HPP #include "primitives/authority.hpp" +#include "verification/production/common.hpp" namespace sgns::verification { diff --git a/src/verification/validation/block_validator.hpp b/src/verification/validation/block_validator.hpp index ada6902b..b0d6fb42 100644 --- a/src/verification/validation/block_validator.hpp +++ b/src/verification/validation/block_validator.hpp @@ -3,10 +3,9 @@ #ifndef SUPERGENIUS_BLOCK_VALIDATOR_HPP #define SUPERGENIUS_BLOCK_VALIDATOR_HPP -#include -#include "verification/production/types/epoch.hpp" #include "primitives/block.hpp" #include "singleton/IComponent.hpp" +#include "verification/production/common.hpp" namespace sgns::verification { /** diff --git a/src/verification/validation/production_block_validator.cpp b/src/verification/validation/production_block_validator.cpp index c1fae4b4..88e1d7b0 100644 --- a/src/verification/validation/production_block_validator.cpp +++ b/src/verification/validation/production_block_validator.cpp @@ -6,6 +6,7 @@ #include #include "base/mp_utils.hpp" +#include "primitives/transaction_validity.hpp" #include "verification/production/impl/production_digests_util.hpp" #include "crypto/sr25519_provider.hpp" #include "scale/scale.hpp" diff --git a/src/verification/validation/production_block_validator.hpp b/src/verification/validation/production_block_validator.hpp index 36e78236..27573caf 100644 --- a/src/verification/validation/production_block_validator.hpp +++ b/src/verification/validation/production_block_validator.hpp @@ -6,7 +6,6 @@ #include #include #include -#include #include "blockchain/block_tree.hpp" #include "base/logger.hpp" @@ -16,7 +15,6 @@ #include "crypto/hasher.hpp" #include "crypto/vrf_provider.hpp" #include "primitives/authority.hpp" -#include "runtime/tagged_transaction_queue.hpp" namespace sgns::crypto { class SR25519Provider; diff --git a/test/src/crdt/crdt_datastore_test.cpp b/test/src/crdt/crdt_datastore_test.cpp index ed9c58b1..2a350d7e 100644 --- a/test/src/crdt/crdt_datastore_test.cpp +++ b/test/src/crdt/crdt_datastore_test.cpp @@ -1,7 +1,7 @@ -#include +#include "crdt/crdt_datastore.hpp" #include #include -#include +#include "outcome/outcome.hpp" #include #include #include @@ -10,7 +10,7 @@ #include #include #include -#include +#include "crdt/proto/bcast.pb.h" namespace sgns::crdt { diff --git a/test/src/crdt/crdt_heads_test.cpp b/test/src/crdt/crdt_heads_test.cpp index f30370b3..59314938 100644 --- a/test/src/crdt/crdt_heads_test.cpp +++ b/test/src/crdt/crdt_heads_test.cpp @@ -1,7 +1,7 @@ -#include +#include "crdt/crdt_heads.hpp" #include #include -#include +#include "outcome/outcome.hpp" #include #include #include diff --git a/test/src/crdt/crdt_hierarchical_key_test.cpp b/test/src/crdt/crdt_hierarchical_key_test.cpp index 726f72b8..0b7149da 100644 --- a/test/src/crdt/crdt_hierarchical_key_test.cpp +++ b/test/src/crdt/crdt_hierarchical_key_test.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include "crdt/hierarchical_key.hpp" namespace sgns::crdt { diff --git a/test/src/crdt/crdt_set_test.cpp b/test/src/crdt/crdt_set_test.cpp index 7a7a1fae..1e6763c2 100644 --- a/test/src/crdt/crdt_set_test.cpp +++ b/test/src/crdt/crdt_set_test.cpp @@ -1,7 +1,7 @@ -#include +#include "crdt/crdt_set.hpp" #include #include -#include +#include "outcome/outcome.hpp" #include #include diff --git a/test/src/processing/processing_engine_test.cpp b/test/src/processing/processing_engine_test.cpp index 0658e89c..377dc5ef 100644 --- a/test/src/processing/processing_engine_test.cpp +++ b/test/src/processing/processing_engine_test.cpp @@ -1,5 +1,5 @@ -#include -#include +#include "processing/processing_engine.hpp" +#include "processing/processing_subtask_queue_accessor.hpp" #include diff --git a/test/src/processing/processing_service_test.cpp b/test/src/processing/processing_service_test.cpp index faffb814..8f22262a 100644 --- a/test/src/processing/processing_service_test.cpp +++ b/test/src/processing/processing_service_test.cpp @@ -1,6 +1,6 @@ -#include -#include +#include "processing/processing_service.hpp" +#include "processing/processing_subtask_enqueuer_impl.hpp" #include #include diff --git a/test/src/processing/processing_subtask_queue_accessor_impl_test.cpp b/test/src/processing/processing_subtask_queue_accessor_impl_test.cpp index d33f960d..ef7df8a8 100644 --- a/test/src/processing/processing_subtask_queue_accessor_impl_test.cpp +++ b/test/src/processing/processing_subtask_queue_accessor_impl_test.cpp @@ -1,8 +1,8 @@ -#include -#include -#include -#include -#include +#include "processing/processing_engine.hpp" +#include "processing/processing_subtask_queue_accessor_impl.hpp" +#include "processing/processing_subtask_queue_channel_pubsub.hpp" +#include "processing/processing_subtask_state_storage.hpp" +#include "processing/processing_subtask_result_storage.hpp" #include diff --git a/test/src/processing/processing_subtask_queue_channel_pubsub_test.cpp b/test/src/processing/processing_subtask_queue_channel_pubsub_test.cpp index b1f8778d..08d9a694 100644 --- a/test/src/processing/processing_subtask_queue_channel_pubsub_test.cpp +++ b/test/src/processing/processing_subtask_queue_channel_pubsub_test.cpp @@ -1,4 +1,4 @@ -#include +#include "processing/processing_subtask_queue_channel_pubsub.hpp" #include #include diff --git a/test/src/processing/processing_subtask_queue_manager_test.cpp b/test/src/processing/processing_subtask_queue_manager_test.cpp index 5b9cbcdf..d22ddb75 100644 --- a/test/src/processing/processing_subtask_queue_manager_test.cpp +++ b/test/src/processing/processing_subtask_queue_manager_test.cpp @@ -1,7 +1,7 @@ -#include +#include "processing/processing_subtask_queue_manager.hpp" // @todo Move to separate test suite -#include +#include "processing/processing_validation_core.hpp" #include #include diff --git a/test/src/scale/scale_variant_test.cpp b/test/src/scale/scale_variant_test.cpp index 0da98579..803cc831 100644 --- a/test/src/scale/scale_variant_test.cpp +++ b/test/src/scale/scale_variant_test.cpp @@ -1,15 +1,14 @@ #include - -#include "scale/scale.hpp" - #include -#include "testutil/outcome.hpp" + +#include "base/visitor.hpp" +#include "scale/scale_decoder_stream.hpp" +#include "scale/scale_encoder_stream.hpp" +#include "scale/types.hpp" using sgns::scale::ByteArray; -using sgns::scale::decode; -using sgns::scale::encode; using sgns::scale::ScaleDecoderStream; using sgns::scale::ScaleEncoderStream; diff --git a/test/src/storage/changes_trie/changes_trie_test.cpp b/test/src/storage/changes_trie/changes_trie_test.cpp index 942d26e9..d21c5a62 100644 --- a/test/src/storage/changes_trie/changes_trie_test.cpp +++ b/test/src/storage/changes_trie/changes_trie_test.cpp @@ -3,7 +3,7 @@ #include #include "mock/src/storage/trie/trie_storage_mock.hpp" -#include "storage/changes_trie/impl/storage_changes_tracker_impl.hpp" +#include "storage/trie/serialization/supergenius_codec.hpp" #include "storage/trie/supergenius_trie/supergenius_trie_factory_impl.hpp" #include "testutil/literals.hpp" diff --git a/test/src/storage/trie/supergenius_trie/supergenius_trie_test.cpp b/test/src/storage/trie/supergenius_trie/supergenius_trie_test.cpp index debfa5e8..c5cf6d04 100644 --- a/test/src/storage/trie/supergenius_trie/supergenius_trie_test.cpp +++ b/test/src/storage/trie/supergenius_trie/supergenius_trie_test.cpp @@ -1,8 +1,5 @@ - - #include -#include "storage/in_memory/in_memory_storage.hpp" #include "storage/trie/supergenius_trie/supergenius_trie_impl.hpp" #include "storage/trie/supergenius_trie/trie_error.hpp" #include "testutil/literals.hpp" @@ -11,7 +8,6 @@ using sgns::base::Buffer; using sgns::base::Hash256; using sgns::storage::trie::KeyNibbles; -using sgns::storage::trie::SuperGeniusCodec; using sgns::storage::trie::SuperGeniusTrie; using sgns::storage::trie::SuperGeniusTrieImpl; diff --git a/test/src/storage/trie/trie_storage/trie_batch_test.cpp b/test/src/storage/trie/trie_storage/trie_batch_test.cpp index d52541a4..399a36b3 100644 --- a/test/src/storage/trie/trie_storage/trie_batch_test.cpp +++ b/test/src/storage/trie/trie_storage/trie_batch_test.cpp @@ -3,15 +3,14 @@ #include #include -#include "storage/changes_trie/impl/storage_changes_tracker_impl.hpp" #include "storage/in_memory/in_memory_storage.hpp" #include "storage/trie/impl/trie_storage_backend_impl.hpp" #include "storage/trie/impl/trie_storage_impl.hpp" +#include "storage/trie/serialization/supergenius_codec.hpp" #include "storage/trie/supergenius_trie/supergenius_trie_factory_impl.hpp" #include "storage/trie/supergenius_trie/trie_error.hpp" #include "storage/trie/serialization/trie_serializer_impl.hpp" #include "storage/trie/trie_batches.hpp" -#include "storage/trie/impl/persistent_trie_batch_impl.hpp" #include "testutil/literals.hpp" #include "testutil/outcome.hpp" #include "testutil/storage/base_rocksdb_test.hpp" @@ -19,7 +18,6 @@ using namespace sgns::storage::trie; using sgns::base::Buffer; using sgns::base::Hash256; -using sgns::storage::face::WriteBatch; using testing::_; using testing::Invoke; using testing::Return; diff --git a/test/testutil/storage/base_crdt_test.cpp b/test/testutil/storage/base_crdt_test.cpp index 189559b3..13905137 100644 --- a/test/testutil/storage/base_crdt_test.cpp +++ b/test/testutil/storage/base_crdt_test.cpp @@ -3,10 +3,10 @@ #include #include -#include +#include "crdt/globaldb/keypair_file_storage.hpp" #include "ipfs_pubsub/gossip_pubsub.hpp" -#include -#include +#include "crdt/globaldb/globaldb.hpp" +#include "crdt/globaldb/proto/broadcast.pb.h" #include #include #include From 7347bff0167b9e0c0bab86dea64d0a9e4cd071d1 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 16:57:23 -0300 Subject: [PATCH 17/30] Added `override` when possible --- src/account/EscrowTransaction.hpp | 2 +- src/account/GeniusNode.hpp | 6 +-- src/account/MintTransaction.hpp | 2 +- src/account/TransferTransaction.hpp | 2 +- src/api/jrpc/jrpc_processor.hpp | 6 +-- src/api/jrpc/jrpc_server.hpp | 2 +- src/api/service/api_service.hpp | 3 +- src/api/service/author/author_api.hpp | 10 ++--- src/api/service/chain/chain_api.hpp | 2 +- src/api/service/state/state_api.hpp | 2 +- src/api/service/system/system_api.hpp | 2 +- src/api/transport/listener.hpp | 2 +- src/api/transport/rpc_thread_pool.hpp | 2 +- src/application/app_state_manager.hpp | 2 +- src/application/configuration_storage.hpp | 32 +++++++-------- src/application/key_storage.hpp | 14 +++---- src/authorship/block_builder_factory.hpp | 8 ++-- src/base/hexutil.hpp | 39 +++++++++--------- src/blockchain/block_storage.hpp | 2 +- src/blockchain/block_tree.hpp | 2 +- src/clock/clock.hpp | 2 +- src/crypto/ed25519_provider.hpp | 2 +- src/crypto/hasher.hpp | 40 +++++++++---------- src/crypto/sr25519_provider.hpp | 2 +- src/crypto/vrf_provider.hpp | 2 +- src/local_secure_storage/ISecureStorage.hpp | 2 +- .../impl/json/JSONSecureStorage.hpp | 6 ++- src/network/extrinsic_gossiper.hpp | 2 +- src/network/extrinsic_observer.hpp | 2 +- src/network/router.hpp | 2 +- src/network/sync_protocol_observer.hpp | 2 +- src/processing/processing_imagesplit.hpp | 4 +- src/processing/processing_processor.hpp | 4 +- ...processing_subtask_queue_accessor_impl.hpp | 3 +- ...rocessing_subtask_queue_channel_pubsub.hpp | 2 +- .../processing_processor_mnn_posenet.hpp | 2 +- src/storage/changes_trie/changes_tracker.hpp | 2 +- src/storage/trie/codec.hpp | 2 +- .../trie/serialization/trie_serializer.hpp | 2 +- .../supergenius_trie_factory.hpp | 2 +- src/storage/trie/trie_storage.hpp | 2 +- src/transaction_pool/pool_moderator.hpp | 2 +- src/transaction_pool/transaction_pool.hpp | 2 +- .../authority/authority_manager.hpp | 2 +- .../authority/authority_update_observer.hpp | 4 +- src/verification/production/epoch_storage.hpp | 2 +- .../production/production_lottery.hpp | 10 ++--- .../production/production_synchronizer.hpp | 2 +- .../validation/block_validator.hpp | 10 ++--- 49 files changed, 132 insertions(+), 133 deletions(-) diff --git a/src/account/EscrowTransaction.hpp b/src/account/EscrowTransaction.hpp index 70745ec7..fafa5b6c 100644 --- a/src/account/EscrowTransaction.hpp +++ b/src/account/EscrowTransaction.hpp @@ -20,7 +20,7 @@ namespace sgns uint256_t dest_addr, float cut, const SGTransaction::DAGStruct &dag ); - ~EscrowTransaction() = default; + ~EscrowTransaction() override = default; std::vector SerializeByteVector() override; static EscrowTransaction DeSerializeByteVector( const std::vector &data ); diff --git a/src/account/GeniusNode.hpp b/src/account/GeniusNode.hpp index d540ce7d..c851285f 100644 --- a/src/account/GeniusNode.hpp +++ b/src/account/GeniusNode.hpp @@ -64,7 +64,7 @@ namespace sgns // { // return instance; // } - ~GeniusNode(); + ~GeniusNode() override; void ProcessImage( const std::string &image_path, uint16_t funds ); @@ -102,9 +102,9 @@ namespace sgns static uint16_t GenerateRandomPort( const std::string &address ); - void ProcessingDone( const std::string &subtask_id ); + void ProcessingDone( const std::string &subtask_id ); static void ProcessingError( const std::string &subtask_id ); - void ProcessingFinished( const std::string &task_id, const std::set &subtasks_ids ); + void ProcessingFinished( const std::string &task_id, const std::set &subtasks_ids ); static constexpr std::string_view db_path_ = "bc-%d/"; static constexpr std::uint16_t MAIN_NET = 369; diff --git a/src/account/MintTransaction.hpp b/src/account/MintTransaction.hpp index 27bfe05f..5c3a610b 100644 --- a/src/account/MintTransaction.hpp +++ b/src/account/MintTransaction.hpp @@ -18,7 +18,7 @@ namespace sgns { public: MintTransaction( uint64_t new_amount, const SGTransaction::DAGStruct &dag ); - ~MintTransaction() = default; + ~MintTransaction() override = default; std::vector SerializeByteVector() override; static MintTransaction DeSerializeByteVector( const std::vector &data ); diff --git a/src/account/TransferTransaction.hpp b/src/account/TransferTransaction.hpp index a6aabe52..80623f32 100644 --- a/src/account/TransferTransaction.hpp +++ b/src/account/TransferTransaction.hpp @@ -30,7 +30,7 @@ namespace sgns /** * @brief Default Transfer Transaction destructor */ - ~TransferTransaction() = default; + ~TransferTransaction() override = default; /** * @brief diff --git a/src/api/jrpc/jrpc_processor.hpp b/src/api/jrpc/jrpc_processor.hpp index 873c0068..735499a8 100644 --- a/src/api/jrpc/jrpc_processor.hpp +++ b/src/api/jrpc/jrpc_processor.hpp @@ -11,12 +11,12 @@ namespace sgns::api { */ class JRpcProcessor: private boost::noncopyable, public IComponent { public: - virtual ~JRpcProcessor() = default; + ~JRpcProcessor() override = default; - /** + /** * @brief registers callbacks for jrpc request */ - virtual void registerHandlers() = 0; + virtual void registerHandlers() = 0; }; } // namespace sgns::api diff --git a/src/api/jrpc/jrpc_server.hpp b/src/api/jrpc/jrpc_server.hpp index 76721d2f..92f29541 100644 --- a/src/api/jrpc/jrpc_server.hpp +++ b/src/api/jrpc/jrpc_server.hpp @@ -18,7 +18,7 @@ namespace sgns::api { public: using Method = jsonrpc::MethodWrapper::Method; - virtual ~JRpcServer() = default; + ~JRpcServer() override = default; /** * @brief registers rpc request handler lambda diff --git a/src/api/service/api_service.hpp b/src/api/service/api_service.hpp index e19bb192..3fa8efa6 100644 --- a/src/api/service/api_service.hpp +++ b/src/api/service/api_service.hpp @@ -58,7 +58,7 @@ namespace sgns::api { const std::vector> &processors, SubscriptionEnginePtr subscription_engine); - virtual ~ApiService() = default; + ~ApiService() override = default; /** @see AppStateManager::takeControl */ bool prepare(); @@ -86,7 +86,6 @@ namespace sgns::api { SubscribedSessionPtr storeSessionWithId( Session::SessionId id, const std::shared_ptr &session); - private: std::shared_ptr thread_pool_; std::vector> listeners_; std::shared_ptr server_; diff --git a/src/api/service/author/author_api.hpp b/src/api/service/author/author_api.hpp index 013f197a..adeb8110 100644 --- a/src/api/service/author/author_api.hpp +++ b/src/api/service/author/author_api.hpp @@ -19,8 +19,8 @@ namespace sgns::api { using ExtrinsicKey = primitives::ExtrinsicKey; public: - virtual ~AuthorApi() = default; - /** + ~AuthorApi() override = default; + /** * @brief validates and sends extrinsic to transaction pool * @param bytes encoded extrinsic * @return hash of successfully validated extrinsic @@ -29,12 +29,12 @@ namespace sgns::api { virtual outcome::result submitExtrinsic( const Extrinsic &extrinsic) = 0; - /** + /** * @return collection of pending extrinsics */ - virtual outcome::result> pendingExtrinsics() = 0; + virtual outcome::result> pendingExtrinsics() = 0; - // TODO(yuraz): will be documented later (no task yet) + // TODO(yuraz): will be documented later (no task yet) virtual outcome::result> removeExtrinsic( const std::vector &keys) = 0; }; diff --git a/src/api/service/chain/chain_api.hpp b/src/api/service/chain/chain_api.hpp index 55642bad..735ca514 100644 --- a/src/api/service/chain/chain_api.hpp +++ b/src/api/service/chain/chain_api.hpp @@ -14,7 +14,7 @@ namespace sgns::api { */ class ChainApi : public IComponent { public: - virtual ~ChainApi() = default; + ~ChainApi() override = default; using BlockNumber = primitives::BlockNumber; using BlockHash = sgns::primitives::BlockHash; using ValueType = boost::variant; diff --git a/src/api/service/state/state_api.hpp b/src/api/service/state/state_api.hpp index 48c8bda0..205e977b 100644 --- a/src/api/service/state/state_api.hpp +++ b/src/api/service/state/state_api.hpp @@ -15,7 +15,7 @@ namespace sgns::api { class StateApi : public IComponent { public: - virtual ~StateApi() = default; + ~StateApi() override = default; virtual void setApiService( const std::shared_ptr &api_service) = 0; diff --git a/src/api/service/system/system_api.hpp b/src/api/service/system/system_api.hpp index 38d960c9..512afd1b 100644 --- a/src/api/service/system/system_api.hpp +++ b/src/api/service/system/system_api.hpp @@ -9,7 +9,7 @@ namespace sgns::api { /// Auxiliary class that providing access for some app's parts over RPC class SystemApi : public IComponent { public: - virtual ~SystemApi() = default; + ~SystemApi() override = default; virtual std::shared_ptr getConfig() const = 0; diff --git a/src/api/transport/listener.hpp b/src/api/transport/listener.hpp index 239925f0..4fd7e44b 100644 --- a/src/api/transport/listener.hpp +++ b/src/api/transport/listener.hpp @@ -33,7 +33,7 @@ namespace sgns::api { } }; - virtual ~Listener() = default; + ~Listener() override = default; /** * @brief Bind endpoint diff --git a/src/api/transport/rpc_thread_pool.hpp b/src/api/transport/rpc_thread_pool.hpp index 4482f24b..2f6f3728 100644 --- a/src/api/transport/rpc_thread_pool.hpp +++ b/src/api/transport/rpc_thread_pool.hpp @@ -31,7 +31,7 @@ namespace sgns::api { RpcThreadPool(std::shared_ptr context, const Configuration &configuration); - ~RpcThreadPool() = default; + ~RpcThreadPool() override = default; /** * @brief starts pool diff --git a/src/application/app_state_manager.hpp b/src/application/app_state_manager.hpp index ccd99c29..726bda1c 100644 --- a/src/application/app_state_manager.hpp +++ b/src/application/app_state_manager.hpp @@ -25,7 +25,7 @@ namespace sgns::application { ReadyToStop, }; - virtual ~AppStateManager() = default; + ~AppStateManager() override = default; /** * @brief Execute \param cb at stage of prepare application diff --git a/src/application/configuration_storage.hpp b/src/application/configuration_storage.hpp index cf69540b..5ed6d92e 100644 --- a/src/application/configuration_storage.hpp +++ b/src/application/configuration_storage.hpp @@ -17,36 +17,36 @@ namespace sgns::application { */ class ConfigurationStorage : public IComponent { public: - virtual ~ConfigurationStorage() = default; + ~ConfigurationStorage() override = default; - [[nodiscard]] virtual const std::string &name() const = 0; + [[nodiscard]] virtual const std::string &name() const = 0; - [[nodiscard]] virtual const std::string &id() const = 0; + [[nodiscard]] virtual const std::string &id() const = 0; - [[nodiscard]] virtual const std::string &chainType() const = 0; + [[nodiscard]] virtual const std::string &chainType() const = 0; - /// Return ids of peer nodes of the current node - [[nodiscard]] virtual network::PeerList getBootNodes() const = 0; + /// Return ids of peer nodes of the current node + [[nodiscard]] virtual network::PeerList getBootNodes() const = 0; - [[nodiscard]] virtual const std::vector> &telemetryEndpoints() const = 0; + [[nodiscard]] virtual const std::vector> &telemetryEndpoints() const = 0; - [[nodiscard]] virtual const std::string &protocolId() const = 0; + [[nodiscard]] virtual const std::string &protocolId() const = 0; - [[nodiscard]] virtual const std::map &properties() const = 0; + [[nodiscard]] virtual const std::map &properties() const = 0; - [[nodiscard]] virtual boost::optional> getProperty( - const std::string &property ) const = 0; + [[nodiscard]] virtual boost::optional> getProperty( + const std::string &property ) const = 0; - [[nodiscard]] virtual const std::set &forkBlocks() const = 0; + [[nodiscard]] virtual const std::set &forkBlocks() const = 0; - [[nodiscard]] virtual const std::set &badBlocks() const = 0; + [[nodiscard]] virtual const std::set &badBlocks() const = 0; - [[nodiscard]] virtual boost::optional verificationEngine() const = 0; + [[nodiscard]] virtual boost::optional verificationEngine() const = 0; - /** + /** * @return genesis block of the chain */ - [[nodiscard]] virtual GenesisRawConfig getGenesis() const = 0; + [[nodiscard]] virtual GenesisRawConfig getGenesis() const = 0; }; } // namespace sgns::application diff --git a/src/application/key_storage.hpp b/src/application/key_storage.hpp index 5913bbbb..7556959e 100644 --- a/src/application/key_storage.hpp +++ b/src/application/key_storage.hpp @@ -15,22 +15,22 @@ namespace sgns::application { */ class KeyStorage : public IComponent { public: - virtual ~KeyStorage() = default; + ~KeyStorage() override = default; - /** + /** * Get the node sr25519 keypair, which is used, for example, in PRODUCTION */ - [[nodiscard]] virtual crypto::SR25519Keypair getLocalSr25519Keypair() const = 0; + [[nodiscard]] virtual crypto::SR25519Keypair getLocalSr25519Keypair() const = 0; - /** + /** * Get the node ed25519 keypair used in finality of verificaiton */ - [[nodiscard]] virtual crypto::ED25519Keypair getLocalEd25519Keypair() const = 0; + [[nodiscard]] virtual crypto::ED25519Keypair getLocalEd25519Keypair() const = 0; - /** + /** * Get the node libp2p keypair, which is used by libp2p network library */ - [[nodiscard]] virtual libp2p::crypto::KeyPair getP2PKeypair() const = 0; + [[nodiscard]] virtual libp2p::crypto::KeyPair getP2PKeypair() const = 0; }; } diff --git a/src/authorship/block_builder_factory.hpp b/src/authorship/block_builder_factory.hpp index 0cb79394..423ad4d1 100644 --- a/src/authorship/block_builder_factory.hpp +++ b/src/authorship/block_builder_factory.hpp @@ -13,14 +13,14 @@ namespace sgns::authorship { */ class BlockBuilderFactory : public IComponent { public: - virtual ~BlockBuilderFactory() = default; + ~BlockBuilderFactory() override = default; - /** + /** * Prepares BlockBuilder for creating block on top of parent block and using * provided digests. Also initialises the block created in BlockBuilder */ - [[nodiscard]] virtual outcome::result> create( - const primitives::BlockId &parent_id, primitives::Digest inherent_digest ) const = 0; + [[nodiscard]] virtual outcome::result> create( + const primitives::BlockId &parent_id, primitives::Digest inherent_digest ) const = 0; }; } // namespace sgns::authorship diff --git a/src/base/hexutil.hpp b/src/base/hexutil.hpp index 66aa1829..3a8bb174 100644 --- a/src/base/hexutil.hpp +++ b/src/base/hexutil.hpp @@ -68,24 +68,27 @@ namespace sgns::base { * @param value source hex string * @return unhexed value */ - template >> - outcome::result unhexNumber(std::string_view value) { - std::vector bytes; - OUTCOME_TRY((auto &&, bts), base::unhexWith0x(value)); - bytes = std::move(bts); - - if (bytes.size() > sizeof(T)) { - return UnhexError::VALUE_OUT_OF_RANGE; - } - - T result{ 0U }; - for (auto b : bytes) { - // check if `multiply by 10` will cause overflow - result <<= 8U; - result += b; - } - - return result; + template >> + outcome::result unhexNumber( std::string_view value ) + { + std::vector bytes; + OUTCOME_TRY( ( auto &&, bts ), base::unhexWith0x( value ) ); + bytes = std::move( bts ); + + if ( bytes.size() > sizeof( T ) ) + { + return UnhexError::VALUE_OUT_OF_RANGE; + } + + T result{ 0U }; + for ( auto b : bytes ) + { + // check if `multiply by 10` will cause overflow + result <<= 8U; + result += b; + } + + return result; } } // namespace sgns::base diff --git a/src/blockchain/block_storage.hpp b/src/blockchain/block_storage.hpp index 34532ead..08a3057b 100644 --- a/src/blockchain/block_storage.hpp +++ b/src/blockchain/block_storage.hpp @@ -15,7 +15,7 @@ namespace sgns::blockchain { */ class BlockStorage : public IComponent { public: - virtual ~BlockStorage() = default; + ~BlockStorage() override = default; /// Get hash of genesis block virtual outcome::result getGenesisBlockHash() diff --git a/src/blockchain/block_tree.hpp b/src/blockchain/block_tree.hpp index cc1b894c..168a6e1e 100644 --- a/src/blockchain/block_tree.hpp +++ b/src/blockchain/block_tree.hpp @@ -24,7 +24,7 @@ namespace sgns::blockchain { struct BlockTree : public IComponent { using BlockHashVecRes = outcome::result>; - virtual ~BlockTree() = default; + ~BlockTree() override = default; /** * Get block header by provided block id diff --git a/src/clock/clock.hpp b/src/clock/clock.hpp index 4ce88fd9..c7f8a573 100644 --- a/src/clock/clock.hpp +++ b/src/clock/clock.hpp @@ -22,7 +22,7 @@ namespace sgns::clock { */ using TimePoint = typename ClockType::time_point; - virtual ~Clock() = default; + ~Clock() override = default; /** * @return a time point representing the current time diff --git a/src/crypto/ed25519_provider.hpp b/src/crypto/ed25519_provider.hpp index 5fe18261..9a84ebce 100644 --- a/src/crypto/ed25519_provider.hpp +++ b/src/crypto/ed25519_provider.hpp @@ -17,7 +17,7 @@ namespace sgns::crypto { class ED25519Provider : public IComponent { public: - virtual ~ED25519Provider() = default; + ~ED25519Provider() override = default; /** * Generates random keypair for signing the message diff --git a/src/crypto/hasher.hpp b/src/crypto/hasher.hpp index cb1bc933..4ed3af4f 100644 --- a/src/crypto/hasher.hpp +++ b/src/crypto/hasher.hpp @@ -12,66 +12,66 @@ namespace sgns::crypto { using Hash256 = base::Hash256; public: - virtual ~Hasher() = default; + ~Hasher() override = default; - /** + /** * @brief twox_128 calculates 16-byte twox hash * @param buffer source buffer * @return 128-bit hash value */ - //------------ by ruymaster ----// - [[nodiscard]] virtual Hash64 twox_64( gsl::span buffer ) const = 0; + //------------ by ruymaster ----// + [[nodiscard]] virtual Hash64 twox_64( gsl::span buffer ) const = 0; - /** + /** * @brief twox_128 calculates 16-byte twox hash * @param buffer source buffer * @return 128-bit hash value */ - //------------ by ruymaster ----// - [[nodiscard]] virtual Hash128 twox_128( gsl::span buffer ) const = 0; + //------------ by ruymaster ----// + [[nodiscard]] virtual Hash128 twox_128( gsl::span buffer ) const = 0; - /** + /** * @brief blake2b_128 function calculates 16-byte blake2b hash * @param buffer source value * @return 128-bit hash value */ - [[nodiscard]] virtual Hash128 blake2b_128( gsl::span buffer ) const = 0; + [[nodiscard]] virtual Hash128 blake2b_128( gsl::span buffer ) const = 0; - /** + /** * @brief twox_256 calculates 32-byte twox hash * @param buffer source buffer * @return 256-bit hash value */ - //--------------------- - [[nodiscard]] virtual Hash256 twox_256( gsl::span buffer ) const = 0; + //--------------------- + [[nodiscard]] virtual Hash256 twox_256( gsl::span buffer ) const = 0; - /** + /** * @brief blake2b_256 function calculates 32-byte blake2b hash * @param buffer source value * @return 256-bit hash value */ - [[nodiscard]] virtual Hash256 blake2b_256( gsl::span buffer ) const = 0; + [[nodiscard]] virtual Hash256 blake2b_256( gsl::span buffer ) const = 0; - /** + /** * @brief keccak_256 function calculates 32-byte keccak hash * @param buffer source value * @return 256-bit hash value */ - [[nodiscard]] virtual Hash256 keccak_256( gsl::span buffer ) const = 0; + [[nodiscard]] virtual Hash256 keccak_256( gsl::span buffer ) const = 0; - /** + /** * @brief blake2s_256 function calculates 32-byte blake2s hash * @param buffer source value * @return 256-bit hash value */ - [[nodiscard]] virtual Hash256 blake2s_256( gsl::span buffer ) const = 0; + [[nodiscard]] virtual Hash256 blake2s_256( gsl::span buffer ) const = 0; - /** + /** * @brief sha2_256 function calculates 32-byte sha2-256 hash * @param buffer source value * @return 256-bit hash value */ - [[nodiscard]] virtual Hash256 sha2_256( gsl::span buffer ) const = 0; + [[nodiscard]] virtual Hash256 sha2_256( gsl::span buffer ) const = 0; }; } diff --git a/src/crypto/sr25519_provider.hpp b/src/crypto/sr25519_provider.hpp index a22dae76..3f658ce3 100644 --- a/src/crypto/sr25519_provider.hpp +++ b/src/crypto/sr25519_provider.hpp @@ -22,7 +22,7 @@ namespace sgns::crypto { class SR25519Provider : public IComponent { public: - virtual ~SR25519Provider() = default; + ~SR25519Provider() override = default; /** * Generates random keypair for signing the message diff --git a/src/crypto/vrf_provider.hpp b/src/crypto/vrf_provider.hpp index da4a006f..aa96026c 100644 --- a/src/crypto/vrf_provider.hpp +++ b/src/crypto/vrf_provider.hpp @@ -13,7 +13,7 @@ namespace sgns::crypto { */ class VRFProvider : public IComponent { public: - virtual ~VRFProvider() = default; + ~VRFProvider() override = default; /** * Generates random keypair for signing the message diff --git a/src/local_secure_storage/ISecureStorage.hpp b/src/local_secure_storage/ISecureStorage.hpp index 00b9ba80..5278d4d6 100644 --- a/src/local_secure_storage/ISecureStorage.hpp +++ b/src/local_secure_storage/ISecureStorage.hpp @@ -18,7 +18,7 @@ namespace sgns class ISecureStorage : public IComponent, public std::enable_shared_from_this { public: - virtual ~ISecureStorage() = default; + ~ISecureStorage() override = default; using SecureBufferType = std::string; diff --git a/src/local_secure_storage/impl/json/JSONSecureStorage.hpp b/src/local_secure_storage/impl/json/JSONSecureStorage.hpp index 9999f2b5..bf9a31a0 100644 --- a/src/local_secure_storage/impl/json/JSONSecureStorage.hpp +++ b/src/local_secure_storage/impl/json/JSONSecureStorage.hpp @@ -16,9 +16,11 @@ namespace sgns class JSONSecureStorage : public ISecureStorage { public: - ~JSONSecureStorage() = default; + ~JSONSecureStorage() override = default; outcome::result Load( const std::string &key, const std::string directory = "" ) override; - outcome::result Save( const std::string &key, const SecureBufferType &buffer, const std::string directory = "" ) override; + outcome::result Save( const std::string &key, + const SecureBufferType &buffer, + const std::string directory = "" ) override; std::string GetName() override { diff --git a/src/network/extrinsic_gossiper.hpp b/src/network/extrinsic_gossiper.hpp index b5b75670..db5e668c 100644 --- a/src/network/extrinsic_gossiper.hpp +++ b/src/network/extrinsic_gossiper.hpp @@ -9,7 +9,7 @@ namespace sgns::network { * Sends messages, related to author api, over the Gossip protocol */ struct ExtrinsicGossiper : public IComponent { - virtual ~ExtrinsicGossiper() = default; + ~ExtrinsicGossiper() override = default; /** * Send TxAnnounce message diff --git a/src/network/extrinsic_observer.hpp b/src/network/extrinsic_observer.hpp index 556f658c..a4f0d798 100644 --- a/src/network/extrinsic_observer.hpp +++ b/src/network/extrinsic_observer.hpp @@ -10,7 +10,7 @@ namespace sgns::network { class ExtrinsicObserver : public IComponent { public: - virtual ~ExtrinsicObserver() = default; + ~ExtrinsicObserver() override = default; virtual outcome::result onTxMessage( const primitives::Extrinsic &extrinsic) = 0; diff --git a/src/network/router.hpp b/src/network/router.hpp index 49f0914b..d5e194a2 100644 --- a/src/network/router.hpp +++ b/src/network/router.hpp @@ -16,7 +16,7 @@ namespace sgns::network { using Stream = libp2p::connection::Stream; public: - virtual ~Router() = default; + ~Router() override = default; /** * Start accepting new connections and messages on this router diff --git a/src/network/sync_protocol_observer.hpp b/src/network/sync_protocol_observer.hpp index 46b8f16b..5c3f14b0 100644 --- a/src/network/sync_protocol_observer.hpp +++ b/src/network/sync_protocol_observer.hpp @@ -13,7 +13,7 @@ namespace sgns::network { * Reactive part of Sync protocol */ struct SyncProtocolObserver : public IComponent { - virtual ~SyncProtocolObserver() = default; + ~SyncProtocolObserver() override = default; /** * Process a blocks request diff --git a/src/processing/processing_imagesplit.hpp b/src/processing/processing_imagesplit.hpp index 12dc4f8e..177cda28 100644 --- a/src/processing/processing_imagesplit.hpp +++ b/src/processing/processing_imagesplit.hpp @@ -16,9 +16,7 @@ namespace sgns::processing class ImageSplitter { public: - ImageSplitter() { - - } + ImageSplitter() = default; /** Split an image loaded from file * @param filename - path/to/file.ext * @param blockstride - Stride to use for access pattern diff --git a/src/processing/processing_processor.hpp b/src/processing/processing_processor.hpp index c630ba7f..1236b30f 100644 --- a/src/processing/processing_processor.hpp +++ b/src/processing/processing_processor.hpp @@ -17,9 +17,7 @@ namespace sgns::processing class ProcessingProcessor { public: - virtual ~ProcessingProcessor() - { - } + virtual ~ProcessingProcessor() = default; /** Start processing data * @param result - Reference to result item to set hashes to diff --git a/src/processing/processing_subtask_queue_accessor_impl.hpp b/src/processing/processing_subtask_queue_accessor_impl.hpp index 04dd1af1..c4dbebbf 100644 --- a/src/processing/processing_subtask_queue_accessor_impl.hpp +++ b/src/processing/processing_subtask_queue_accessor_impl.hpp @@ -36,8 +36,7 @@ class SubTaskQueueAccessorImpl : public SubTaskQueueAccessor, std::shared_ptr subTaskStateStorage, std::shared_ptr subTaskResultStorage, std::function taskResultProcessingSink); - virtual ~SubTaskQueueAccessorImpl(); - + ~SubTaskQueueAccessorImpl() override; /** SubTaskQueueAccessor overrides */ diff --git a/src/processing/processing_subtask_queue_channel_pubsub.hpp b/src/processing/processing_subtask_queue_channel_pubsub.hpp index de872cac..4879c013 100644 --- a/src/processing/processing_subtask_queue_channel_pubsub.hpp +++ b/src/processing/processing_subtask_queue_channel_pubsub.hpp @@ -30,7 +30,7 @@ class ProcessingSubTaskQueueChannelPubSub : public ProcessingSubTaskQueueChannel std::shared_ptr gossipPubSub, const std::string& processingQueueChannelId); - virtual ~ProcessingSubTaskQueueChannelPubSub(); + ~ProcessingSubTaskQueueChannelPubSub() override; /** ProcessingSubTaskQueueChannel overrides */ diff --git a/src/processing/processors/processing_processor_mnn_posenet.hpp b/src/processing/processors/processing_processor_mnn_posenet.hpp index 2b4f9633..d6b597da 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.hpp +++ b/src/processing/processors/processing_processor_mnn_posenet.hpp @@ -46,7 +46,7 @@ namespace sgns::processing { } - ~MNN_PoseNet(){ + ~MNN_PoseNet() override{ //stbi_image_free(imageData_); }; /** Start processing data diff --git a/src/storage/changes_trie/changes_tracker.hpp b/src/storage/changes_trie/changes_tracker.hpp index 927090c4..835723ab 100644 --- a/src/storage/changes_trie/changes_tracker.hpp +++ b/src/storage/changes_trie/changes_tracker.hpp @@ -19,7 +19,7 @@ namespace sgns::storage::changes_trie { using GetExtrinsicIndexDelegate = std::function()>; - virtual ~ChangesTracker() = default; + ~ChangesTracker() override = default; /** * @param f is a functor that returns the current extrinsic index diff --git a/src/storage/trie/codec.hpp b/src/storage/trie/codec.hpp index 382d9e41..5dc6a837 100644 --- a/src/storage/trie/codec.hpp +++ b/src/storage/trie/codec.hpp @@ -16,7 +16,7 @@ namespace sgns::storage::trie { */ class Codec : public IComponent{ public: - virtual ~Codec() = default; + ~Codec() override = default; /** * @brief Encode node to byte representation diff --git a/src/storage/trie/serialization/trie_serializer.hpp b/src/storage/trie/serialization/trie_serializer.hpp index 75cb879e..334f57de 100644 --- a/src/storage/trie/serialization/trie_serializer.hpp +++ b/src/storage/trie/serialization/trie_serializer.hpp @@ -14,7 +14,7 @@ namespace sgns::storage::trie { */ class TrieSerializer : public IComponent{ public: - virtual ~TrieSerializer() = default; + ~TrieSerializer() override = default; /** * @return root hash of an empty trie diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_factory.hpp b/src/storage/trie/supergenius_trie/supergenius_trie_factory.hpp index 5c460fd0..29f82112 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_factory.hpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_factory.hpp @@ -38,7 +38,7 @@ namespace sgns::storage::trie { SuperGeniusTrie::NodePtr root, ChildRetrieveFunctor f = defaultChildRetriever) const = 0; - virtual ~SuperGeniusTrieFactory() = default; + ~SuperGeniusTrieFactory() override = default; }; } // namespace sgns::storage::trie diff --git a/src/storage/trie/trie_storage.hpp b/src/storage/trie/trie_storage.hpp index 36d4cc49..67406217 100644 --- a/src/storage/trie/trie_storage.hpp +++ b/src/storage/trie/trie_storage.hpp @@ -18,7 +18,7 @@ namespace sgns::storage::trie { */ class TrieStorage : public IComponent { public: - virtual ~TrieStorage() = default; + ~TrieStorage() override = default; virtual outcome::result> getPersistentBatch() = 0; diff --git a/src/transaction_pool/pool_moderator.hpp b/src/transaction_pool/pool_moderator.hpp index 2997aba2..be8e143f 100644 --- a/src/transaction_pool/pool_moderator.hpp +++ b/src/transaction_pool/pool_moderator.hpp @@ -17,7 +17,7 @@ namespace sgns::transaction_pool { */ class PoolModerator : public IComponent { public: - virtual ~PoolModerator() = default; + ~PoolModerator() override = default; /** * Bans a transaction for a fixed amount of time diff --git a/src/transaction_pool/transaction_pool.hpp b/src/transaction_pool/transaction_pool.hpp index 19a91fe4..d0e9f85a 100644 --- a/src/transaction_pool/transaction_pool.hpp +++ b/src/transaction_pool/transaction_pool.hpp @@ -19,7 +19,7 @@ namespace sgns::transaction_pool { struct Status; struct Limits; - virtual ~TransactionPool() = default; + ~TransactionPool() override = default; /** * Import one verified transaction to the pool. If it has unresolved diff --git a/src/verification/authority/authority_manager.hpp b/src/verification/authority/authority_manager.hpp index fa6bf850..530f744b 100644 --- a/src/verification/authority/authority_manager.hpp +++ b/src/verification/authority/authority_manager.hpp @@ -8,7 +8,7 @@ namespace sgns::authority { class AuthorityManager : public IComponent { public: - virtual ~AuthorityManager() = default; + ~AuthorityManager() override = default; /** * @brief Returns authorities according specified block diff --git a/src/verification/authority/authority_update_observer.hpp b/src/verification/authority/authority_update_observer.hpp index 3aefb335..7a3381ff 100644 --- a/src/verification/authority/authority_update_observer.hpp +++ b/src/verification/authority/authority_update_observer.hpp @@ -10,9 +10,9 @@ namespace sgns::authority { class AuthorityUpdateObserver : public IComponent { public: - virtual ~AuthorityUpdateObserver() = default; + ~AuthorityUpdateObserver() override = default; - /** + /** * Processes verification message in block digest * @param message * @return failure or nothing diff --git a/src/verification/production/epoch_storage.hpp b/src/verification/production/epoch_storage.hpp index e1cbb9bf..80714c55 100644 --- a/src/verification/production/epoch_storage.hpp +++ b/src/verification/production/epoch_storage.hpp @@ -14,7 +14,7 @@ namespace sgns::verification { * Allows to store epochs */ struct EpochStorage : public IComponent { - virtual ~EpochStorage() = default; + ~EpochStorage() override = default; /** * Stores epoch's information by its number diff --git a/src/verification/production/production_lottery.hpp b/src/verification/production/production_lottery.hpp index b1e78c7d..097ff027 100644 --- a/src/verification/production/production_lottery.hpp +++ b/src/verification/production/production_lottery.hpp @@ -25,11 +25,11 @@ namespace sgns::verification { * */ struct ProductionLottery : public IComponent { - virtual ~ProductionLottery() = default; + ~ProductionLottery() override = default; - using SlotsLeadership = std::vector>; + using SlotsLeadership = std::vector>; - /** + /** * Compute leadership for all slots in the given epoch * @param epoch is an information about epoch where we calculate leadership * @param threshold is a maximum value that is considered valid by vrf @@ -41,7 +41,7 @@ namespace sgns::verification { const Threshold &threshold, const crypto::SR25519Keypair &keypair) const = 0; - /** + /** * Compute randomness for the next epoch * @param last_epoch_randomness - randomness of the last epoch * @param new_epoch_index - index of the new epoch @@ -53,7 +53,7 @@ namespace sgns::verification { const Randomness &last_epoch_randomness, EpochLength new_epoch_index) = 0; - /** + /** * Submit a VRF value for this epoch * @param value to be submitted * diff --git a/src/verification/production/production_synchronizer.hpp b/src/verification/production/production_synchronizer.hpp index 9ff7af35..220c9e54 100644 --- a/src/verification/production/production_synchronizer.hpp +++ b/src/verification/production/production_synchronizer.hpp @@ -19,7 +19,7 @@ namespace sgns::verification { using BlocksHandler = std::function &)>; - virtual ~ProductionSynchronizer() = default; + ~ProductionSynchronizer() override = default; /** * Request blocks between provided ones diff --git a/src/verification/validation/block_validator.hpp b/src/verification/validation/block_validator.hpp index b0d6fb42..2a60e9e6 100644 --- a/src/verification/validation/block_validator.hpp +++ b/src/verification/validation/block_validator.hpp @@ -13,9 +13,9 @@ namespace sgns::verification { */ class BlockValidator : public IComponent { public: - virtual ~BlockValidator() = default; + ~BlockValidator() override = default; - /** + /** * Validate the block * @param block to be validated * @param authority_id authority that sent this block @@ -25,11 +25,11 @@ namespace sgns::verification { */ virtual outcome::result validateBlock( const primitives::Block &block, - const primitives::AuthorityId &authority_id, + const primitives::AuthorityId &authority_id, const Threshold &threshold, const Randomness &randomness) const = 0; - /** + /** * Validate the block header * @param block to be validated * @param authority_id authority that sent this block @@ -39,7 +39,7 @@ namespace sgns::verification { */ virtual outcome::result validateHeader( const primitives::BlockHeader &block_header, - const primitives::AuthorityId &authority_id, + const primitives::AuthorityId &authority_id, const Threshold &threshold, const Randomness &randomness) const = 0; }; From f8862285434bc8958ae84c2b7c45a2335a3bd599 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:09:11 -0300 Subject: [PATCH 18/30] Fixed bool --- src/account/GeniusAccount.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/account/GeniusAccount.hpp b/src/account/GeniusAccount.hpp index bda78499..81f7c955 100644 --- a/src/account/GeniusAccount.hpp +++ b/src/account/GeniusAccount.hpp @@ -78,7 +78,7 @@ namespace sgns std::cout << "utxo's Amount: " << curr.GetAmount() << std::endl; std::cout << "utxo's GetOutputIdx: " << curr.GetOutputIdx() << std::endl; std::cout << "utxo's GetLock: " << curr.GetLock() << std::endl; - if ( curr.GetLock() == false ) + if ( !curr.GetLock() ) { retval += curr.GetAmount(); } From ef627b6a5180fc2e4f821efae2648f6c10c2aa8a Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:11:17 -0300 Subject: [PATCH 19/30] Removed duplicate visibility specifier --- src/application/app_config.hpp | 1 - src/network/helpers/message_read_writer.hpp | 1 - src/verification/finality/impl/voting_round_impl.hpp | 1 - src/verification/production/impl/production_impl.hpp | 3 +-- 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/application/app_config.hpp b/src/application/app_config.hpp index 18212e34..75121751 100644 --- a/src/application/app_config.hpp +++ b/src/application/app_config.hpp @@ -23,7 +23,6 @@ namespace sgns::application kFullSyncing, }; - public: virtual ~AppConfiguration() = default; /** diff --git a/src/network/helpers/message_read_writer.hpp b/src/network/helpers/message_read_writer.hpp index 542d6506..f4f6e257 100644 --- a/src/network/helpers/message_read_writer.hpp +++ b/src/network/helpers/message_read_writer.hpp @@ -35,7 +35,6 @@ namespace sgns::network { MessageReadWriter(const MessageReadWriter&) = delete; MessageReadWriter& operator=(const MessageReadWriter&) = delete; - public: template static size_t need_to_reserve(const T &t) { return AdapterType::size(t) + AncestorType::need_to_reserve(t); diff --git a/src/verification/finality/impl/voting_round_impl.hpp b/src/verification/finality/impl/voting_round_impl.hpp index f354c8d4..19d660c2 100644 --- a/src/verification/finality/impl/voting_round_impl.hpp +++ b/src/verification/finality/impl/voting_round_impl.hpp @@ -236,7 +236,6 @@ namespace sgns::verification::finality { bool validate(const BlockInfo &vote, const FinalityJustification &justification) const; - private: std::weak_ptr finality_; Stage stage_ = Stage::INIT; diff --git a/src/verification/production/impl/production_impl.hpp b/src/verification/production/impl/production_impl.hpp index b6df9f86..0344382a 100644 --- a/src/verification/production/impl/production_impl.hpp +++ b/src/verification/production/impl/production_impl.hpp @@ -130,7 +130,6 @@ namespace sgns::verification { */ void synchronizeSlots(const primitives::BlockHeader &new_header); - private: std::shared_ptr app_state_manager_; std::shared_ptr lottery_; std::shared_ptr block_executor_; @@ -153,7 +152,7 @@ namespace sgns::verification { /// Estimates of the first block production slot time. Input for the median /// algorithm - std::vector first_slot_times_{}; + std::vector first_slot_times_; /// Number of blocks we need to use in median algorithm to get the slot time const uint32_t kSlotTail = 30; From 4d66650e2900ee4c59367519d279c5b7e351ea4c Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:13:51 -0300 Subject: [PATCH 20/30] Removed unnecessary member initialization --- src/authorship/impl/block_builder_impl.hpp | 2 +- src/blockchain/impl/block_tree_impl.hpp | 2 +- src/network/impl/gossiper_broadcast.hpp | 2 +- src/network/types/blocks_request.hpp | 6 +++--- src/network/types/blocks_response.hpp | 2 +- src/primitives/block_data.hpp | 10 +++++----- src/primitives/common.hpp | 2 +- src/verification/authority/impl/schedule_node.hpp | 8 ++++---- src/verification/finality/vote_graph.hpp | 4 ++-- src/verification/production/types/epoch.hpp | 2 +- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/authorship/impl/block_builder_impl.hpp b/src/authorship/impl/block_builder_impl.hpp index 297a5488..8e284a73 100644 --- a/src/authorship/impl/block_builder_impl.hpp +++ b/src/authorship/impl/block_builder_impl.hpp @@ -24,7 +24,7 @@ namespace sgns::authorship { //std::shared_ptr r_block_builder_; base::Logger logger_; - std::vector extrinsics_{}; + std::vector extrinsics_; }; } // namespace sgns::authorship diff --git a/src/blockchain/impl/block_tree_impl.hpp b/src/blockchain/impl/block_tree_impl.hpp index 22d02636..9b5cc78a 100644 --- a/src/blockchain/impl/block_tree_impl.hpp +++ b/src/blockchain/impl/block_tree_impl.hpp @@ -37,7 +37,7 @@ namespace sgns::blockchain { bool finalized; - std::vector> children{}; + std::vector> children; /** * Get a node of the tree, containing block with the specified hash, if it diff --git a/src/network/impl/gossiper_broadcast.hpp b/src/network/impl/gossiper_broadcast.hpp index cb8ee68c..214f3b30 100644 --- a/src/network/impl/gossiper_broadcast.hpp +++ b/src/network/impl/gossiper_broadcast.hpp @@ -55,7 +55,7 @@ namespace sgns::network { std::unordered_map> streams_; - std::vector> syncing_streams_{}; + std::vector> syncing_streams_; base::Logger logger_; }; } // namespace sgns::network diff --git a/src/network/types/blocks_request.hpp b/src/network/types/blocks_request.hpp index eef17bbd..ad38490b 100644 --- a/src/network/types/blocks_request.hpp +++ b/src/network/types/blocks_request.hpp @@ -22,15 +22,15 @@ namespace sgns::network { /// bits, showing, which parts of BlockData to return BlockAttributes fields{}; /// start from this block - primitives::BlockId from{}; + primitives::BlockId from; /// end at this block; an implementation defined maximum is used when /// unspecified - boost::optional to{}; + boost::optional to; /// sequence direction Direction direction{}; /// maximum number of blocks to return; an implementation defined maximum is /// used when unspecified - boost::optional max{}; + boost::optional max; /// includes HEADER, BODY and JUSTIFICATION static constexpr BlockAttributes kBasicAttributes{19}; diff --git a/src/network/types/blocks_response.hpp b/src/network/types/blocks_response.hpp index b8b7efec..602cbbd7 100644 --- a/src/network/types/blocks_response.hpp +++ b/src/network/types/blocks_response.hpp @@ -18,7 +18,7 @@ namespace sgns::network { */ struct BlocksResponse { primitives::BlocksRequestId id; - std::vector blocks{}; + std::vector blocks; }; /** diff --git a/src/primitives/block_data.hpp b/src/primitives/block_data.hpp index a9971cec..b1d3ea8c 100644 --- a/src/primitives/block_data.hpp +++ b/src/primitives/block_data.hpp @@ -16,11 +16,11 @@ namespace sgns::primitives { */ struct BlockData { primitives::BlockHash hash; - boost::optional header{}; - boost::optional body{}; - boost::optional receipt{}; - boost::optional message_queue{}; - boost::optional justification{}; + boost::optional header; + boost::optional body; + boost::optional receipt; + boost::optional message_queue; + boost::optional justification; /** * Convert a block data into the block diff --git a/src/primitives/common.hpp b/src/primitives/common.hpp index 9e2acd8c..8a7a5683 100644 --- a/src/primitives/common.hpp +++ b/src/primitives/common.hpp @@ -25,7 +25,7 @@ namespace sgns::primitives { : block_number(n), block_hash(h) {} BlockNumber block_number{}; - BlockHash block_hash{}; + BlockHash block_hash; bool operator==(const BlockInfoT &o) const { return block_number == o.block_number && block_hash == o.block_hash; diff --git a/src/verification/authority/impl/schedule_node.hpp b/src/verification/authority/impl/schedule_node.hpp index e0a877cf..f47d004e 100644 --- a/src/verification/authority/impl/schedule_node.hpp +++ b/src/verification/authority/impl/schedule_node.hpp @@ -27,9 +27,9 @@ namespace sgns::authority { std::shared_ptr makeDescendant( const primitives::BlockInfo &block, bool finalized = false); - const primitives::BlockInfo block{}; + const primitives::BlockInfo block; std::weak_ptr parent; - std::vector> descendants{}; + std::vector> descendants; // Current authorities std::shared_ptr actual_authorities; @@ -39,11 +39,11 @@ namespace sgns::authority { // For scheduled changes primitives::BlockNumber scheduled_after = INACTIVE; - std::shared_ptr scheduled_authorities{}; + std::shared_ptr scheduled_authorities; // For forced changed primitives::BlockNumber forced_for = INACTIVE; - std::shared_ptr forced_authorities{}; + std::shared_ptr forced_authorities; // For pause primitives::BlockNumber pause_after = INACTIVE; diff --git a/src/verification/finality/vote_graph.hpp b/src/verification/finality/vote_graph.hpp index dbb44942..e1e0c036 100644 --- a/src/verification/finality/vote_graph.hpp +++ b/src/verification/finality/vote_graph.hpp @@ -17,8 +17,8 @@ namespace sgns::verification::finality { // graph entry struct Entry : public boost::equality_comparable { BlockNumber number{}; - std::vector ancestors{}; - std::vector descendents{}; + std::vector ancestors; + std::vector descendents; VoteWeight cumulative_vote; bool operator==(const Entry &o) const { diff --git a/src/verification/production/types/epoch.hpp b/src/verification/production/types/epoch.hpp index a1e6007a..544e5357 100644 --- a/src/verification/production/types/epoch.hpp +++ b/src/verification/production/types/epoch.hpp @@ -25,7 +25,7 @@ namespace sgns::verification { primitives::AuthorityList authorities; /// randomness of the epoch - Randomness randomness{}; + Randomness randomness; bool operator==(const Epoch &other) const { return epoch_index == other.epoch_index && start_slot == other.start_slot From f692276b526e3537c01167794d3293b30894179a Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:18:24 -0300 Subject: [PATCH 21/30] Removed `inline` clutter --- src/crdt/crdt_options.hpp | 4 +-- src/crdt/hierarchical_key.hpp | 4 +-- src/primitives/extrinsic.hpp | 5 ++-- .../supergenius_trie_impl.hpp | 6 ++-- src/verification/finality/chain.hpp | 6 ++-- src/verification/finality/round_state.hpp | 17 +++++------ src/verification/finality/vote_graph.hpp | 28 ++++++++--------- src/verification/finality/voter_set.hpp | 30 +++++++++++-------- 8 files changed, 52 insertions(+), 48 deletions(-) diff --git a/src/crdt/crdt_options.hpp b/src/crdt/crdt_options.hpp index be78d40b..1ab37cde 100644 --- a/src/crdt/crdt_options.hpp +++ b/src/crdt/crdt_options.hpp @@ -85,12 +85,12 @@ namespace sgns::crdt return VerifyErrorCode::Success; } - inline bool operator==( const CrdtOptions& rhs ) const + bool operator==( const CrdtOptions &rhs ) const { return logger == rhs.logger && rebroadcastIntervalMilliseconds == rhs.rebroadcastIntervalMilliseconds; } - inline bool operator!=( const CrdtOptions& rhs ) const + bool operator!=( const CrdtOptions &rhs ) const { return !operator==( rhs ); } diff --git a/src/crdt/hierarchical_key.hpp b/src/crdt/hierarchical_key.hpp index 65d14b22..434f1c60 100644 --- a/src/crdt/hierarchical_key.hpp +++ b/src/crdt/hierarchical_key.hpp @@ -58,12 +58,12 @@ namespace sgns::crdt bool IsTopLevel() const; - inline bool operator==(const HierarchicalKey& rhs) const + bool operator==( const HierarchicalKey &rhs ) const { return key_ == rhs.key_; } - inline bool operator!=(const HierarchicalKey& rhs) const + bool operator!=( const HierarchicalKey &rhs ) const { return !operator==(rhs); } diff --git a/src/primitives/extrinsic.hpp b/src/primitives/extrinsic.hpp index ad871ae0..8ec2326b 100644 --- a/src/primitives/extrinsic.hpp +++ b/src/primitives/extrinsic.hpp @@ -18,8 +18,9 @@ namespace sgns::primitives { struct Extrinsic { base::Buffer data; ///< extrinsic content as byte array - inline bool operator==(const Extrinsic &rhs) const { - return data == rhs.data; + bool operator==( const Extrinsic &rhs ) const + { + return data == rhs.data; } friend std::ostream &operator<<(std::ostream &out, const Extrinsic &v) { diff --git a/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp b/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp index 18367b07..71e8b4af 100644 --- a/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp +++ b/src/storage/trie/supergenius_trie/supergenius_trie_impl.hpp @@ -12,9 +12,9 @@ namespace sgns::storage::trie { class SuperGeniusTrieImpl : public SuperGeniusTrie { // a child is obtained from the branch list of children as-is. // should be used when the trie is completely in memory - inline static outcome::result defaultChildRetrieveFunctor( - const BranchPtr &parent, uint8_t idx) { - return parent->children.at(idx); + static outcome::result defaultChildRetrieveFunctor( const BranchPtr &parent, uint8_t idx ) + { + return parent->children.at( idx ); } public: diff --git a/src/verification/finality/chain.hpp b/src/verification/finality/chain.hpp index 93829736..eed8fa59 100644 --- a/src/verification/finality/chain.hpp +++ b/src/verification/finality/chain.hpp @@ -38,9 +38,9 @@ namespace sgns::verification::finality { * @returns true if {@param block} is a descendent of or equal to the * given {@param base}. */ - inline bool isEqualOrDescendOf(const primitives::BlockHash &base, - const primitives::BlockHash &block) const { - return base == block ? true : getAncestry(base, block).has_value(); + bool isEqualOrDescendOf( const primitives::BlockHash &base, const primitives::BlockHash &block ) const + { + return base == block ? true : getAncestry( base, block ).has_value(); } }; diff --git a/src/verification/finality/round_state.hpp b/src/verification/finality/round_state.hpp index 5448aeb9..2ef4d18d 100644 --- a/src/verification/finality/round_state.hpp +++ b/src/verification/finality/round_state.hpp @@ -31,19 +31,18 @@ namespace sgns::verification::finality { */ boost::optional finalized; - inline bool operator==(const RoundState &round_state) const { - return std::tie(last_finalized_block, - best_prevote_candidate, - best_final_candidate, - finalized) - == std::tie(round_state.last_finalized_block, + bool operator==( const RoundState &round_state ) const + { + return std::tie( last_finalized_block, best_prevote_candidate, best_final_candidate, finalized ) == + std::tie( round_state.last_finalized_block, round_state.best_prevote_candidate, round_state.best_final_candidate, - round_state.finalized); + round_state.finalized ); } - inline bool operator!=(const RoundState &round_state) const { - return !operator==(round_state); + bool operator!=( const RoundState &round_state ) const + { + return !operator==( round_state ); } }; diff --git a/src/verification/finality/vote_graph.hpp b/src/verification/finality/vote_graph.hpp index e1e0c036..0b4a39f6 100644 --- a/src/verification/finality/vote_graph.hpp +++ b/src/verification/finality/vote_graph.hpp @@ -64,25 +64,23 @@ namespace sgns::verification::finality { /// should be in reverse order from the old base's parent. virtual void adjustBase(const std::vector &ancestry_proof) = 0; - inline virtual outcome::result insert(const Vote &vote, - - const VoteWeight &weigth) { - return visit_in_place( - vote, [this, &weigth](const auto &vote) -> outcome::result { - return insert(BlockInfo{vote.block_number, vote.block_hash}, - weigth); - }); + virtual outcome::result insert( const Vote &vote, + + const VoteWeight &weigth ) + { + return visit_in_place( vote, + [this, &weigth]( const auto &vote ) -> outcome::result + { return insert( BlockInfo{ vote.block_number, vote.block_hash }, weigth ); } ); } - inline virtual outcome::result insert(const Prevote &prevote, - const VoteWeight &vote) { - return insert(BlockInfo{prevote.block_number, prevote.block_hash}, vote); + virtual outcome::result insert( const Prevote &prevote, const VoteWeight &vote ) + { + return insert( BlockInfo{ prevote.block_number, prevote.block_hash }, vote ); } - inline virtual outcome::result insert(const Precommit &precommit, - const VoteWeight &vote) { - return insert(BlockInfo{precommit.block_number, precommit.block_hash}, - vote); + virtual outcome::result insert( const Precommit &precommit, const VoteWeight &vote ) + { + return insert( BlockInfo{ precommit.block_number, precommit.block_hash }, vote ); } /// Insert a vote with given value into the graph at given hash and number. diff --git a/src/verification/finality/voter_set.hpp b/src/verification/finality/voter_set.hpp index c15ae975..dda33cf1 100644 --- a/src/verification/finality/voter_set.hpp +++ b/src/verification/finality/voter_set.hpp @@ -26,15 +26,17 @@ namespace sgns::verification::finality { /** * \return voters */ - inline const std::vector &voters() const { - return voters_; + const std::vector &voters() const + { + return voters_; } /** * \return uniqie voter set membership */ - inline MembershipCounter id() const { - return id_; + MembershipCounter id() const + { + return id_; } /** @@ -52,26 +54,30 @@ namespace sgns::verification::finality { */ boost::optional voterWeight(size_t voter_index) const; - inline size_t size() const { - return voters_.size(); + size_t size() const + { + return voters_.size(); } - inline bool empty() const { - return voters_.empty(); + bool empty() const + { + return voters_.empty(); } /** * \return total weight of all voters */ - inline size_t totalWeight() const { - return total_weight_; + size_t totalWeight() const + { + return total_weight_; } /** * \return map of pairs */ - inline const std::unordered_map &weightMap() const { - return weight_map_; + const std::unordered_map &weightMap() const + { + return weight_map_; } private: From 7ae388de302574bf1152e0c61a849d190e0993fa Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:22:06 -0300 Subject: [PATCH 22/30] Using helper variables in type traits --- src/base/util.hpp | 6 ++-- src/base/wrapper.hpp | 9 +++--- src/scale/detail/fixed_witdh_integer.hpp | 24 ++++++++-------- src/scale/scale_decoder_stream.hpp | 33 +++++++++++----------- src/scale/scale_encoder_stream.hpp | 35 ++++++++++++------------ 5 files changed, 53 insertions(+), 54 deletions(-) diff --git a/src/base/util.hpp b/src/base/util.hpp index 4ba01d48..428f2aab 100644 --- a/src/base/util.hpp +++ b/src/base/util.hpp @@ -63,8 +63,8 @@ namespace sgns static T Vector2Num( const std::vector &bytes ) { static_assert( - std::is_integral::value || std::is_same::value || - std::is_same::value, + std::is_integral_v || std::is_same_v || + std::is_same_v, "T must be an integral type or boost::multiprecision::uint128_t or boost::multiprecision::uint256_t" ); if ( bytes.size() > sizeof( T ) ) { @@ -192,7 +192,7 @@ namespace sgns * @tparam T std::vector or std::array */ template - static typename std::enable_if::value>::type AdjustEndianess( + static std::enable_if_t> AdjustEndianess( T &data, std::optional start = std::nullopt, std::optional finish = std::nullopt ) diff --git a/src/base/wrapper.hpp b/src/base/wrapper.hpp index 3808902d..089ddc59 100644 --- a/src/base/wrapper.hpp +++ b/src/base/wrapper.hpp @@ -38,11 +38,10 @@ namespace sgns::base { T data_; }; - template ::value>> - bool operator<(const Wrapper &a, const Wrapper &b) { - return a.unwrap() < b.unwrap(); + template >> + bool operator<( const Wrapper &a, const Wrapper &b ) + { + return a.unwrap() < b.unwrap(); } } // namespace sgns::base diff --git a/src/scale/detail/fixed_witdh_integer.hpp b/src/scale/detail/fixed_witdh_integer.hpp index c349d61a..39451e07 100644 --- a/src/scale/detail/fixed_witdh_integer.hpp +++ b/src/scale/detail/fixed_witdh_integer.hpp @@ -18,19 +18,17 @@ namespace sgns::scale::detail { * @param value integer value * @return byte array representation of value */ - template , - typename = std::enable_if_t::value>> - void encodeInteger(T value, S &out) { // no need to take integers by && - constexpr size_t size = sizeof(T); - constexpr size_t bits = size * 8; - boost::endian::endian_buffer buf{}; - buf = value; // cannot initialize, only assign - for (size_t i = 0; i < size; ++i) { - // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - out << buf.data()[i]; - } + template , typename = std::enable_if_t>> + void encodeInteger( T value, S &out ) + { // no need to take integers by && + constexpr size_t size = sizeof( T ); + constexpr size_t bits = size * 8; + boost::endian::endian_buffer buf{}; + buf = value; // cannot initialize, only assign + for (size_t i = 0; i < size; ++i) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) + out << buf.data()[i]; + } } /** diff --git a/src/scale/scale_decoder_stream.hpp b/src/scale/scale_decoder_stream.hpp index 0bba492e..267fcfd7 100644 --- a/src/scale/scale_decoder_stream.hpp +++ b/src/scale/scale_decoder_stream.hpp @@ -110,23 +110,24 @@ namespace sgns::scale { * @param v value of integral type * @return reference to stream */ - template , - typename = std::enable_if_t::value>> - ScaleDecoderStream &operator>>(T &v) { - // check bool - if constexpr (std::is_same::value) { - v = decodeBool(); + template , typename = std::enable_if_t>> + ScaleDecoderStream &operator>>( T &v ) + { + // check bool + if constexpr ( std::is_same::value ) + { + v = decodeBool(); + return *this; + } + // check byte + if constexpr ( sizeof( T ) == 1u ) + { + v = nextByte(); + return *this; + } + // decode any other integer + v = detail::decodeInteger( *this ); return *this; - } - // check byte - if constexpr (sizeof(T) == 1u) { - v = nextByte(); - return *this; - } - // decode any other integer - v = detail::decodeInteger(*this); - return *this; } /** diff --git a/src/scale/scale_encoder_stream.hpp b/src/scale/scale_encoder_stream.hpp index c1e5b5df..5598769f 100644 --- a/src/scale/scale_encoder_stream.hpp +++ b/src/scale/scale_encoder_stream.hpp @@ -197,23 +197,24 @@ namespace sgns::scale { * @param v value of integral type * @return reference to stream */ - template , - typename = std::enable_if_t::value>> - ScaleEncoderStream &operator<<(T &&v) { - // encode bool - if constexpr (std::is_same::value) { - uint8_t byte = (v ? 1u : 0u); - return putByte(byte); - } - // put byte - if constexpr (sizeof(T) == 1u) { - // to avoid infinite recursion - return putByte(static_cast(v)); - } - // encode any other integer - detail::encodeInteger(v, *this); - return *this; + template , typename = std::enable_if_t>> + ScaleEncoderStream &operator<<( T &&v ) + { + // encode bool + if constexpr ( std::is_same::value ) + { + uint8_t byte = ( v ? 1u : 0u ); + return putByte( byte ); + } + // put byte + if constexpr ( sizeof( T ) == 1u ) + { + // to avoid infinite recursion + return putByte( static_cast( v ) ); + } + // encode any other integer + detail::encodeInteger( v, *this ); + return *this; } /** From c071417e2c96ae2d68ecb15fe9cdc9f55c637570 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 30 Jul 2024 17:22:48 -0300 Subject: [PATCH 23/30] Prefer `using` over `typedef` --- src/processing/processing_subtask_queue_accessor.hpp | 3 ++- src/processing/processing_subtask_queue_channel_pubsub.hpp | 4 ++-- src/processing/processing_subtask_queue_manager.hpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/processing/processing_subtask_queue_accessor.hpp b/src/processing/processing_subtask_queue_accessor.hpp index fc21d4df..a4ec2172 100644 --- a/src/processing/processing_subtask_queue_accessor.hpp +++ b/src/processing/processing_subtask_queue_accessor.hpp @@ -17,7 +17,8 @@ namespace sgns::processing class SubTaskQueueAccessor { public: - typedef std::function)> SubTaskGrabbedCallback; + using SubTaskGrabbedCallback = std::function )>; + virtual ~SubTaskQueueAccessor() = default; /** Starts a waiting for subtasks queue diff --git a/src/processing/processing_subtask_queue_channel_pubsub.hpp b/src/processing/processing_subtask_queue_channel_pubsub.hpp index 4879c013..244ecdbb 100644 --- a/src/processing/processing_subtask_queue_channel_pubsub.hpp +++ b/src/processing/processing_subtask_queue_channel_pubsub.hpp @@ -19,8 +19,8 @@ class ProcessingSubTaskQueueChannelPubSub : public ProcessingSubTaskQueueChannel public std::enable_shared_from_this { public: - typedef std::function QueueRequestSink; - typedef std::function QueueUpdateSink; + using QueueRequestSink = std::function; + using QueueUpdateSink = std::function; /** Constructs subtask queue channel object * @param gossipPubSub - ipfs pubsub diff --git a/src/processing/processing_subtask_queue_manager.hpp b/src/processing/processing_subtask_queue_manager.hpp index bd23cf1c..d22da8c0 100644 --- a/src/processing/processing_subtask_queue_manager.hpp +++ b/src/processing/processing_subtask_queue_manager.hpp @@ -22,7 +22,7 @@ namespace sgns::processing class ProcessingSubTaskQueueManager { public: - typedef std::function)> SubTaskGrabbedCallback; + using SubTaskGrabbedCallback = std::function )>; /** Construct an empty queue * @param queueChannel - task processing channel From 27bde2b87ed2051123b3673b7e936875c24deac3 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Wed, 31 Jul 2024 15:48:09 -0300 Subject: [PATCH 24/30] style: Fixed indentation and wrapping --- .clang-format | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index 6fbba62b..81b78bf5 100644 --- a/.clang-format +++ b/.clang-format @@ -1,6 +1,8 @@ --- BasedOnStyle: Microsoft AccessModifierOffset: -4 +AllowAllArgumentsOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false AlwaysBreakTemplateDeclarations: true AlignConsecutiveAssignments: Enabled: true @@ -12,6 +14,7 @@ AlignConsecutiveDeclarations: AlignConsecutiveShortCaseStatements: Enabled: true BraceWrapping: + AfterCaseLabel: true BeforeLambdaBody: true BinPackArguments: false BinPackParameters: false @@ -19,10 +22,11 @@ BreakConstructorInitializers: AfterColon BreakStringLiterals: false ColumnLimit: 120 FixNamespaceComments: false -IndentCaseBlocks: true +IndentCaseBlocks: false IndentCaseLabels: true InsertBraces: true InsertNewlineAtEOF: true +InsertTrailingCommas: Wrapped KeepEmptyLinesAtTheStartOfBlocks: false NamespaceIndentation: All PackConstructorInitializers: NextLine From bb1d1f2fbf6cf782503bf85ff0c15e893b91f4a9 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Thu, 1 Aug 2024 09:53:53 -0300 Subject: [PATCH 25/30] Refactored `keypair_file_storage` --- src/crdt/globaldb/keypair_file_storage.cpp | 260 +++++++++------------ 1 file changed, 112 insertions(+), 148 deletions(-) diff --git a/src/crdt/globaldb/keypair_file_storage.cpp b/src/crdt/globaldb/keypair_file_storage.cpp index 82786b24..2d55a788 100644 --- a/src/crdt/globaldb/keypair_file_storage.cpp +++ b/src/crdt/globaldb/keypair_file_storage.cpp @@ -1,10 +1,12 @@ #include "crdt/globaldb/keypair_file_storage.hpp" +#include + #include #include +#include #include #include -#include #include #include #include @@ -12,173 +14,135 @@ #include #include #include -#include + +#include namespace sgns::crdt { -namespace -{ -//using RocksDB = sgns::storage::rocksdb; -//using Buffer = sgns::base::Buffer; -using CryptoProvider = libp2p::crypto::CryptoProviderImpl; -//using IdentityManager = libp2p::peer::IdentityManagerImpl; -using KeyPair = libp2p::crypto::KeyPair; -using PrivateKey = libp2p::crypto::PrivateKey; -using PublicKey = libp2p::crypto::PublicKey; -using KeyMarshaller = libp2p::crypto::marshaller::KeyMarshallerImpl; -using KeyValidator = libp2p::crypto::validator::KeyValidatorImpl; -using PeerId = libp2p::peer::PeerId; -using PeerAddress = libp2p::peer::PeerAddress; -//using CrdtOptions = sgns::crdt::CrdtOptions; -//using CrdtDatastore = sgns::crdt::CrdtDatastore; -//using HierarchicalKey = sgns::crdt::HierarchicalKey; -//using PubSubBroadcaster = sgns::crdt::PubSubBroadcaster; -//using GraphsyncDAGSyncer = sgns::crdt::GraphsyncDAGSyncer; -//using RocksdbDatastore = sgns::ipfs_lite::ipfs::RocksdbDatastore; -//using IpfsRocksDb = sgns::ipfs_lite::rocksdb; -//using GossipPubSub = sgns::ipfs_pubsub::GossipPubSub; -//using GraphsyncImpl = sgns::ipfs_lite::ipfs::graphsync::GraphsyncImpl; -//using GossipPubSubTopic = sgns::ipfs_pubsub::GossipPubSubTopic; - -/** Generate key pair or load it from file if available -*/ -outcome::result GenerateKeyPair( - const boost::filesystem::path& pathToKey, - std::shared_ptr& keyMarshaller, - const sgns::base::Logger& logger) -{ - KeyPair keyPair; - auto cryptoProvider = std::make_shared( - std::make_shared(), - std::make_shared(), - std::make_shared(), - std::make_shared(), - std::make_shared(), - std::make_shared()); - - auto keyValidator = std::make_shared(cryptoProvider); - keyMarshaller = std::make_shared(keyValidator); - - if (!boost::filesystem::exists(pathToKey)) + using CryptoProvider = libp2p::crypto::CryptoProviderImpl; + using libp2p::crypto::KeyPair; + using KeyMarshaller = libp2p::crypto::marshaller::KeyMarshallerImpl; + using KeyValidator = libp2p::crypto::validator::KeyValidatorImpl; + using libp2p::peer::PeerId; + + KeyPairFileStorage::KeyPairFileStorage( boost::filesystem::path keyPath ) : m_keyPath( std::move( keyPath ) ) { - auto keyPairResult = cryptoProvider->generateKeys(libp2p::crypto::Key::Type::Ed25519, - libp2p::crypto::common::RSAKeyType::RSA1024); + // Extract the directory path from the keyPath + boost::filesystem::path directory = m_keyPath.parent_path(); - if (keyPairResult.has_failure()) + // Create the directory if it doesn't exist + if ( !boost::filesystem::exists( directory ) ) { - logger->error("Unable to generate key pair"); - return outcome::failure(boost::system::error_code{}); + boost::filesystem::create_directories( directory ); } + } - keyPair = keyPairResult.value(); + outcome::result KeyPairFileStorage::GetKeyPair() const + { + KeyPair keyPair; - auto marshalPrivateKeyResult = keyMarshaller->marshal(keyPair.privateKey); - if (marshalPrivateKeyResult.has_failure()) - { - logger->error("Unable to marshal private key"); - return outcome::failure(boost::system::error_code{}); - } - auto marshalPublicKeyResult = keyMarshaller->marshal(keyPair.publicKey); - if (marshalPublicKeyResult.has_failure()) + m_logger->info( "Path to keypairs " + m_keyPath.string() ); + + auto cryptoProvider = + std::make_shared( std::make_shared(), + std::make_shared(), + std::make_shared(), + std::make_shared(), + std::make_shared(), + std::make_shared() ); + + auto keyValidator = std::make_shared( cryptoProvider ); + KeyMarshaller keyMarshaller( keyValidator ); + + if ( !boost::filesystem::exists( m_keyPath ) ) { - logger->error("Unable to marshal public key"); - return outcome::failure(boost::system::error_code{}); + auto keyPairResult = cryptoProvider->generateKeys( libp2p::crypto::Key::Type::Ed25519, + libp2p::crypto::common::RSAKeyType::RSA1024 ); + + if ( keyPairResult.has_failure() ) + { + m_logger->error( "Unable to generate key pair" ); + return outcome::failure( boost::system::error_code{} ); + } + + keyPair = keyPairResult.value(); + + auto marshalPrivateKeyResult = keyMarshaller.marshal( keyPair.privateKey ); + if ( marshalPrivateKeyResult.has_failure() ) + { + m_logger->error( "Unable to marshal private key" ); + return outcome::failure( boost::system::error_code{} ); + } + + auto marshalPublicKeyResult = keyMarshaller.marshal( keyPair.publicKey ); + if ( marshalPublicKeyResult.has_failure() ) + { + m_logger->error( "Unable to marshal public key" ); + return outcome::failure( boost::system::error_code{} ); + } + + std::ofstream fileKey( m_keyPath.string(), std::ios::out | std::ios::binary ); + std::copy( marshalPrivateKeyResult.value().key.cbegin(), + marshalPrivateKeyResult.value().key.cend(), + std::ostreambuf_iterator( fileKey ) ); + std::copy( marshalPublicKeyResult.value().key.cbegin(), + marshalPublicKeyResult.value().key.cend(), + std::ostreambuf_iterator( fileKey ) ); + fileKey.close(); } - - std::ofstream fileKey(pathToKey.string(), std::ios::out | std::ios::binary); - std::copy(marshalPrivateKeyResult.value().key.cbegin(), marshalPrivateKeyResult.value().key.cend(), - std::ostreambuf_iterator(fileKey)); - std::copy(marshalPublicKeyResult.value().key.cbegin(), marshalPublicKeyResult.value().key.cend(), - std::ostreambuf_iterator(fileKey)); - fileKey.close(); - } - else - { - std::ifstream fileKey(pathToKey.string(), std::ios::in | std::ios::binary); - if (!fileKey.is_open()) + else { - logger->error("Unable to open key file: " + pathToKey.string()); - return outcome::failure(boost::system::error_code{}); + std::ifstream fileKey( m_keyPath.string(), std::ios::in | std::ios::binary ); + if ( !fileKey.is_open() ) + { + m_logger->error( "Unable to open key file: " + m_keyPath.string() ); + return outcome::failure( boost::system::error_code{} ); + } + + std::istreambuf_iterator it{ fileKey }; + std::istreambuf_iterator end; + std::string ss{ it, end }; + + std::vector privateKey( ss.begin(), ss.begin() + ss.size() / 2 ); + libp2p::crypto::ProtobufKey privateProtobufKey{ std::move( privateKey ) }; + + std::vector publicKey( ss.begin() + ss.size() / 2, ss.end() ); + libp2p::crypto::ProtobufKey publicProtobufKey{ std::move( publicKey ) }; + + auto unmarshalPrivateKeyResult = keyMarshaller.unmarshalPrivateKey( privateProtobufKey ); + if ( unmarshalPrivateKeyResult.has_failure() ) + { + m_logger->error( "Unable to unmarshal private key" ); + return outcome::failure( boost::system::error_code{} ); + } + keyPair.privateKey = unmarshalPrivateKeyResult.value(); + + auto unmarshalPublicKeyResult = keyMarshaller.unmarshalPublicKey( publicProtobufKey ); + if ( unmarshalPublicKeyResult.has_failure() ) + { + m_logger->error( "Unable to unmarshal public key" ); + return outcome::failure( boost::system::error_code{} ); + } + keyPair.publicKey = unmarshalPublicKeyResult.value(); } - std::istreambuf_iterator it{ fileKey }, end; - std::string ss{ it, end }; - - std::vector key = std::vector(ss.begin(), ss.begin() + ss.size() / 2); - libp2p::crypto::ProtobufKey privateProtobufKey{ key }; - - key.clear(); - key = std::vector(ss.begin() + ss.size() / 2, ss.end()); - libp2p::crypto::ProtobufKey publicProtobufKey{ key }; - auto unmarshalPrivateKeyResult = keyMarshaller->unmarshalPrivateKey(privateProtobufKey); - if (unmarshalPrivateKeyResult.has_failure()) + auto protobufKeyResult = keyMarshaller.marshal( keyPair.publicKey ); + if ( protobufKeyResult.has_failure() ) { - logger->error("Unable to unmarshal private key"); - return outcome::failure(boost::system::error_code{}); + m_logger->error( "Unable to marshal public key" ); + return outcome::failure( boost::system::error_code{} ); } - keyPair.privateKey = unmarshalPrivateKeyResult.value(); - auto unmarshalPublicKeyResult = keyMarshaller->unmarshalPublicKey(publicProtobufKey); - if (unmarshalPublicKeyResult.has_failure()) + auto peerIDResult = PeerId::fromPublicKey( protobufKeyResult.value() ); + if ( peerIDResult.has_failure() ) { - logger->error("Unable to unmarshal public key"); - return outcome::failure(boost::system::error_code{}); + m_logger->error( "Unable to get peer ID from public key" ); + return outcome::failure( boost::system::error_code{} ); } - keyPair.publicKey = unmarshalPublicKeyResult.value(); - } - - return keyPair; -} -} -KeyPairFileStorage::KeyPairFileStorage( boost::filesystem::path keyPath ) : m_keyPath( std::move( keyPath ) ) -{ - // Extract the directory path from the keyPath - boost::filesystem::path directory = m_keyPath.parent_path(); + auto peerID = peerIDResult.value(); + m_logger->info( "Peer ID from public key: " + peerID.toBase58() ); - // Create the directory if it doesn't exist - if (!boost::filesystem::exists(directory)) { - boost::filesystem::create_directories(directory); + return outcome::success( keyPair ); } -} - -outcome::result KeyPairFileStorage::GetKeyPair() const -{ - m_logger->info("Path to keypairs " + m_keyPath.string()); - std::shared_ptr keyMarshaller; - auto keyPairResult = GenerateKeyPair(m_keyPath, keyMarshaller, m_logger); - if (keyPairResult.has_failure()) - { - m_logger->error("Unable to get key pair"); - return outcome::failure(boost::system::error_code{}); - } - - PrivateKey privateKey = keyPairResult.value().privateKey; - PublicKey publicKey = keyPairResult.value().publicKey; - - if (keyMarshaller == nullptr) -{ - m_logger->error("Unable to marshal keys, keyMarshaller is NULL"); - return outcome::failure(boost::system::error_code{}); - } - - auto protobufKeyResult = keyMarshaller->marshal(publicKey); - if (protobufKeyResult.has_failure()) - { - m_logger->error("Unable to marshal public key"); - return outcome::failure(boost::system::error_code{}); -} - - auto peerIDResult = PeerId::fromPublicKey(protobufKeyResult.value()); - if (peerIDResult.has_failure()) -{ - m_logger->error("Unable to get peer ID from public key"); - return outcome::failure(boost::system::error_code{}); - } - - auto peerID = peerIDResult.value(); - m_logger->info("Peer ID from public key: " + peerID.toBase58()); - - return outcome::success(keyPairResult.value()); } -} \ No newline at end of file From c2a223aa9838f8797320c1811cde8f56b311d00f Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 12 Aug 2024 10:21:12 -0300 Subject: [PATCH 26/30] chore: Build testing is optional --- build/CommonBuildParameters.cmake | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/build/CommonBuildParameters.cmake b/build/CommonBuildParameters.cmake index 640fc0b9..8650b720 100644 --- a/build/CommonBuildParameters.cmake +++ b/build/CommonBuildParameters.cmake @@ -8,11 +8,16 @@ set(BOOST_VERSION "${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_V set(BOOST_VERSION_3U "${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_${BOOST_PATCH_VERSION}") set(BOOST_VERSION_2U "${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}") -# GTest -set(GTest_DIR "${_THIRDPARTY_BUILD_DIR}/GTest/lib/cmake/GTest") -set(GTest_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/GTest/include") -find_package(GTest CONFIG REQUIRED) -include_directories(${GTest_INCLUDE_DIR}) +# -------------------------------------------------------- +# Set config of GTest +set(BUILD_TESTING "ON" CACHE BOOL "Build tests") + +if(BUILD_TESTING) + set(GTest_DIR "${_THIRDPARTY_BUILD_DIR}/GTest/lib/cmake/GTest") + set(GTest_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/GTest/include") + find_package(GTest CONFIG REQUIRED) + include_directories(${GTest_INCLUDE_DIR}) +endif() # absl if(NOT DEFINED absl_DIR) @@ -271,12 +276,13 @@ set(AsyncIOManager_DIR "${_THIRDPARTY_BUILD_DIR}/AsyncIOManager/lib/cmake/AsyncI find_package(AsyncIOManager CONFIG REQUIRED) include_directories(${AsyncIOManager_INCLUDE_DIR}) -# crypto3 -# set(crypto3_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/crypto3/include") -# set(crypto3_LIBRARY_DIR "${_THIRDPARTY_BUILD_DIR}/crypto3/lib") -# set(crypto3_DIR "${_THIRDPARTY_BUILD_DIR}/crypto3/lib/cmake/crypto3") -# find_package(crypto3 CONFIG REQUIRED) -# include_directories(${crypto3_INCLUDE_DIR}) +# -------------------------------------------------------- +# Set config of crypto3 +#set(crypto3_INCLUDE_DIR "${_THIRDPARTY_BUILD_DIR}/crypto3/include") +#set(crypto3_LIBRARY_DIR "${_THIRDPARTY_BUILD_DIR}/crypto3/lib") +#set(crypto3_DIR "${_THIRDPARTY_BUILD_DIR}/crypto3/lib/cmake/crypto3") +#find_package(crypto3 CONFIG REQUIRED) +#include_directories(${crypto3_INCLUDE_DIR}) include_directories( "${THIRDPARTY_DIR}/zkLLVM/libs/crypto3/libs/algebra/include" "${THIRDPARTY_DIR}/zkLLVM/libs/crypto3/libs/block/include" @@ -343,7 +349,7 @@ add_subdirectory(${PROJECT_ROOT}/src ${CMAKE_BINARY_DIR}/src) add_subdirectory(${PROJECT_ROOT}/GeniusKDF ${CMAKE_BINARY_DIR}/GeniusKDF) # add_subdirectory(${PROJECT_ROOT}/app ${CMAKE_BINARY_DIR}/app) -if(TESTING) +if(BUILD_TESTING) enable_testing() add_subdirectory(${PROJECT_ROOT}/test ${CMAKE_BINARY_DIR}/test) endif() From 663c27430338867ec1fba2af17928e6a41c0d41e Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 12 Aug 2024 16:08:48 -0300 Subject: [PATCH 27/30] Removed unused API files --- src/api/CMakeLists.txt | 2 - src/api/jrpc/CMakeLists.txt | 8 - src/api/jrpc/jrpc_method.hpp | 56 ----- src/api/jrpc/jrpc_processor.hpp | 23 -- src/api/jrpc/jrpc_server.hpp | 54 ----- src/api/jrpc/jrpc_server_impl.cpp | 43 ---- src/api/jrpc/jrpc_server_impl.hpp | 54 ----- src/api/jrpc/value_converter.hpp | 102 --------- src/api/service/CMakeLists.txt | 15 -- src/api/service/api_service.cpp | 199 ------------------ src/api/service/api_service.hpp | 100 --------- src/api/service/author/CMakeLists.txt | 15 -- .../service/author/author_jrpc_processor.cpp | 29 --- .../service/author/author_jrpc_processor.hpp | 33 --- .../service/author/impl/author_api_impl.cpp | 84 -------- .../service/author/impl/author_api_impl.hpp | 67 ------ .../service/author/requests/CMakeLists.txt | 8 - .../author/requests/pending_extrinsics.cpp | 15 -- .../author/requests/pending_extrinsics.hpp | 27 --- .../author/requests/submit_extrinsic.cpp | 34 --- .../author/requests/submit_extrinsic.hpp | 28 --- src/api/service/chain/CMakeLists.txt | 13 -- src/api/service/chain/chain_api.hpp | 52 ----- .../service/chain/chain_jrpc_processor.cpp | 25 --- .../service/chain/chain_jrpc_processor.hpp | 30 --- src/api/service/chain/impl/chain_api_impl.cpp | 57 ----- src/api/service/chain/impl/chain_api_impl.hpp | 41 ---- src/api/service/chain/requests/CMakeLists.txt | 7 - .../service/chain/requests/get_block_hash.cpp | 88 -------- .../service/chain/requests/get_block_hash.hpp | 35 --- src/api/service/state/CMakeLists.txt | 14 -- src/api/service/state/impl/state_api_impl.cpp | 66 ------ src/api/service/state/impl/state_api_impl.hpp | 51 ----- src/api/service/state/requests/CMakeLists.txt | 12 -- .../state/requests/get_runtime_version.cpp | 41 ---- .../state/requests/get_runtime_version.hpp | 35 --- .../service/state/requests/get_storage.cpp | 41 ---- .../service/state/requests/get_storage.hpp | 39 ---- .../state/requests/subscribe_storage.cpp | 36 ---- .../state/requests/subscribe_storage.hpp | 37 ---- .../state/requests/unsubscribe_storage.cpp | 31 --- .../state/requests/unsubscribe_storage.hpp | 38 ---- src/api/service/state/state_api.hpp | 37 ---- .../service/state/state_jrpc_processor.cpp | 36 ---- .../service/state/state_jrpc_processor.hpp | 31 --- src/api/service/system/CMakeLists.txt | 9 - .../service/system/impl/system_api_impl.cpp | 23 -- .../service/system/impl/system_api_impl.hpp | 29 --- .../service/system/requests/CMakeLists.txt | 10 - src/api/service/system/requests/chain.cpp | 21 -- src/api/service/system/requests/chain.hpp | 38 ---- src/api/service/system/requests/name.cpp | 24 --- src/api/service/system/requests/name.hpp | 37 ---- .../service/system/requests/properties.cpp | 17 -- .../service/system/requests/properties.hpp | 39 ---- src/api/service/system/requests/version.cpp | 22 -- src/api/service/system/requests/version.hpp | 37 ---- src/api/service/system/system_api.hpp | 20 -- .../service/system/system_jrpc_processor.cpp | 33 --- .../service/system/system_jrpc_processor.hpp | 31 --- 60 files changed, 2279 deletions(-) delete mode 100644 src/api/jrpc/CMakeLists.txt delete mode 100644 src/api/jrpc/jrpc_method.hpp delete mode 100644 src/api/jrpc/jrpc_processor.hpp delete mode 100644 src/api/jrpc/jrpc_server.hpp delete mode 100644 src/api/jrpc/jrpc_server_impl.cpp delete mode 100644 src/api/jrpc/jrpc_server_impl.hpp delete mode 100644 src/api/jrpc/value_converter.hpp delete mode 100644 src/api/service/CMakeLists.txt delete mode 100644 src/api/service/api_service.cpp delete mode 100644 src/api/service/api_service.hpp delete mode 100644 src/api/service/author/CMakeLists.txt delete mode 100644 src/api/service/author/author_jrpc_processor.cpp delete mode 100644 src/api/service/author/author_jrpc_processor.hpp delete mode 100644 src/api/service/author/impl/author_api_impl.cpp delete mode 100644 src/api/service/author/impl/author_api_impl.hpp delete mode 100644 src/api/service/author/requests/CMakeLists.txt delete mode 100644 src/api/service/author/requests/pending_extrinsics.cpp delete mode 100644 src/api/service/author/requests/pending_extrinsics.hpp delete mode 100644 src/api/service/author/requests/submit_extrinsic.cpp delete mode 100644 src/api/service/author/requests/submit_extrinsic.hpp delete mode 100644 src/api/service/chain/CMakeLists.txt delete mode 100644 src/api/service/chain/chain_api.hpp delete mode 100644 src/api/service/chain/chain_jrpc_processor.cpp delete mode 100644 src/api/service/chain/chain_jrpc_processor.hpp delete mode 100644 src/api/service/chain/impl/chain_api_impl.cpp delete mode 100644 src/api/service/chain/impl/chain_api_impl.hpp delete mode 100644 src/api/service/chain/requests/CMakeLists.txt delete mode 100644 src/api/service/chain/requests/get_block_hash.cpp delete mode 100644 src/api/service/chain/requests/get_block_hash.hpp delete mode 100644 src/api/service/state/CMakeLists.txt delete mode 100644 src/api/service/state/impl/state_api_impl.cpp delete mode 100644 src/api/service/state/impl/state_api_impl.hpp delete mode 100644 src/api/service/state/requests/CMakeLists.txt delete mode 100644 src/api/service/state/requests/get_runtime_version.cpp delete mode 100644 src/api/service/state/requests/get_runtime_version.hpp delete mode 100644 src/api/service/state/requests/get_storage.cpp delete mode 100644 src/api/service/state/requests/get_storage.hpp delete mode 100644 src/api/service/state/requests/subscribe_storage.cpp delete mode 100644 src/api/service/state/requests/subscribe_storage.hpp delete mode 100644 src/api/service/state/requests/unsubscribe_storage.cpp delete mode 100644 src/api/service/state/requests/unsubscribe_storage.hpp delete mode 100644 src/api/service/state/state_api.hpp delete mode 100644 src/api/service/state/state_jrpc_processor.cpp delete mode 100644 src/api/service/state/state_jrpc_processor.hpp delete mode 100644 src/api/service/system/CMakeLists.txt delete mode 100644 src/api/service/system/impl/system_api_impl.cpp delete mode 100644 src/api/service/system/impl/system_api_impl.hpp delete mode 100644 src/api/service/system/requests/CMakeLists.txt delete mode 100644 src/api/service/system/requests/chain.cpp delete mode 100644 src/api/service/system/requests/chain.hpp delete mode 100644 src/api/service/system/requests/name.cpp delete mode 100644 src/api/service/system/requests/name.hpp delete mode 100644 src/api/service/system/requests/properties.cpp delete mode 100644 src/api/service/system/requests/properties.hpp delete mode 100644 src/api/service/system/requests/version.cpp delete mode 100644 src/api/service/system/requests/version.hpp delete mode 100644 src/api/service/system/system_api.hpp delete mode 100644 src/api/service/system/system_jrpc_processor.cpp delete mode 100644 src/api/service/system/system_jrpc_processor.hpp diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index 3760d244..bd3c7be2 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -1,3 +1 @@ -add_subdirectory(service) -add_subdirectory(jrpc) add_subdirectory(transport) \ No newline at end of file diff --git a/src/api/jrpc/CMakeLists.txt b/src/api/jrpc/CMakeLists.txt deleted file mode 100644 index 28fcd354..00000000 --- a/src/api/jrpc/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ - -add_library(api_jrpc_server - jrpc_server_impl.cpp - value_converter.hpp - ) -target_link_libraries(api_jrpc_server - # RapidJSON::rapidjson - ) diff --git a/src/api/jrpc/jrpc_method.hpp b/src/api/jrpc/jrpc_method.hpp deleted file mode 100644 index eac41288..00000000 --- a/src/api/jrpc/jrpc_method.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_JRPC_JRPC_METHOD_HPP -#define SUPERGENIUS_SRC_API_JRPC_JRPC_METHOD_HPP - -#include -#include - -#include -#include - -#include "api/jrpc/value_converter.hpp" - -namespace sgns::api { - - template - class Method { - private: - std::weak_ptr api_; - - public: - explicit Method( std::shared_ptr api ) : api_( api ) - { - } - - jsonrpc::Value operator()(const jsonrpc::Request::Parameters ¶ms) { - auto api = api_.lock(); - if (! api) { - throw jsonrpc::Fault("API not available"); - } - - RequestType request(api); - - // Init request - if (auto &&init_result = request.init(params); ! init_result) { - throw jsonrpc::Fault(init_result.error().message()); - } - - // Execute request - auto &&result = request.execute(); - - // Handle of failure - if (! result) { - throw jsonrpc::Fault(result.error().message()); - } - - if constexpr (std::is_same_v) { - return {}; - } else { - return makeValue(result.value()); - } - } - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_JRPC_JRPC_METHOD_HPP diff --git a/src/api/jrpc/jrpc_processor.hpp b/src/api/jrpc/jrpc_processor.hpp deleted file mode 100644 index 735499a8..00000000 --- a/src/api/jrpc/jrpc_processor.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_JRPC_JRPC_PROCESSOR_HPP -#define SUPERGENIUS_SRC_API_JRPC_JRPC_PROCESSOR_HPP - -#include -#include "singleton/IComponent.hpp" - -namespace sgns::api { - /** - * @class JRpcProcessor is base class for JSON RPC processors - */ -class JRpcProcessor: private boost::noncopyable, public IComponent { - public: - ~JRpcProcessor() override = default; - - /** - * @brief registers callbacks for jrpc request - */ - virtual void registerHandlers() = 0; - }; -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_JRPC_JRPC_PROCESSOR_HPP diff --git a/src/api/jrpc/jrpc_server.hpp b/src/api/jrpc/jrpc_server.hpp deleted file mode 100644 index 92f29541..00000000 --- a/src/api/jrpc/jrpc_server.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef SUPERGENIUS_API_JRPC_SERVER_HPP -#define SUPERGENIUS_API_JRPC_SERVER_HPP - -#include -#include -#include - -#include -#include "singleton/IComponent.hpp" - -namespace sgns::api { - - /** - * Instance of json rpc server, allows to register callbacks for rpc methods - * and then invoke them - */ - class JRpcServer : public IComponent { - public: - using Method = jsonrpc::MethodWrapper::Method; - - ~JRpcServer() override = default; - - /** - * @brief registers rpc request handler lambda - * @param name rpc method name - * @param method handler functor - */ - virtual void registerHandler(const std::string &name, Method method) = 0; - - /** - * Response callback type - */ - using ResponseHandler = std::function; - - /** - * @brief creates valid jsonrpc response - * @param from is a data source - * @param cb callback - */ - virtual void processJsonData(const jsonrpc::Value &from, - const ResponseHandler &cb) = 0; - - /** - * @brief handles decoded network message - * @param request json request string - * @param cb callback - */ - virtual void processData(std::string_view request, - const ResponseHandler &cb) = 0; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_API_JRPC_SERVER_HPP diff --git a/src/api/jrpc/jrpc_server_impl.cpp b/src/api/jrpc/jrpc_server_impl.cpp deleted file mode 100644 index 6795000f..00000000 --- a/src/api/jrpc/jrpc_server_impl.cpp +++ /dev/null @@ -1,43 +0,0 @@ - -#include "api/jrpc/jrpc_server_impl.hpp" - -namespace sgns::api { - - JRpcServerImpl::JRpcServerImpl() { - // register json format handler - jsonrpc_handler_.RegisterFormatHandler(format_handler_); - } - - void JRpcServerImpl::registerHandler(const std::string &name, Method method) { - auto &dispatcher = jsonrpc_handler_.GetDispatcher(); - dispatcher.AddMethod(name, std::move(method)); - } - - void JRpcServerImpl::processJsonData(const jsonrpc::Value &from, - const ResponseHandler &cb) { - using Response = jsonrpc::Response; - using Value = jsonrpc::Value; - using Fault = jsonrpc::Fault; - - auto writer = format_handler_.CreateWriter(); - try { - Response response(Value(from), Value(0)); - response.Write(*writer); - } catch (const Fault &ex) { - Response(ex.GetCode(), ex.GetString(), Value()).Write(*writer); - } - auto &&formatted_response = writer->GetData(); - cb(std::string(formatted_response->GetData(), - formatted_response->GetSize())); - } - - void JRpcServerImpl::processData(std::string_view request, - const ResponseHandler &cb) { - auto &&formatted_response = - jsonrpc_handler_.HandleRequest(std::string(request)); - std::string response(formatted_response->GetData(), - formatted_response->GetSize()); - cb(response); - } - -} // namespace sgns::api diff --git a/src/api/jrpc/jrpc_server_impl.hpp b/src/api/jrpc/jrpc_server_impl.hpp deleted file mode 100644 index 79403bc3..00000000 --- a/src/api/jrpc/jrpc_server_impl.hpp +++ /dev/null @@ -1,54 +0,0 @@ - -#ifndef SUPERGENIUS_API_JRPC_SERVER_IMPL_HPP -#define SUPERGENIUS_API_JRPC_SERVER_IMPL_HPP - -#include - -#include "api/jrpc/jrpc_server.hpp" - -namespace sgns::api { - - class JRpcServerImpl: public JRpcServer { - public: - JRpcServerImpl(); - - ~JRpcServerImpl() override = default; - - /** - * @brief registers rpc request handler lambda - * @param name rpc method name - * @param method handler functor - */ - void registerHandler(const std::string &name, Method method) override; - - /** - * @brief handles decoded network message - * @param request json request string - * @param cb callback - */ - void processData(std::string_view request, - const ResponseHandler &cb) override; - - /** - * @brief creates a valid jsonrpc response and passes it to \arg cb - * @param from is a data source - * @param cb callback - */ - void processJsonData(const jsonrpc::Value &from, - const ResponseHandler &cb) override; - - std::string GetName() override - { - return "JRpcServerImpl"; - } - - private: - /// json rpc server instance - jsonrpc::Server jsonrpc_handler_{}; - /// format handler instance - jsonrpc::JsonFormatHandler format_handler_{}; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_API_JRPC_SERVER_IMPL_HPP diff --git a/src/api/jrpc/value_converter.hpp b/src/api/jrpc/value_converter.hpp deleted file mode 100644 index 0a6c2432..00000000 --- a/src/api/jrpc/value_converter.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_EXTRINSIC_RESPONSE_VALUE_CONVERTER_HPP -#define SUPERGENIUS_SRC_API_EXTRINSIC_RESPONSE_VALUE_CONVERTER_HPP - -#include - -#include -#include "base/blob.hpp" -#include "base/visitor.hpp" -#include "primitives/extrinsic.hpp" -#include "primitives/version.hpp" - -namespace sgns::api { - inline jsonrpc::Value makeValue(base::Hash256 const &); - inline jsonrpc::Value makeValue(base::Buffer const &); - inline jsonrpc::Value makeValue(primitives::Extrinsic const &); - inline jsonrpc::Value makeValue(primitives::Version const &); - inline jsonrpc::Value makeValue(uint32_t const &); - inline jsonrpc::Value makeValue(primitives::Api const &); - - template - inline jsonrpc::Value makeValue(const base::Blob &); - template - inline jsonrpc::Value makeValue(T const &); - template - inline jsonrpc::Value makeValue(const std::vector &); - template - inline jsonrpc::Value makeValue(const boost::variant &); - - template - inline jsonrpc::Value makeValue(T const &val) { - return jsonrpc::Value(val); - } - - template - inline jsonrpc::Value makeValue(base::Blob const &val) { - return std::vector{val.begin(), val.end()}; - } - - inline jsonrpc::Value makeValue(uint32_t const &val) { - return makeValue(static_cast(val)); - } - - inline jsonrpc::Value makeValue(const base::Hash256 &v) { - return std::vector{v.begin(), v.end()}; - } - - inline jsonrpc::Value makeValue(const base::Buffer &v) { - return v.toVector(); - } - - inline jsonrpc::Value makeValue(const primitives::Extrinsic &v) { - return v.data.toHex(); - } - - template - inline jsonrpc::Value makeValue(const std::vector &v) { - jsonrpc::Value::Array value{}; - value.reserve(v.size()); - for (auto &item : v) { - value.push_back(std::move(makeValue(item))); - } - return value; - } - - inline jsonrpc::Value makeValue(const primitives::Api &val) { - using VectorType = jsonrpc::Value::Array; - VectorType data; - - data.reserve(2); - data.emplace_back(makeValue(val.first)); - data.emplace_back(makeValue(val.second)); - - return std::move(data); - } - - inline jsonrpc::Value makeValue(const primitives::Version &val) { - using jStruct = jsonrpc::Value::Struct; - jStruct data; - data["authoringVersion"] = makeValue(val.authoring_version); - - data["specName"] = makeValue(val.spec_name); - data["implName"] = makeValue(val.impl_name); - - data["specVersion"] = makeValue(val.spec_version); - data["implVersion"] = makeValue(val.impl_version); - - data["apis"] = makeValue(val.apis); - return std::move(data); - } - - template - inline jsonrpc::Value makeValue(const boost::variant &v) { - return sgns::visit_in_place( - v, - [](const T1 &value) { return makeValue(value); }, - [](const T2 &value) { return makeValue(value); }); - } - -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_EXTRINSIC_RESPONSE_VALUE_CONVERTER_HPP diff --git a/src/api/service/CMakeLists.txt b/src/api/service/CMakeLists.txt deleted file mode 100644 index 6725beb5..00000000 --- a/src/api/service/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -add_library(api_service - api_service.hpp - api_service.cpp - ) -target_link_libraries(api_service - Boost::boost - logger - app_state_manager - rpc_thread_pool - ) - -add_subdirectory(author) -add_subdirectory(chain) -add_subdirectory(state) -add_subdirectory(system) \ No newline at end of file diff --git a/src/api/service/api_service.cpp b/src/api/service/api_service.cpp deleted file mode 100644 index c26fb811..00000000 --- a/src/api/service/api_service.cpp +++ /dev/null @@ -1,199 +0,0 @@ - -#include "api/service/api_service.hpp" - -#include "api/jrpc/jrpc_processor.hpp" -#include "api/jrpc/value_converter.hpp" - -namespace { - thread_local class { - boost::optional bound_session_id_ = - boost::none; - - public: - void storeSessionId(sgns::api::Session::SessionId id) { - bound_session_id_ = id; - } - void releaseSessionId() { - bound_session_id_ = boost::none; - } - boost::optional fetchSessionId() { - return bound_session_id_; - } - } threaded_info; -} // namespace - -namespace sgns::api { - - ApiService::ApiService( - const std::shared_ptr &app_state_manager, - std::shared_ptr thread_pool, - std::vector> listeners, - std::shared_ptr server, - const std::vector> &processors, - SubscriptionEnginePtr subscription_engine) - : thread_pool_(std::move(thread_pool)), - listeners_(std::move(listeners)), - server_(std::move(server)), - logger_{base::createLogger("Api service")}, - subscription_engine_(std::move(subscription_engine)) { - BOOST_ASSERT(thread_pool_); - for (/*[[maybe_unused]]*/ const auto &listener : listeners_) { - BOOST_ASSERT(listener != nullptr); - } - for (auto &processor : processors) { - BOOST_ASSERT(processor != nullptr); - processor->registerHandlers(); - } - - BOOST_ASSERT(app_state_manager); - app_state_manager->takeControl(*this); - } - - bool ApiService::prepare() { - for (const auto &listener : listeners_) { - auto on_new_session = [wp = weak_from_this()]( - const sptr &session) mutable { - auto self = wp.lock(); - if (!self) { - return; - } - - if (SessionType::kWs == session->type()) { - auto subscribed_session = - self->storeSessionWithId(session->id(), session); - subscribed_session->setCallback([wp](SessionPtr &session, - const auto &key, - const auto &data, - const auto &block) { - if (auto self = wp.lock()) { - jsonrpc::Value::Array out_data; - out_data.emplace_back(api::makeValue(key)); - out_data.emplace_back(api::makeValue(data)); - - /// TODO: PRE-475 make event notofication depending in - /// blocks, to butch them in a single message - - jsonrpc::Value::Struct result; - result["changes"] = std::move(out_data); - result["block"] = api::makeValue(block); - - jsonrpc::Value::Struct params; - params["result"] = std::move(result); - params["subscription"] = 0; - - self->server_->processJsonData(params, - [&](const std::string &response) { - session->respond(response); - }); - } - }); - } - - session->connectOnRequest( - [wp](std::string_view request, - std::shared_ptr session) mutable { - auto self = wp.lock(); - if (! self) return; - - auto thread_session_auto_release = [](void *) { - threaded_info.releaseSessionId(); - }; - - threaded_info.storeSessionId(session->id()); - std::unique_ptr - - // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) - thread_session_keeper(reinterpret_cast(0xff), - std::move(thread_session_auto_release)); - - // process new request - self->server_->processData( - std::string(request), - [session = std::move(session)]( - const std::string &response) mutable { - // process response - session->respond(response); - }); - }); - - session->connectOnCloseHandler( - [wp](Session::SessionId id, SessionType /*type*/) { - if (auto self = wp.lock()) self->removeSessionById(id); - }); - }; - - listener->setHandlerForNewSession(std::move(on_new_session)); - } - return true; - } - - bool ApiService::start() { - thread_pool_->start(); - logger_->debug("Service started"); - return true; - } - - void ApiService::stop() { - thread_pool_->stop(); - logger_->debug("Service stopped"); - } - - ApiService::SubscribedSessionPtr ApiService::findSessionById( - Session::SessionId id) { - std::lock_guard guard(subscribed_sessions_cs_); - if (auto it = subscribed_sessions_.find(id); - subscribed_sessions_.end() != it) - return it->second; - - return nullptr; - } - - ApiService::SubscribedSessionPtr ApiService::storeSessionWithId( - Session::SessionId id, const std::shared_ptr &session) { - std::lock_guard guard(subscribed_sessions_cs_); - auto &&[it, inserted] = subscribed_sessions_.emplace( - id, - std::make_shared(subscription_engine_, session)); - - BOOST_ASSERT(inserted); - return std::move(it->second); - } - - void ApiService::removeSessionById(Session::SessionId id) { - std::lock_guard guard(subscribed_sessions_cs_); - subscribed_sessions_.erase(id); - } - - outcome::result ApiService::subscribeSessionToKeys( - const std::vector &keys) { - if (auto session_id = threaded_info.fetchSessionId(); session_id) { - if (auto session = findSessionById(*session_id)) { - const auto id = session->generateSubscriptionSetId(); - for (auto &key : keys) { - /// TODO(iceseer): PRE-476 make move data to subscription - session->subscribe(id, key); - } - return static_cast(id); - } - throw jsonrpc::InternalErrorFault( - "Internal error. No session was stored for subscription."); - } - throw jsonrpc::InternalErrorFault( - "Internal error. No session was bound to subscription."); - } - - outcome::result ApiService::unsubscribeSessionFromIds( - const std::vector &subscription_ids) { - if (auto session_id = threaded_info.fetchSessionId(); session_id) { - if (auto session = findSessionById(*session_id)) { - for (auto id : subscription_ids) session->unsubscribe(id); - return outcome::success(); - } - throw jsonrpc::InternalErrorFault( - "Internal error. No session was stored for subscription."); - } - throw jsonrpc::InternalErrorFault( - "Internal error. No session was binded to subscription."); - } - -} // namespace sgns::api diff --git a/src/api/service/api_service.hpp b/src/api/service/api_service.hpp deleted file mode 100644 index 3fa8efa6..00000000 --- a/src/api/service/api_service.hpp +++ /dev/null @@ -1,100 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_SERVICE_HPP -#define SUPERGENIUS_SRC_API_SERVICE_HPP - -#include -#include -#include - -#include "api/jrpc/jrpc_server_impl.hpp" -#include "api/transport/listener.hpp" -#include "api/transport/rpc_thread_pool.hpp" -#include "application/app_state_manager.hpp" -#include "base/buffer.hpp" -#include "base/logger.hpp" -#include "primitives/common.hpp" -#include "subscription/subscriber.hpp" -#include "singleton/IComponent.hpp" - -namespace sgns::api { - - class JRpcProcessor; - - /** - * Service listening for incoming JSON RPC request - */ - class ApiService final : public std::enable_shared_from_this, public IComponent { - using SessionPtr = std::shared_ptr; - - using SubscribedSessionType = - subscription::Subscriber; - using SubscribedSessionPtr = std::shared_ptr; - - using SubscriptionEngineType = - subscription::SubscriptionEngine; - using SubscriptionEnginePtr = std::shared_ptr; - - public: - template - using sptr = std::shared_ptr; - - /** - * @brief constructor - * @param context - reference to the io context - * @param listener - a shared ptr to the endpoint listener instance - * @param processors - shared ptrs to JSON processor instances - */ - ApiService( - const std::shared_ptr &app_state_manager, - std::shared_ptr thread_pool, - std::vector> listeners, - std::shared_ptr server, - const std::vector> &processors, - SubscriptionEnginePtr subscription_engine); - - ~ApiService() override = default; - - /** @see AppStateManager::takeControl */ - bool prepare(); - - /** @see AppStateManager::takeControl */ - bool start(); - - /** @see AppStateManager::takeControl */ - void stop(); - - outcome::result subscribeSessionToKeys( - const std::vector &keys); - - outcome::result unsubscribeSessionFromIds( - const std::vector &subscription_id); - - std::string GetName() override - { - return "ApiService"; - } - - private: - SubscribedSessionPtr findSessionById(Session::SessionId id); - void removeSessionById(Session::SessionId id); - SubscribedSessionPtr storeSessionWithId( - Session::SessionId id, const std::shared_ptr &session); - - std::shared_ptr thread_pool_; - std::vector> listeners_; - std::shared_ptr server_; - base::Logger logger_; - std::mutex subscribed_sessions_cs_; - std::unordered_map - subscribed_sessions_; - SubscriptionEnginePtr subscription_engine_; - }; -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_SERVICE_HPP diff --git a/src/api/service/author/CMakeLists.txt b/src/api/service/author/CMakeLists.txt deleted file mode 100644 index 592ddde5..00000000 --- a/src/api/service/author/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ - -add_subdirectory(requests) - -add_library(author_api_service - author_api.hpp - author_jrpc_processor.hpp - author_jrpc_processor.cpp - impl/author_api_impl.hpp - impl/author_api_impl.cpp -) - -target_link_libraries(author_api_service - scale - logger - ) diff --git a/src/api/service/author/author_jrpc_processor.cpp b/src/api/service/author/author_jrpc_processor.cpp deleted file mode 100644 index b4e2d222..00000000 --- a/src/api/service/author/author_jrpc_processor.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -#include "api/service/author/author_jrpc_processor.hpp" - -#include "api/jrpc/jrpc_method.hpp" -#include "api/jrpc/value_converter.hpp" -#include "api/service/author/requests/pending_extrinsics.hpp" -#include "api/service/author/requests/submit_extrinsic.hpp" - -namespace sgns::api::author { - - AuthorJRpcProcessor::AuthorJRpcProcessor(std::shared_ptr server, - std::shared_ptr api) - : api_{std::move(api)}, server_{std::move(server)} { - BOOST_ASSERT(api_ != nullptr); - BOOST_ASSERT(server_ != nullptr); - } - - template - using Handler = sgns::api::Method; - - void AuthorJRpcProcessor::registerHandlers() { - server_->registerHandler("author_submitExtrinsic", - Handler(api_)); - - server_->registerHandler("author_pendingExtrinsics", - Handler(api_)); - } - -} // namespace sgns::api::author diff --git a/src/api/service/author/author_jrpc_processor.hpp b/src/api/service/author/author_jrpc_processor.hpp deleted file mode 100644 index 81c52c62..00000000 --- a/src/api/service/author/author_jrpc_processor.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_SERVICE_EXTRINSICS_SUBMISSION_SERVICE_HPP -#define SUPERGENIUS_SRC_SERVICE_EXTRINSICS_SUBMISSION_SERVICE_HPP - -#include "api/jrpc/jrpc_processor.hpp" -#include "api/jrpc/jrpc_server_impl.hpp" -#include "api/service/author/author_api.hpp" - -namespace sgns::api::author { - - /** - * @brief extrinsic submission service implementation - */ - class AuthorJRpcProcessor : public JRpcProcessor { - public: - AuthorJRpcProcessor(std::shared_ptr server, - std::shared_ptr api); - - std::string GetName() override - { - return "AuthorJRpcProcessor"; - } - - private: - void registerHandlers() override; - - std::shared_ptr api_; - std::shared_ptr server_; - }; - -} // namespace sgns::api::author - -#endif // SUPERGENIUS_SRC_SERVICE_EXTRINSICS_SUBMISSION_SERVICE_HPP diff --git a/src/api/service/author/impl/author_api_impl.cpp b/src/api/service/author/impl/author_api_impl.cpp deleted file mode 100644 index 95ed723b..00000000 --- a/src/api/service/author/impl/author_api_impl.cpp +++ /dev/null @@ -1,84 +0,0 @@ - - -#include "api/service/author/impl/author_api_impl.hpp" - -#include - -#include "base/visitor.hpp" -#include "network/types/transaction_announce.hpp" -#include "primitives/transaction.hpp" -#include "runtime/tagged_transaction_queue.hpp" -#include "transaction_pool/transaction_pool.hpp" - -namespace sgns::api { - AuthorApiImpl::AuthorApiImpl( - sptr pool, - sptr hasher, - std::shared_ptr gossiper) - : pool_{std::move(pool)}, - hasher_{std::move(hasher)}, - gossiper_{std::move(gossiper)}, - logger_{base::createLogger("AuthorApi")} { - BOOST_ASSERT_MSG(pool_ != nullptr, "transaction pool is nullptr"); - BOOST_ASSERT_MSG(hasher_ != nullptr, "hasher is nullptr"); - BOOST_ASSERT_MSG(gossiper_ != nullptr, "gossiper is nullptr"); - BOOST_ASSERT_MSG(logger_ != nullptr, "logger is nullptr"); - } - - outcome::result AuthorApiImpl::submitExtrinsic( - const primitives::Extrinsic &extrinsic) { - //OUTCOME_TRY((auto &&, res), api_->validate_transaction(extrinsic)); - //TODO - This is wrong. Need to fix after making it compile - boost::variant res = primitives::ValidTransaction(); - return visit_in_place( - res, - [&](const primitives::TransactionValidityError &e) { - return visit_in_place( - e, - // return either invalid or unknown validity error - [](const auto &validity_error) - -> outcome::result { - return validity_error; - }); - }, - [&](const primitives::ValidTransaction &v) - -> outcome::result { - // compose Transaction object - base::Hash256 hash = hasher_->blake2b_256(extrinsic.data); - size_t length = extrinsic.data.size(); - - primitives::Transaction transaction{extrinsic, - length, - hash, - v.priority, - v.longevity, - v.requires, - v.provides, - v.propagate}; - - // send to pool - BOOST_OUTCOME_TRYV2(auto &&, pool_->submitOne(std::move(transaction))); - - if (v.propagate) { - network::TransactionAnnounce announce; - announce.extrinsics.push_back(extrinsic); - gossiper_->transactionAnnounce(announce); - } - - return hash; - }); - } - - outcome::result> - AuthorApiImpl::pendingExtrinsics() { - BOOST_ASSERT_MSG(false, "not implemented"); // NOLINT - return outcome::failure(boost::system::error_code{}); - } - - outcome::result> AuthorApiImpl::removeExtrinsic( - const std::vector &keys) { - BOOST_ASSERT_MSG(false, "not implemented"); // NOLINT - return outcome::failure(boost::system::error_code{}); - } - -} // namespace sgns::api diff --git a/src/api/service/author/impl/author_api_impl.hpp b/src/api/service/author/impl/author_api_impl.hpp deleted file mode 100644 index c395c9d8..00000000 --- a/src/api/service/author/impl/author_api_impl.hpp +++ /dev/null @@ -1,67 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_SERVICE_AUTHOR_IMPL_AUTHOR_API_IMPL_HPP -#define SUPERGENIUS_SRC_API_SERVICE_AUTHOR_IMPL_AUTHOR_API_IMPL_HPP - - - -#include "api/service/author/author_api.hpp" -#include "blockchain/block_tree.hpp" -#include "base/logger.hpp" -#include "crypto/hasher.hpp" -#include "network/extrinsic_gossiper.hpp" -#include "outcome/outcome.hpp" -#include "storage/trie/trie_storage.hpp" - -namespace sgns::transaction_pool { - class TransactionPool; -} - -namespace sgns::runtime { - class TaggedTransactionQueue; -} - -namespace sgns::api { - class AuthorApiImpl : public AuthorApi { - template - using sptr = std::shared_ptr; - - public: - /** - * @constructor - * @param api ttq instance shared ptr - * @param pool transaction pool instance shared ptr - * @param hasher hasher instance shared ptr - * @param block_tree block tree instance shared ptr - */ - AuthorApiImpl(std::shared_ptr pool, - std::shared_ptr hasher, - std::shared_ptr gossiper); - - ~AuthorApiImpl() override = default; - - outcome::result submitExtrinsic( - const primitives::Extrinsic &extrinsic) override; - - outcome::result> pendingExtrinsics() - override; - - // TODO(yuraz): probably will be documented later (no task yet) - outcome::result> removeExtrinsic( - const std::vector &keys) override; - - std::string GetName() override - { - return "AuthorApiImpl"; - } - - private: - //sptr api_; - sptr pool_; - sptr hasher_; - sptr block_tree_; - std::shared_ptr gossiper_; - base::Logger logger_; - }; -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_SERVICE_AUTHOR_IMPL_AUTHOR_API_IMPL_HPP diff --git a/src/api/service/author/requests/CMakeLists.txt b/src/api/service/author/requests/CMakeLists.txt deleted file mode 100644 index a05c5989..00000000 --- a/src/api/service/author/requests/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -add_library(api_author_requests - submit_extrinsic.cpp - pending_extrinsics.cpp - ) - -target_link_libraries(api_author_requests - Boost::boost - ) diff --git a/src/api/service/author/requests/pending_extrinsics.cpp b/src/api/service/author/requests/pending_extrinsics.cpp deleted file mode 100644 index 1a6b0aad..00000000 --- a/src/api/service/author/requests/pending_extrinsics.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "api/service/author/requests/pending_extrinsics.hpp" - -namespace sgns::api::author::request { - - outcome::result PendingExtrinsics::init( - const jsonrpc::Request::Parameters ¶ms) { - return outcome::success(); - } - - outcome::result> - PendingExtrinsics::execute() { - return api_->pendingExtrinsics(); - } - -} // namespace sgns::api::author::request diff --git a/src/api/service/author/requests/pending_extrinsics.hpp b/src/api/service/author/requests/pending_extrinsics.hpp deleted file mode 100644 index 5f04602a..00000000 --- a/src/api/service/author/requests/pending_extrinsics.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_SERVICE_EXTRINSIC_REQUEST_PENDING_EXTRINSICS_HPP -#define SUPERGENIUS_SRC_API_SERVICE_EXTRINSIC_REQUEST_PENDING_EXTRINSICS_HPP - -#include - -#include "api/service/author/author_api.hpp" -#include "primitives/extrinsic.hpp" - -namespace sgns::api::author::request { - - class PendingExtrinsics final { - public: - explicit PendingExtrinsics(std::shared_ptr api) - : api_(std::move(api)){}; - - static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); - - outcome::result> execute(); - - private: - std::shared_ptr api_; - }; - -} // namespace sgns::api::author::request - -#endif // SUPERGENIUS_SRC_API_SERVICE_EXTRINSIC_REQUEST_PENDING_EXTRINSICS_HPP diff --git a/src/api/service/author/requests/submit_extrinsic.cpp b/src/api/service/author/requests/submit_extrinsic.cpp deleted file mode 100644 index 160cea5b..00000000 --- a/src/api/service/author/requests/submit_extrinsic.cpp +++ /dev/null @@ -1,34 +0,0 @@ - -#include "api/service/author/requests/submit_extrinsic.hpp" - -#include "base/hexutil.hpp" -#include "primitives/extrinsic.hpp" -#include "scale/scale.hpp" - -namespace sgns::api::author::request { - - outcome::result SubmitExtrinsic::init( - const jsonrpc::Request::Parameters ¶ms) { - if (params.size() != 1) { - throw jsonrpc::InvalidParametersFault("incorrect number of arguments"); - } - - const auto &arg0 = params[0]; - if (!arg0.IsString()) { - throw jsonrpc::InvalidParametersFault("invalid argument"); - } - - auto &&hexified_extrinsic = arg0.AsString(); - OUTCOME_TRY((auto &&, buffer), base::unhexWith0x(hexified_extrinsic)); - OUTCOME_TRY((auto &&, extrinsic), scale::decode(buffer)); - - extrinsic_ = std::move(extrinsic); - - return outcome::success(); - } - - outcome::result SubmitExtrinsic::execute() { - return api_->submitExtrinsic(extrinsic_); - } - -} // namespace sgns::api::author::request diff --git a/src/api/service/author/requests/submit_extrinsic.hpp b/src/api/service/author/requests/submit_extrinsic.hpp deleted file mode 100644 index 15e8c831..00000000 --- a/src/api/service/author/requests/submit_extrinsic.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_SERVICE_EXTRINSIC_REQUEST_SUBMIT_EXTRINSIC_HPP -#define SUPERGENIUS_SRC_API_SERVICE_EXTRINSIC_REQUEST_SUBMIT_EXTRINSIC_HPP - -#include - -#include "api/service/author/author_api.hpp" -#include "primitives/extrinsic.hpp" - -namespace sgns::api::author::request { - - class SubmitExtrinsic final { - public: - explicit SubmitExtrinsic(std::shared_ptr api) - : api_(std::move(api)){}; - - outcome::result init(const jsonrpc::Request::Parameters ¶ms); - - outcome::result execute(); - - private: - std::shared_ptr api_; - primitives::Extrinsic extrinsic_; - }; - -} // namespace sgns::api::author::request - -#endif // SUPERGENIUS_SRC_API_SERVICE_EXTRINSIC_REQUEST_SUBMIT_EXTRINSIC_HPP diff --git a/src/api/service/chain/CMakeLists.txt b/src/api/service/chain/CMakeLists.txt deleted file mode 100644 index 4cee3615..00000000 --- a/src/api/service/chain/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ - -add_subdirectory(requests) - -add_library(chain_api_service - chain_jrpc_processor.cpp - impl/chain_api_impl.cpp - ) -target_link_libraries(chain_api_service - buffer - api_service - api_chain_requests - hexutil - ) diff --git a/src/api/service/chain/chain_api.hpp b/src/api/service/chain/chain_api.hpp deleted file mode 100644 index 735ca514..00000000 --- a/src/api/service/chain/chain_api.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_CHAIN_API_HPP -#define SUPERGENIUS_SRC_API_CHAIN_API_HPP - -#include -#include "base/buffer.hpp" -#include "outcome/outcome.hpp" -#include "primitives/common.hpp" -#include "singleton/IComponent.hpp" - -namespace sgns::api { - /** - * @class ChainApi privides interface for blockchain api - */ - class ChainApi : public IComponent { - public: - ~ChainApi() override = default; - using BlockNumber = primitives::BlockNumber; - using BlockHash = sgns::primitives::BlockHash; - using ValueType = boost::variant; - - /** - * @return last finalized block hash - */ - virtual outcome::result getBlockHash() const = 0; - - /** - * @param block_number block number - * @return block hash by number - */ - virtual outcome::result getBlockHash( - BlockNumber block_number) const = 0; - - /** - * @param hex_number hex-encoded block number - * @return block hash by number - */ - virtual outcome::result getBlockHash( - std::string_view hex_number) const = 0; - - /** - * @param values mixed values array either of block number of hex-encoded - * block number as string - * @return array of block hashes for numbers - */ - virtual outcome::result> getBlockHash( - gsl::span values) const = 0; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_CHAIN_API_HPP diff --git a/src/api/service/chain/chain_jrpc_processor.cpp b/src/api/service/chain/chain_jrpc_processor.cpp deleted file mode 100644 index 04cdf12c..00000000 --- a/src/api/service/chain/chain_jrpc_processor.cpp +++ /dev/null @@ -1,25 +0,0 @@ - -#include "api/service/chain/chain_jrpc_processor.hpp" - -#include "api/jrpc/jrpc_method.hpp" -#include "api/jrpc/value_converter.hpp" -#include "api/service/chain/requests/get_block_hash.hpp" - -namespace sgns::api::chain { - - ChainJRpcProcessor::ChainJRpcProcessor(std::shared_ptr server, - std::shared_ptr api) - : api_{std::move(api)}, server_{std::move(server)} { - BOOST_ASSERT(api_ != nullptr); - BOOST_ASSERT(server_ != nullptr); - } - - template - using Handler = Method; - - void ChainJRpcProcessor::registerHandlers() { - server_->registerHandler("chain_getBlockHash", - Handler(api_)); - } - -} // namespace sgns::api::chain diff --git a/src/api/service/chain/chain_jrpc_processor.hpp b/src/api/service/chain/chain_jrpc_processor.hpp deleted file mode 100644 index bf7b84f3..00000000 --- a/src/api/service/chain/chain_jrpc_processor.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_CHAIN_JRPC_PROCESSOR_HPP -#define SUPERGENIUS_SRC_CHAIN_JRPC_PROCESSOR_HPP - -#include "api/jrpc/jrpc_processor.hpp" -#include "api/jrpc/jrpc_server_impl.hpp" -#include "api/service/chain/chain_api.hpp" - -namespace sgns::api::chain { - /** - * @brief extrinsic submission service implementation - */ - class ChainJRpcProcessor : public JRpcProcessor { - public: - ChainJRpcProcessor(std::shared_ptr server, - std::shared_ptr api); - void registerHandlers() override; - - std::string GetName() override - { - return "ChainJRpcProcessor"; - } - - private: - std::shared_ptr api_; - std::shared_ptr server_; - }; -} // namespace sgns::api::chain - -#endif // SUPERGENIUS_SRC_CHAIN_JRPC_PROCESSOR_HPP diff --git a/src/api/service/chain/impl/chain_api_impl.cpp b/src/api/service/chain/impl/chain_api_impl.cpp deleted file mode 100644 index 02d153c8..00000000 --- a/src/api/service/chain/impl/chain_api_impl.cpp +++ /dev/null @@ -1,57 +0,0 @@ - -#include "api/service/chain/impl/chain_api_impl.hpp" - -#include "base/hexutil.hpp" -#include "base/visitor.hpp" - -namespace sgns::api { - using primitives::BlockHash; - using primitives::BlockNumber; - - ChainApiImpl::ChainApiImpl( - std::shared_ptr block_repo, - std::shared_ptr block_tree) - : block_repo_{std::move(block_repo)}, block_tree_{std::move(block_tree)} { - BOOST_ASSERT_MSG(block_repo_ != nullptr, "block repo parameter is nullptr"); - BOOST_ASSERT_MSG(block_tree_ != nullptr, "block tree parameter is nullptr"); - } - - outcome::result ChainApiImpl::getBlockHash() const { - auto last_finalized = block_tree_->getLastFinalized(); - return last_finalized.block_hash; - } - outcome::result ChainApiImpl::getBlockHash( - BlockNumber value) const { - return block_repo_->getHashByNumber(value); - } - - outcome::result ChainApiImpl::getBlockHash( - std::string_view value) const { - // despite w3f specification says, that request contains 32-bit - // unsigned integer, we are free to decode more capacious number, - // since BlockNumber, which is really being requested - // is defined as uint64_t - OUTCOME_TRY((auto &&, number), base::unhexNumber(value)); - return getBlockHash(number); - } - - outcome::result> ChainApiImpl::getBlockHash( - gsl::span values) const { - std::vector results; - results.reserve(values.size()); - - for (const auto &v : values) { - auto &&res = sgns::visit_in_place( - v, - [this](BlockNumber number) { return getBlockHash(number); }, - [this](std::string_view hex_string) { - return getBlockHash(hex_string); - }); - OUTCOME_TRY((auto &&, r), res); - results.emplace_back(r); - } - - return results; - } - -} // namespace sgns::api diff --git a/src/api/service/chain/impl/chain_api_impl.hpp b/src/api/service/chain/impl/chain_api_impl.hpp deleted file mode 100644 index 4cb93447..00000000 --- a/src/api/service/chain/impl/chain_api_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_CHAIN_API_IMPL_HPP -#define SUPERGENIUS_SRC_CHAIN_API_IMPL_HPP - -#include - -#include "api/service/chain/chain_api.hpp" -#include "blockchain/block_header_repository.hpp" -#include "blockchain/block_tree.hpp" - -namespace sgns::api { - - class ChainApiImpl : public ChainApi { - public: - ~ChainApiImpl() override = default; - - ChainApiImpl(std::shared_ptr block_repo, - std::shared_ptr block_tree); - - outcome::result getBlockHash() const override; - - outcome::result getBlockHash(BlockNumber value) const override; - - outcome::result getBlockHash( - std::string_view value) const override; - - outcome::result> getBlockHash( - gsl::span values) const override; - - std::string GetName() override - { - return "ChainApiImpl"; - } - - private: - std::shared_ptr block_repo_; - std::shared_ptr block_tree_; - }; -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_CHAIN_API_IMPL_HPP diff --git a/src/api/service/chain/requests/CMakeLists.txt b/src/api/service/chain/requests/CMakeLists.txt deleted file mode 100644 index f89dc31f..00000000 --- a/src/api/service/chain/requests/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -add_library(api_chain_requests - get_block_hash.cpp - ) -target_link_libraries(api_chain_requests - Boost::boost - hexutil - ) diff --git a/src/api/service/chain/requests/get_block_hash.cpp b/src/api/service/chain/requests/get_block_hash.cpp deleted file mode 100644 index 5a369633..00000000 --- a/src/api/service/chain/requests/get_block_hash.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "api/service/chain/requests/get_block_hash.hpp" - -#include "base/hexutil.hpp" -#include "base/visitor.hpp" - -namespace sgns::api::chain::request { - using primitives::BlockHash; - using primitives::BlockNumber; - - outcome::result GetBlockhash::init( - const jsonrpc::Request::Parameters ¶ms) { - if (params.empty()) { - param_ = NoParameters{}; - return outcome::success(); - } - - if (params.size() > 1) { - throw jsonrpc::InvalidParametersFault("incorrect number of arguments"); - } - - const auto &arg0 = params[0]; - if (arg0.IsInteger32()) { - param_ = static_cast(arg0.AsInteger32()); - } else if (arg0.IsString()) { - param_ = arg0.AsString(); - } else if (arg0.IsArray()) { - const auto &array = arg0.AsArray(); - // empty array would cause problems within `execute` - if (array.empty()) { - throw jsonrpc::InvalidParametersFault("invalid argument"); - } - std::vector param; - param.reserve(array.size()); - for (const auto &v : array) { - if (v.IsInteger32()) { - param.emplace_back(VectorParam(v.AsInteger32())); - } else if (v.IsString()) { - param.emplace_back(VectorParam(v.AsString())); - } else { - throw jsonrpc::InvalidParametersFault("invalid argument"); - } - } - param_ = std::move(param); - } else { - throw jsonrpc::InvalidParametersFault("invalid argument"); - } - - return outcome::success(); - } // namespace sgns::api::chain::request - - namespace { - std::string formatBlockHash(const BlockHash &bh) { - const static std::string prefix = "0x"; - auto hex = base::hex_lower(bh); - return prefix + hex; - } - } // namespace - - outcome::result GetBlockhash::execute() { - return sgns::visit_in_place( - param_, - [this](const NoParameters &v) -> outcome::result { - // return last finalized - OUTCOME_TRY((auto &&, bh), api_->getBlockHash()); - return formatBlockHash(bh); - }, - [this](BlockNumber v) -> outcome::result { - OUTCOME_TRY((auto &&, bh), api_->getBlockHash(v)); - return formatBlockHash(bh); - }, - [this](std::string_view v) -> outcome::result { - OUTCOME_TRY((auto &&, bh), api_->getBlockHash(v)); - return formatBlockHash(bh); - }, - [this]( - const std::vector &v) -> outcome::result { - OUTCOME_TRY((auto &&, rr), api_->getBlockHash(gsl::make_span(v))); - std::vector results{}; - results.reserve(v.size()); - for (const auto &it : rr) { - results.emplace_back(formatBlockHash(it)); - } - - return results; - }); - }; - -} // namespace sgns::api::chain::request diff --git a/src/api/service/chain/requests/get_block_hash.hpp b/src/api/service/chain/requests/get_block_hash.hpp deleted file mode 100644 index 56c6e641..00000000 --- a/src/api/service/chain/requests/get_block_hash.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_GET_BLOCK_HASH_HPP -#define SUPERGENIUS_SRC_GET_BLOCK_HASH_HPP - -#include - -#include "api/service/chain/chain_api.hpp" -#include "primitives/extrinsic.hpp" - -namespace sgns::api::chain::request { - - class GetBlockhash final { - struct NoParameters {}; - using Param1 = primitives::BlockNumber; - using Param2 = std::string; - using VectorParam = boost::variant; - using Param3 = std::vector; - using Param = boost::variant; - - public: - explicit GetBlockhash(std::shared_ptr api) - : api_(std::move(api)){}; - - outcome::result init(const jsonrpc::Request::Parameters ¶ms); - - using ResultType = boost::variant>; - outcome::result execute(); - - private: - std::shared_ptr api_; - Param param_; - }; - -} // namespace sgns::api::chain::request -#endif // SUPERGENIUS_SRC_GET_BLOCK_HASH_HPP diff --git a/src/api/service/state/CMakeLists.txt b/src/api/service/state/CMakeLists.txt deleted file mode 100644 index f799f8b2..00000000 --- a/src/api/service/state/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ - -add_library(state_api_service - state_jrpc_processor.cpp - impl/state_api_impl.cpp - ) -target_link_libraries(state_api_service - api_state_requests - buffer - api_service - trie_storage - blob - ) - -add_subdirectory(requests) diff --git a/src/api/service/state/impl/state_api_impl.cpp b/src/api/service/state/impl/state_api_impl.cpp deleted file mode 100644 index 51d34dc9..00000000 --- a/src/api/service/state/impl/state_api_impl.cpp +++ /dev/null @@ -1,66 +0,0 @@ - -#include "api/service/state/impl/state_api_impl.hpp" - -#include - -namespace sgns::api { - - StateApiImpl::StateApiImpl( - std::shared_ptr block_repo, - std::shared_ptr trie_storage, - std::shared_ptr block_tree/*, - std::shared_ptr runtime_core*/) - : block_repo_{std::move(block_repo)}, - storage_{std::move(trie_storage)}, - block_tree_{std::move(block_tree)}/*, - runtime_core_{std::move(runtime_core)}*/ { - BOOST_ASSERT(nullptr != block_repo_); - BOOST_ASSERT(nullptr != storage_); - BOOST_ASSERT(nullptr != block_tree_); - //BOOST_ASSERT(nullptr != runtime_core_); - } - - outcome::result StateApiImpl::getStorage( - const base::Buffer &key) const { - auto last_finalized = block_tree_->getLastFinalized(); - return getStorage(key, last_finalized.block_hash); - } - - outcome::result StateApiImpl::getStorage( - const base::Buffer &key, const primitives::BlockHash &at) const { - OUTCOME_TRY((auto &&, header), block_repo_->getBlockHeader(at)); - OUTCOME_TRY((auto &&, trie_reader), storage_->getEphemeralBatchAt(header.state_root)); - return trie_reader->get(key); - } - - outcome::result StateApiImpl::getRuntimeVersion( - const boost::optional &at) const { - //return runtime_core_->version(at); - - return primitives::Version{}; - } - - void StateApiImpl::setApiService( - std::shared_ptr const &api_service) { - BOOST_ASSERT(api_service != nullptr); - api_service_ = api_service; - } - - outcome::result StateApiImpl::subscribeStorage( - const std::vector &keys) { - if (auto api_service = api_service_.lock()) - return api_service->subscribeSessionToKeys(keys); - - throw jsonrpc::InternalErrorFault( - "Internal error. Api service not initialized."); - } - - outcome::result StateApiImpl::unsubscribeStorage( - const std::vector &subscription_id) { - if (auto api_service = api_service_.lock()) - return api_service->unsubscribeSessionFromIds(subscription_id); - - throw jsonrpc::InternalErrorFault( - "Internal error. Api service not initialized."); - } -} // namespace sgns::api diff --git a/src/api/service/state/impl/state_api_impl.hpp b/src/api/service/state/impl/state_api_impl.hpp deleted file mode 100644 index cb0767ff..00000000 --- a/src/api/service/state/impl/state_api_impl.hpp +++ /dev/null @@ -1,51 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_STATE_API_IMPL_HPP -#define SUPERGENIUS_SRC_STATE_API_IMPL_HPP - -#include "api/service/state/state_api.hpp" -#include "blockchain/block_header_repository.hpp" -#include "blockchain/block_tree.hpp" -#include "runtime/core.hpp" -#include "storage/trie/trie_storage.hpp" - -namespace sgns::api { - - class StateApiImpl final : public StateApi { - public: - StateApiImpl(std::shared_ptr block_repo, - std::shared_ptr trie_storage, - std::shared_ptr block_tree/*, - std::shared_ptr runtime_core*/); - - void setApiService( - std::shared_ptr const &api_service) override; - - outcome::result getStorage( - const base::Buffer &key) const override; - outcome::result getStorage( - const base::Buffer &key, - const primitives::BlockHash &at) const override; - outcome::result getRuntimeVersion( - const boost::optional &at) const override; - outcome::result subscribeStorage( - const std::vector &keys) override; - outcome::result unsubscribeStorage( - const std::vector &subscription_id) override; - - std::string GetName() override - { - return "StateApiImpl"; - } - - private: - std::shared_ptr block_repo_; - std::shared_ptr storage_; - std::shared_ptr block_tree_; - //std::shared_ptr runtime_core_; - - std::weak_ptr api_service_; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_STATE_API_IMPL_HPP diff --git a/src/api/service/state/requests/CMakeLists.txt b/src/api/service/state/requests/CMakeLists.txt deleted file mode 100644 index 2075eeb1..00000000 --- a/src/api/service/state/requests/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -add_library(api_state_requests - get_storage.cpp - get_runtime_version.cpp - subscribe_storage.cpp - unsubscribe_storage.cpp - ) - -target_link_libraries(api_state_requests - Boost::boost - logger - blob - ) diff --git a/src/api/service/state/requests/get_runtime_version.cpp b/src/api/service/state/requests/get_runtime_version.cpp deleted file mode 100644 index 59f43e0d..00000000 --- a/src/api/service/state/requests/get_runtime_version.cpp +++ /dev/null @@ -1,41 +0,0 @@ - -#include "api/service/state/requests/get_runtime_version.hpp" - -namespace sgns::api::state::request { - - GetRuntimeVersion::GetRuntimeVersion(std::shared_ptr api) - : api_(std::move(api)) { - BOOST_ASSERT(!!api_); - } - - outcome::result GetRuntimeVersion::init( - const jsonrpc::Request::Parameters ¶ms) { - if (params.size() > 1) { - throw jsonrpc::InvalidParametersFault("Incorrect number of params"); - } - - auto const no_args = params.empty(); - auto const have_nil_arg = (!no_args && params[0].IsNil()); - auto const have_str_arg = (!no_args && params[0].IsString()); - - if (no_args || have_nil_arg) { - at_ = boost::none; - } else if (have_str_arg) { - auto &&at_str = params[0].AsString(); - OUTCOME_TRY((auto &&, at_span), base::unhexWith0x(at_str)); - OUTCOME_TRY((auto &&, at), primitives::BlockHash::fromSpan(at_span)); - at_ = at; - } else { - throw jsonrpc::InvalidParametersFault( - "Parameter 'at' must be a hex string"); - } - - return outcome::success(); - } - - outcome::result GetRuntimeVersion::execute() { - BOOST_ASSERT(!!api_); - return api_->getRuntimeVersion(at_); - } - -} // namespace sgns::api::state::request diff --git a/src/api/service/state/requests/get_runtime_version.hpp b/src/api/service/state/requests/get_runtime_version.hpp deleted file mode 100644 index b2bd4448..00000000 --- a/src/api/service/state/requests/get_runtime_version.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_REQUEST_GET_VERSION -#define SUPERGENIUS_SRC_API_REQUEST_GET_VERSION - -#include - -#include "api/service/state/state_api.hpp" -#include "base/buffer.hpp" -#include "outcome/outcome.hpp" -#include "primitives/block_id.hpp" - -namespace sgns::api::state::request { - - class GetRuntimeVersion final { - public: - GetRuntimeVersion(GetRuntimeVersion const &) = delete; - GetRuntimeVersion &operator=(GetRuntimeVersion const &) = delete; - - GetRuntimeVersion(GetRuntimeVersion &&) = default; - GetRuntimeVersion &operator=(GetRuntimeVersion &&) = default; - - explicit GetRuntimeVersion(std::shared_ptr api); - ~GetRuntimeVersion() = default; - - outcome::result init(jsonrpc::Request::Parameters const ¶ms); - outcome::result execute(); - - private: - std::shared_ptr api_; - boost::optional at_; - }; - -} // namespace sgns::api::state::request - -#endif // SUPERGENIUS_SRC_API_REQUEST_GET_VERSION diff --git a/src/api/service/state/requests/get_storage.cpp b/src/api/service/state/requests/get_storage.cpp deleted file mode 100644 index e9de6421..00000000 --- a/src/api/service/state/requests/get_storage.cpp +++ /dev/null @@ -1,41 +0,0 @@ - -#include "api/service/state/requests/get_storage.hpp" - -namespace sgns::api::state::request { - - outcome::result GetStorage::init( - const jsonrpc::Request::Parameters ¶ms) { - if (params.size() > 2 || params.empty()) { - throw jsonrpc::InvalidParametersFault("Incorrect number of params"); - } - auto ¶m0 = params[0]; - if (! param0.IsString()) { - throw jsonrpc::InvalidParametersFault( - "Parameter 'key' must be a hex string"); - } - auto &&key_str = param0.AsString(); - OUTCOME_TRY((auto &&, key), base::unhexWith0x(key_str)); - - key_ = base::Buffer(std::move(key)); - - if (params.size() > 1) { - auto ¶m1 = params[1]; - if (! param1.IsString()) { - throw jsonrpc::InvalidParametersFault( - "Parameter 'at' must be a hex string"); - } - auto &&at_str = param1.AsString(); - OUTCOME_TRY((auto &&, at_span), base::unhexWith0x(at_str)); - OUTCOME_TRY((auto &&, at), primitives::BlockHash::fromSpan(at_span)); - at_.reset(at); - } else { - at_.reset(); - } - return outcome::success(); - } - - outcome::result GetStorage::execute() { - return at_ ? api_->getStorage(key_, at_.value()) : api_->getStorage(key_); - } - -} // namespace sgns::api::state::request diff --git a/src/api/service/state/requests/get_storage.hpp b/src/api/service/state/requests/get_storage.hpp deleted file mode 100644 index 1a382f44..00000000 --- a/src/api/service/state/requests/get_storage.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_REQUEST_GET_STORAGE -#define SUPERGENIUS_SRC_API_REQUEST_GET_STORAGE - -#include - -#include - -#include "api/service/state/state_api.hpp" -#include "base/buffer.hpp" -#include "outcome/outcome.hpp" -#include "primitives/block_id.hpp" - -namespace sgns::api::state::request { - - class GetStorage final { - public: - GetStorage(GetStorage const &) = delete; - GetStorage &operator=(GetStorage const &) = delete; - - GetStorage(GetStorage &&) = default; - GetStorage &operator=(GetStorage &&) = default; - - explicit GetStorage(std::shared_ptr api) : api_(std::move(api)){}; - ~GetStorage() = default; - - outcome::result init(const jsonrpc::Request::Parameters ¶ms); - - outcome::result execute(); - - private: - std::shared_ptr api_; - base::Buffer key_; - boost::optional at_; - }; - -} // namespace sgns::api::state::request - -#endif // SUPERGENIUS_SRC_STATE_JRPC_PROCESSOR_HPP diff --git a/src/api/service/state/requests/subscribe_storage.cpp b/src/api/service/state/requests/subscribe_storage.cpp deleted file mode 100644 index 9f8fb38e..00000000 --- a/src/api/service/state/requests/subscribe_storage.cpp +++ /dev/null @@ -1,36 +0,0 @@ - -#include "api/service/state/requests/subscribe_storage.hpp" - -namespace sgns::api::state::request { - - outcome::result SubscribeStorage::init( - const jsonrpc::Request::Parameters ¶ms) { - if (params.size() > 1 || params.empty()) { - throw jsonrpc::InvalidParametersFault("Incorrect number of params"); - } - auto &keys = params[0]; - if (!keys.IsArray()) { - throw jsonrpc::InvalidParametersFault( - "Parameter 'params' must be a string array of the storage keys"); - } - - auto &key_str_array = keys.AsArray(); - key_buffers_.clear(); - key_buffers_.reserve(key_str_array.size()); - - for (auto &key_str : key_str_array) { - if (!key_str.IsString()) - throw jsonrpc::InvalidParametersFault( - "Parameter 'params' must be a string array of the storage keys"); - - OUTCOME_TRY((auto &&, key), base::unhexWith0x(key_str.AsString())); - key_buffers_.emplace_back(std::move(key)); - } - return outcome::success(); - } - - outcome::result SubscribeStorage::execute() { - return api_->subscribeStorage(key_buffers_); - } - -} // namespace sgns::api::state::request diff --git a/src/api/service/state/requests/subscribe_storage.hpp b/src/api/service/state/requests/subscribe_storage.hpp deleted file mode 100644 index 9edde19d..00000000 --- a/src/api/service/state/requests/subscribe_storage.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SUPERGENIUS_API_REQUEST_SUBSCRIBE_STORAGE -#define SUPERGENIUS_API_REQUEST_SUBSCRIBE_STORAGE - -#include - -#include - -#include "api/service/state/state_api.hpp" -#include "base/buffer.hpp" -#include "outcome/outcome.hpp" -#include "primitives/block_id.hpp" - -namespace sgns::api::state::request { - - class SubscribeStorage final { - public: - SubscribeStorage(const SubscribeStorage &) = delete; - SubscribeStorage &operator=(const SubscribeStorage &) = delete; - - SubscribeStorage(SubscribeStorage &&) = default; - SubscribeStorage &operator=(SubscribeStorage &&) = default; - - explicit SubscribeStorage(std::shared_ptr api) - : api_(std::move(api)){}; - ~SubscribeStorage() = default; - - outcome::result init(const jsonrpc::Request::Parameters ¶ms); - outcome::result execute(); - - private: - std::shared_ptr api_; - std::vector key_buffers_; - }; - -} // namespace sgns::api::state::request - -#endif // SUPERGENIUS_API_REQUEST_SUBSCRIBE_STORAGE \ No newline at end of file diff --git a/src/api/service/state/requests/unsubscribe_storage.cpp b/src/api/service/state/requests/unsubscribe_storage.cpp deleted file mode 100644 index 589e60dd..00000000 --- a/src/api/service/state/requests/unsubscribe_storage.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "api/service/state/requests/unsubscribe_storage.hpp" - -namespace sgns::api::state::request { - - outcome::result UnsubscribeStorage::init( - const jsonrpc::Request::Parameters ¶ms) { - if (params.size() > 1 || params.empty()) { - throw jsonrpc::InvalidParametersFault("Incorrect number of params"); - } - - auto &ids = params[0]; - if (!ids.IsArray()) { - throw jsonrpc::InvalidParametersFault( - "Parameter 'params' must be a UINT array of the subscription ids"); - } - - subscriber_id_.reserve(ids.AsArray().size()); - for (auto &id : ids.AsArray()) { - if (!id.IsInteger32()) - throw jsonrpc::InvalidParametersFault( "Parameter 'params' must be an integer value of subscriber ID"); - - subscriber_id_.emplace_back(id.AsInteger32()); - } - return outcome::success(); - } - - outcome::result UnsubscribeStorage::execute() { - return api_->unsubscribeStorage(subscriber_id_); - } - -} // namespace sgns::api::state::request diff --git a/src/api/service/state/requests/unsubscribe_storage.hpp b/src/api/service/state/requests/unsubscribe_storage.hpp deleted file mode 100644 index 723d2e9e..00000000 --- a/src/api/service/state/requests/unsubscribe_storage.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef SUPERGENIUS_API_REQUEST_UNSUBSCRIBE_STORAGE -#define SUPERGENIUS_API_REQUEST_UNSUBSCRIBE_STORAGE - -#include - -#include - -#include "api/service/state/state_api.hpp" -#include "base/buffer.hpp" -#include "outcome/outcome.hpp" -#include "primitives/block_id.hpp" - -namespace sgns::api::state::request { - - class UnsubscribeStorage final { - public: - UnsubscribeStorage(const UnsubscribeStorage &) = delete; - UnsubscribeStorage &operator=(const UnsubscribeStorage &) = delete; - - UnsubscribeStorage(UnsubscribeStorage &&) = default; - UnsubscribeStorage &operator=(UnsubscribeStorage &&) = default; - - explicit UnsubscribeStorage(std::shared_ptr api) - : api_(std::move(api)) { }; - ~UnsubscribeStorage() = default; - - outcome::result init(const jsonrpc::Request::Parameters ¶ms); - outcome::result execute(); - - private: - std::shared_ptr api_; - std::vector subscriber_id_; - }; - -} // namespace sgns::api::state::request - -#endif // SUPERGENIUS_API_REQUEST_UNSUBSCRIBE_STORAGE \ No newline at end of file diff --git a/src/api/service/state/state_api.hpp b/src/api/service/state/state_api.hpp deleted file mode 100644 index 205e977b..00000000 --- a/src/api/service/state/state_api.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_API_STATE_API_HPP -#define SUPERGENIUS_SRC_API_STATE_API_HPP - -#include - -#include "api/service/api_service.hpp" -#include "base/buffer.hpp" -#include "outcome/outcome.hpp" -#include "primitives/common.hpp" -#include "primitives/version.hpp" -#include "singleton/IComponent.hpp" - -namespace sgns::api { - - class StateApi : public IComponent { - public: - ~StateApi() override = default; - - virtual void setApiService( - const std::shared_ptr &api_service) = 0; - - virtual outcome::result getStorage( - const base::Buffer &key) const = 0; - virtual outcome::result getStorage( - const base::Buffer &key, const primitives::BlockHash &at) const = 0; - virtual outcome::result getRuntimeVersion( - const boost::optional &at) const = 0; - virtual outcome::result subscribeStorage( - const std::vector &keys) = 0; - virtual outcome::result unsubscribeStorage( - const std::vector &subscription_id) = 0; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_SRC_API_STATE_API_HPP diff --git a/src/api/service/state/state_jrpc_processor.cpp b/src/api/service/state/state_jrpc_processor.cpp deleted file mode 100644 index d5eea327..00000000 --- a/src/api/service/state/state_jrpc_processor.cpp +++ /dev/null @@ -1,36 +0,0 @@ - -#include "api/service/state/state_jrpc_processor.hpp" - -#include "api/jrpc/jrpc_method.hpp" -#include "api/service/state/requests/get_runtime_version.hpp" -#include "api/service/state/requests/get_storage.hpp" -#include "api/service/state/requests/subscribe_storage.hpp" -#include "api/service/state/requests/unsubscribe_storage.hpp" - -namespace sgns::api::state { - - StateJRpcProcessor::StateJRpcProcessor(std::shared_ptr server, - std::shared_ptr api) - : api_{std::move(api)}, server_{std::move(server)} { - BOOST_ASSERT(api_ != nullptr); - BOOST_ASSERT(server_ != nullptr); - } - - template - using Handler = sgns::api::Method; - - void StateJRpcProcessor::registerHandlers() { - server_->registerHandler("state_getStorage", - Handler(api_)); - - server_->registerHandler("state_getRuntimeVersion", - Handler(api_)); - - server_->registerHandler("state_subscribeStorage", - Handler(api_)); - - server_->registerHandler("state_unsubscribeStorage", - Handler(api_)); - } - -} // namespace sgns::api::state diff --git a/src/api/service/state/state_jrpc_processor.hpp b/src/api/service/state/state_jrpc_processor.hpp deleted file mode 100644 index 6b0b9980..00000000 --- a/src/api/service/state/state_jrpc_processor.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef SUPERGENIUS_SRC_STATE_JRPC_PROCESSOR_HPP -#define SUPERGENIUS_SRC_STATE_JRPC_PROCESSOR_HPP - -#include "api/jrpc/jrpc_processor.hpp" - -#include "api/jrpc/jrpc_server_impl.hpp" -#include "api/service/state/state_api.hpp" - -namespace sgns::api::state { - - class StateJRpcProcessor : public JRpcProcessor { - public: - StateJRpcProcessor(std::shared_ptr server, - std::shared_ptr api); - ~StateJRpcProcessor() override = default; - - void registerHandlers() override; - - std::string GetName() override - { - return "StateJRpcProcessor"; - } - - private: - std::shared_ptr api_; - std::shared_ptr server_; - }; - -} // namespace sgns::api -#endif // SUPERGENIUS_SRC_STATE_JRPC_PROCESSOR_HPP diff --git a/src/api/service/system/CMakeLists.txt b/src/api/service/system/CMakeLists.txt deleted file mode 100644 index 736e4861..00000000 --- a/src/api/service/system/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -add_library(system_api_service - system_jrpc_processor.cpp - impl/system_api_impl.cpp - ) -target_link_libraries(system_api_service - api_system_requests - ) - -add_subdirectory(requests) diff --git a/src/api/service/system/impl/system_api_impl.cpp b/src/api/service/system/impl/system_api_impl.cpp deleted file mode 100644 index a5c49362..00000000 --- a/src/api/service/system/impl/system_api_impl.cpp +++ /dev/null @@ -1,23 +0,0 @@ - -#include "api/service/system/impl/system_api_impl.hpp" - -#include - -namespace sgns::api { - - SystemApiImpl::SystemApiImpl( - std::shared_ptr config) - : config_(std::move(config)) { - BOOST_ASSERT(config_ != nullptr); - } - - std::shared_ptr SystemApiImpl::getConfig() - const { - if (! config_) { - throw jsonrpc::InternalErrorFault( - "Internal error. Configuration storage not initialized."); - } - return config_; - } - -} // namespace sgns::api diff --git a/src/api/service/system/impl/system_api_impl.hpp b/src/api/service/system/impl/system_api_impl.hpp deleted file mode 100644 index f0621c5d..00000000 --- a/src/api/service/system/impl/system_api_impl.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef SUPERGENIUS_API_SYSTEMAPIIMPL -#define SUPERGENIUS_API_SYSTEMAPIIMPL - -#include "api/service/system/system_api.hpp" - -#include "application/configuration_storage.hpp" - -namespace sgns::api { - - class SystemApiImpl final : public SystemApi { - public: - SystemApiImpl(std::shared_ptr config); - - std::shared_ptr getConfig() - const override; - - std::string GetName() override - { - return "SystemApiImpl"; - } - - private: - std::shared_ptr config_; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_API_SYSTEMAPIIMPL diff --git a/src/api/service/system/requests/CMakeLists.txt b/src/api/service/system/requests/CMakeLists.txt deleted file mode 100644 index 08eff8f6..00000000 --- a/src/api/service/system/requests/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -add_library(api_system_requests - name.cpp - version.cpp - chain.cpp - properties.cpp - ) - -target_link_libraries(api_system_requests - Boost::boost - ) diff --git a/src/api/service/system/requests/chain.cpp b/src/api/service/system/requests/chain.cpp deleted file mode 100644 index 4b85988c..00000000 --- a/src/api/service/system/requests/chain.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "api/service/system/requests/chain.hpp" - -namespace sgns::api::system::request { - - Chain::Chain(std::shared_ptr api) : api_(std::move(api)) { - BOOST_ASSERT(api_ != nullptr); - } - - outcome::result Chain::init( - const jsonrpc::Request::Parameters ¶ms) { - if (!params.empty()) { - throw jsonrpc::InvalidParametersFault("Method should not have params"); - } - return outcome::success(); - } - - outcome::result Chain::execute() { - return api_->getConfig()->chainType(); - } - -} // namespace sgns::api::system::request diff --git a/src/api/service/system/requests/chain.hpp b/src/api/service/system/requests/chain.hpp deleted file mode 100644 index d7d03722..00000000 --- a/src/api/service/system/requests/chain.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef SUPERGENIUS_API_SYSTEM_REQUEST_CHAIN -#define SUPERGENIUS_API_SYSTEM_REQUEST_CHAIN - -#include - -#include "api/service/system/system_api.hpp" -#include "outcome/outcome.hpp" - -namespace sgns::api::system::request { - - /** - * @brief Get the chain's type. Given as a string identifier - * @see - * https://github.com/w3f/PSPs/blob/psp-rpc-api/psp-002.md#system_chain - */ - class Chain final { - public: - Chain(const Chain &) = delete; - Chain &operator=(const Chain &) = delete; - - Chain(Chain &&) = default; - Chain &operator=(Chain &&) = default; - - explicit Chain(std::shared_ptr api); - ~Chain() = default; - - static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); - - outcome::result execute(); - - private: - std::shared_ptr api_; - }; - -} // namespace sgns::api::system::request - -#endif // SUPERGENIUS_API_SYSTEM_REQUEST_CHAIN diff --git a/src/api/service/system/requests/name.cpp b/src/api/service/system/requests/name.cpp deleted file mode 100644 index e5e77787..00000000 --- a/src/api/service/system/requests/name.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "api/service/system/requests/name.hpp" - -namespace sgns::api::system::request { - - Name::Name(std::shared_ptr api) : api_(std::move(api)) { - BOOST_ASSERT(api_ != nullptr); - } - - outcome::result Name::init(const jsonrpc::Request::Parameters ¶ms) { - if (!params.empty()) { - throw jsonrpc::InvalidParametersFault("Method should not have params"); - } - return outcome::success(); - } - - outcome::result Name::execute() { - // TODO(xDimon): Ensure if implementation is correct, and remove exception - throw jsonrpc::InternalErrorFault( - "Internal error: method is known, but not yet implemented"); - - return api_->getConfig()->name(); - } - -} // namespace sgns::api::system::request diff --git a/src/api/service/system/requests/name.hpp b/src/api/service/system/requests/name.hpp deleted file mode 100644 index c090c00b..00000000 --- a/src/api/service/system/requests/name.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef SUPERGENIUS_API_SYSTEM_REQUEST_NAME -#define SUPERGENIUS_API_SYSTEM_REQUEST_NAME - -#include - -#include "api/service/system/system_api.hpp" -#include "outcome/outcome.hpp" - -namespace sgns::api::system::request { - - /** - * @brief Get the node's implementation name - * @see https://github.com/w3f/PSPs/blob/psp-rpc-api/psp-002.md#system_name - */ - class Name final { - public: - Name(const Name &) = delete; - Name &operator=(const Name &) = delete; - - Name(Name &&) = default; - Name &operator=(Name &&) = default; - - explicit Name(std::shared_ptr api); - ~Name() = default; - - static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); - - outcome::result execute(); - - private: - std::shared_ptr api_; - }; - -} // namespace sgns::api::system::request - -#endif // SUPERGENIUS_API_SYSTEM_REQUEST_NAME diff --git a/src/api/service/system/requests/properties.cpp b/src/api/service/system/requests/properties.cpp deleted file mode 100644 index 104a991a..00000000 --- a/src/api/service/system/requests/properties.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "api/service/system/requests/properties.hpp" - -namespace sgns::api::system::request { - - outcome::result Properties::init( - const jsonrpc::Request::Parameters ¶ms) { - if (!params.empty()) { - throw jsonrpc::InvalidParametersFault("Method should not have params"); - } - return outcome::success(); - } - - outcome::result> Properties::execute() { - return api_->getConfig()->properties(); - } - -} // namespace sgns::api::system::request diff --git a/src/api/service/system/requests/properties.hpp b/src/api/service/system/requests/properties.hpp deleted file mode 100644 index e8d3e7d9..00000000 --- a/src/api/service/system/requests/properties.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef SUPERGENIUS_API_SYSTEM_REQUEST_PROPERTIES -#define SUPERGENIUS_API_SYSTEM_REQUEST_PROPERTIES - -#include - -#include "api/service/system/system_api.hpp" -#include "outcome/outcome.hpp" - -namespace sgns::api::system::request { - - /** - * @brief Get a custom set of properties as a JSON object, defined in the - * chain spec - * @see - * https://github.com/w3f/PSPs/blob/psp-rpc-api/psp-002.md#system_properties - */ - class Properties final { - public: - Properties(Properties const &) = delete; - Properties &operator=(Properties const &) = delete; - - Properties(Properties &&) = default; - Properties &operator=(Properties &&) = default; - - explicit Properties(std::shared_ptr api) - : api_(std::move(api)){}; - ~Properties() = default; - - outcome::result init(const jsonrpc::Request::Parameters ¶ms); - - outcome::result> execute(); - - private: - std::shared_ptr api_; - }; - -} // namespace sgns::api::system::request - -#endif // SUPERGENIUS_API_SYSTEM_REQUEST_PROPERTIES diff --git a/src/api/service/system/requests/version.cpp b/src/api/service/system/requests/version.cpp deleted file mode 100644 index ebe720b1..00000000 --- a/src/api/service/system/requests/version.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "api/service/system/requests/version.hpp" - -namespace sgns::api::system::request { - - Version::Version(std::shared_ptr api) : api_(std::move(api)) { - BOOST_ASSERT(api_ != nullptr); - } - - outcome::result Version::init( - const jsonrpc::Request::Parameters ¶ms) { - if (!params.empty()) { - throw jsonrpc::InvalidParametersFault("Method should not have params"); - } - return outcome::success(); - } - - outcome::result Version::execute() { - // TODO(xDimon): Need to replace hardcode by some config or generated code - return "0.0.1"; - } - -} // namespace sgns::api::system::request diff --git a/src/api/service/system/requests/version.hpp b/src/api/service/system/requests/version.hpp deleted file mode 100644 index b6e54440..00000000 --- a/src/api/service/system/requests/version.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef SUPERGENIUS_API_SYSTEM_REQUEST_VERSION -#define SUPERGENIUS_API_SYSTEM_REQUEST_VERSION - -#include - -#include "api/service/system/system_api.hpp" -#include "outcome/outcome.hpp" - -namespace sgns::api::system::request { - - /** - * @brief Get the node implementation's version. Should be a semver string - * @see https://github.com/w3f/PSPs/blob/psp-rpc-api/psp-002.md#system_version - */ - class Version final { - public: - Version(const Version &) = delete; - Version &operator=(const Version &) = delete; - - Version(Version &&) = default; - Version &operator=(Version &&) = default; - - explicit Version(std::shared_ptr api); - ~Version() = default; - - static outcome::result init( const jsonrpc::Request::Parameters ¶ms ); - - static outcome::result execute(); - -private: - std::shared_ptr api_; - }; - -} // namespace sgns::api::system::request - -#endif // SUPERGENIUS_API_SYSTEM_REQUEST_VERSION diff --git a/src/api/service/system/system_api.hpp b/src/api/service/system/system_api.hpp deleted file mode 100644 index 512afd1b..00000000 --- a/src/api/service/system/system_api.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SUPERGENIUS_API_SYSTEMAPI -#define SUPERGENIUS_API_SYSTEMAPI - -#include "application/configuration_storage.hpp" -#include "singleton/IComponent.hpp" - -namespace sgns::api { - - /// Auxiliary class that providing access for some app's parts over RPC - class SystemApi : public IComponent { - public: - ~SystemApi() override = default; - - virtual std::shared_ptr getConfig() - const = 0; - }; - -} // namespace sgns::api - -#endif // SUPERGENIUS_API_SYSTEMAPI diff --git a/src/api/service/system/system_jrpc_processor.cpp b/src/api/service/system/system_jrpc_processor.cpp deleted file mode 100644 index 3cf0b955..00000000 --- a/src/api/service/system/system_jrpc_processor.cpp +++ /dev/null @@ -1,33 +0,0 @@ - -#include "api/service/system/system_jrpc_processor.hpp" - -#include "api/jrpc/jrpc_method.hpp" -#include "api/service/system/requests/chain.hpp" -#include "api/service/system/requests/name.hpp" -#include "api/service/system/requests/properties.hpp" -#include "api/service/system/requests/version.hpp" - -namespace sgns::api::system { - - SystemJRpcProcessor::SystemJRpcProcessor(std::shared_ptr server, - std::shared_ptr api) - : api_{std::move(api)}, server_{std::move(server)} { - BOOST_ASSERT(api_ != nullptr); - BOOST_ASSERT(server_ != nullptr); - } - - template - using Handler = sgns::api::Method; - - void SystemJRpcProcessor::registerHandlers() { - server_->registerHandler("system_name", Handler(api_)); - - server_->registerHandler("system_version", Handler(api_)); - - server_->registerHandler("system_chain", Handler(api_)); - - server_->registerHandler("system_properties", - Handler(api_)); - } - -} // namespace sgns::api::system diff --git a/src/api/service/system/system_jrpc_processor.hpp b/src/api/service/system/system_jrpc_processor.hpp deleted file mode 100644 index 83b29063..00000000 --- a/src/api/service/system/system_jrpc_processor.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef SUPERGENIUS_API_SYSTEM_SYSTEMJRPCPROCESSOR -#define SUPERGENIUS_API_SYSTEM_SYSTEMJRPCPROCESSOR - -#include "api/jrpc/jrpc_processor.hpp" - -#include "api/jrpc/jrpc_server_impl.hpp" -#include "api/service/system/system_api.hpp" - -namespace sgns::api::system { - - class SystemJRpcProcessor : public JRpcProcessor { - public: - SystemJRpcProcessor(std::shared_ptr server, - std::shared_ptr api); - ~SystemJRpcProcessor() override = default; - - void registerHandlers() override; - - std::string GetName() override - { - return "SystemJRpcProcessor"; - } - - private: - std::shared_ptr api_; - std::shared_ptr server_; - }; - -} // namespace sgns::api::system -#endif // SUPERGENIUS_API_SYSTEM_SYSTEMJRPCPROCESSOR From 0b7b6bc90f524aeeda938fe35f37a10cc7912a69 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Mon, 19 Aug 2024 15:14:30 -0300 Subject: [PATCH 28/30] Removed `force_load` for Apple devices --- src/processing/CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/processing/CMakeLists.txt b/src/processing/CMakeLists.txt index 0bdfd7b7..313f6879 100644 --- a/src/processing/CMakeLists.txt +++ b/src/processing/CMakeLists.txt @@ -94,9 +94,7 @@ target_link_libraries(processing_service PRIVATE if(WIN32) target_link_options(processing_service PUBLIC /WHOLEARCHIVE:${MNN_LIBS}) -elseif(APPLE) - target_link_options(processing_service PUBLIC -force_load ${MNN_LIBS}) -else() +elseif(NOT APPLE) target_link_options(processing_service PUBLIC "-Wl,--whole-archive" ${MNN_LIBS} "-Wl,--no-whole-archive") endif() supergenius_install(processing_service) From a8ea8175e9a7a976ec6ebb2b7b5183cadc2ffe50 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 27 Aug 2024 08:58:33 -0300 Subject: [PATCH 29/30] Ported Apple toolchain to OSX --- build/OSX/CMakeLists.txt | 41 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/build/OSX/CMakeLists.txt b/build/OSX/CMakeLists.txt index 1c67e708..6827991c 100644 --- a/build/OSX/CMakeLists.txt +++ b/build/OSX/CMakeLists.txt @@ -1,35 +1,24 @@ -cmake_minimum_required(VERSION 3.12) - -# if on OSX Darwin system, build the OSX executables -if(NOT ${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin") - message(FATAL_ERROR "${CMAKE_HOST_SYSTEM_NAME} host system name does not match OSX Darwin - Please select the correct folder for configuring project") +cmake_minimum_required(VERSION 3.22) + +if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) + # set(_PLATFORM "MAC_UNIVERSAL" CACHE STRING "Setting the build for both x86_64 and arm64") + set(_PLATFORM "MAC" CACHE STRING "Setting the default build for x86_64") + + set(NAMED_LANGUAGE_SUPPORT OFF CACHE BOOL "Toolchain named language support parameter") + set(ENABLE_BITCODE OFF CACHE BOOL "Toolchain bitcode enable parameter") + set(ENABLE_ARC OFF CACHE BOOL "Toolchain enable arc parameter") + set(ENABLE_VISIBILITY ON CACHE BOOL "Toolchain visibility parameter") + set(ENABLE_STRICT_TRY_COMPILE OFF CACHE BOOL "Toolchain try_compile enable parameter") + set(PLATFORM ${_PLATFORM} CACHE STRING "Toolchain platform parameter") + set(DEPLOYMENT_TARGET "12.1" CACHE STRING "Minimum OSX version") + set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../apple.toolchain.cmake" CACHE STRING "Toolchain file") endif() -set(CMAKE_OSX_DEPLOYMENT_TARGET "12.1" CACHE STRING "Minimum OS X deployment version" FORCE) - -# Project -project(SuperGenius C CXX) +project(SuperGenius LANGUAGES C CXX) # include common compiler options include(../CommonCompilerOptions.cmake) -# Set OSX specific runtime options -set(CMAKE_OSX_ARCHITECTURES "x86_64") -set(CMAKE_MACOSX_RPATH 1) -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM "BOTH") -set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH TRUE) -set(CMAKE_IOS_INSTALL_COMBINED TRUE) - -# Assuming that xcode 12.0 is installed you most probably have ios sdk 14.0 or later installed (tested on Big Sur) -# if you don't set a deployment target it will be set the way you only get 64-bit builds -if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0) - # Temporarily fix the arm64 issues in CMake install-combined by excluding arm64 for simulator builds (needed for Apple Silicon...) - set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64") -endif() - -# Set toolchain file -set(CMAKE_TOOLCHAIN_FILE "${PROJECT_ROOT}/cmake/toolchain/cxx17.cmake") - # Set OS threading settings set(CMAKE_THREAD_LIBS_INIT "-lpthread") set(CMAKE_HAVE_THREADS_LIBRARY ON) From 8e888ee56bf04689ad17e19f91c3d968502c9db5 Mon Sep 17 00:00:00 2001 From: Eduardo Menges Mattje Date: Tue, 27 Aug 2024 11:12:51 -0300 Subject: [PATCH 30/30] CI fixes --- .github/workflows/cmake.yml | 13 +++++--- build/iOS/CMakeLists.txt | 5 +-- src/account/UTXOTxParameters.hpp | 2 +- src/base/blob.hpp | 5 +-- src/primitives/common.hpp | 9 +++-- src/processing/CMakeLists.txt | 33 +++++++++++-------- .../processing_processor_mnn_posenet.cpp | 4 +-- .../authority/impl/schedule_node.hpp | 2 +- src/verification/finality/voter_set.hpp | 1 + 9 files changed, 42 insertions(+), 32 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 502a6e1a..65f87b74 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -55,7 +55,7 @@ jobs: - name: Thirdparty Compile working-directory: ${{github.workspace}}/thirdparty/build/Windows/Release - run: cmake --build . --config Release + run: cmake --build . --config Release -j - name: Create Build Directory run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/Windows/Release @@ -66,7 +66,7 @@ jobs: - name: Compile working-directory: ${{github.workspace}}/SuperGenius/build/Windows/Release - run: cmake --build . --config Release + run: cmake --build . --config Release -j - name: Create install directory working-directory: ${{github.workspace}}/SuperGenius/build/Windows/Release @@ -528,6 +528,11 @@ jobs: path: 'SuperGenius' submodules: "recursive" + - name: Install Ninja + run: | + brew install ccache ninja + echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV + - name: Install bindgen run: cargo install cbindgen @@ -557,7 +562,7 @@ jobs: - name: Thirdparty Compile working-directory: ${{github.workspace}}/thirdparty/build/iOS/Release - run: make -j8 + run: cmake --build . -j --config Release - name: Create Build Directory run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/iOS/Release @@ -568,7 +573,7 @@ jobs: - name: Compile working-directory: ${{github.workspace}}/SuperGenius/build/iOS/Release - run: make -j8 + run: cmake --build . -j --config Release - name: Install working-directory: ${{github.workspace}}/SuperGenius/build/iOS/Release diff --git a/build/iOS/CMakeLists.txt b/build/iOS/CMakeLists.txt index 504635f7..fea8120f 100644 --- a/build/iOS/CMakeLists.txt +++ b/build/iOS/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.15) +cmake_minimum_required(VERSION 3.22) if(POLICY CMP0025) # NEW: report OS X version of Clang as "AppleClang" @@ -49,9 +49,6 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) set(FORCE_MULTILE ON) set(MULTIPLE_OPTION "-Xlink=-force:multiple") -# Set extra compiler flags -set(EXTRA_CXX_FLAGS -std=c++17) - # Set custom subfolder for ABI set(ABI_SUBFOLDER_NAME "/aarch64") diff --git a/src/account/UTXOTxParameters.hpp b/src/account/UTXOTxParameters.hpp index 161d91f4..0789ee5a 100644 --- a/src/account/UTXOTxParameters.hpp +++ b/src/account/UTXOTxParameters.hpp @@ -124,7 +124,7 @@ namespace sgns { break; } - InputUTXOInfo curr_input{ utxo.GetTxID(), utxo.GetOutputIdx(), std::move( signature ) }; + InputUTXOInfo curr_input{ utxo.GetTxID(), utxo.GetOutputIdx(), signature }; remain -= static_cast( utxo.GetAmount() ); inputs_.push_back( curr_input ); diff --git a/src/base/blob.hpp b/src/base/blob.hpp index 53622685..78fb2caf 100644 --- a/src/base/blob.hpp +++ b/src/base/blob.hpp @@ -39,8 +39,9 @@ namespace sgns::base { * @brief constructor enabling initializer list * @param l initializer list */ - explicit Blob(const std::array &l) { - std::copy(l.begin(), l.end(), this->begin()); + explicit constexpr Blob( const std::array &l ) + { + std::copy( l.begin(), l.end(), this->begin() ); } /** diff --git a/src/primitives/common.hpp b/src/primitives/common.hpp index 8a7a5683..9ee64bfd 100644 --- a/src/primitives/common.hpp +++ b/src/primitives/common.hpp @@ -1,5 +1,3 @@ - - #ifndef SUPERGENIUS_SRC_PRIMITIVES_COMMON_HPP #define SUPERGENIUS_SRC_PRIMITIVES_COMMON_HPP @@ -19,10 +17,11 @@ namespace sgns::primitives { // (BlockInfo, Prevote, Precommit, PrimaryPropose) template struct BlockInfoT : public boost::equality_comparable> { - BlockInfoT() = default; + constexpr BlockInfoT() = default; - BlockInfoT(const BlockNumber &n, const BlockHash &h) - : block_number(n), block_hash(h) {} + constexpr BlockInfoT( BlockNumber n, BlockHash h ) : block_number( n ), block_hash( h ) + { + } BlockNumber block_number{}; BlockHash block_hash; diff --git a/src/processing/CMakeLists.txt b/src/processing/CMakeLists.txt index 313f6879..d764ff26 100644 --- a/src/processing/CMakeLists.txt +++ b/src/processing/CMakeLists.txt @@ -57,18 +57,23 @@ target_include_directories(processing_service if(APPLE) set(XCFRAMEWORK_PATH "${_THIRDPARTY_BUILD_DIR}/moltenvk/build/lib/MoltenVK.xcframework") - target_link_libraries(processing_service PRIVATE - "-framework CoreFoundation" - "-framework CoreGraphics" - "-framework CoreServices" - "-framework IOKit" - "-framework IOSurface" - "-framework Metal" - "-framework QuartzCore" - "-framework AppKit" -# ${XCFRAMEWORK_PATH} - "-framework Foundation" - ) + target_link_libraries(processing_service PRIVATE + "-framework CoreFoundation" + "-framework CoreGraphics" + "-framework CoreServices" + "-framework IOKit" + "-framework IOSurface" + "-framework Metal" + "-framework QuartzCore" + + # ${XCFRAMEWORK_PATH} + "-framework Foundation" + ) + + if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + target_link_libraries(processing_service PRIVATE + "-framework AppKit") + endif() endif() target_link_libraries(processing_service PRIVATE @@ -94,7 +99,9 @@ target_link_libraries(processing_service PRIVATE if(WIN32) target_link_options(processing_service PUBLIC /WHOLEARCHIVE:${MNN_LIBS}) -elseif(NOT APPLE) +elseif(APPLE) + target_link_options(processing_service PUBLIC -force_load ${MNN_LIBS}) +else() target_link_options(processing_service PUBLIC "-Wl,--whole-archive" ${MNN_LIBS} "-Wl,--no-whole-archive") endif() supergenius_install(processing_service) diff --git a/src/processing/processors/processing_processor_mnn_posenet.cpp b/src/processing/processors/processing_processor_mnn_posenet.cpp index d4e09351..8e9fea9c 100644 --- a/src/processing/processors/processing_processor_mnn_posenet.cpp +++ b/src/processing/processors/processing_processor_mnn_posenet.cpp @@ -111,8 +111,8 @@ namespace sgns::processing } std::unique_ptr MNN_PoseNet::MNNProcess( const std::vector &imgdata, - int origwidth, - int origheight, + const int origwidth, + const int origheight, const std::string &filename ) { std::vector ret_vect( imgdata ); diff --git a/src/verification/authority/impl/schedule_node.hpp b/src/verification/authority/impl/schedule_node.hpp index f47d004e..42a794c1 100644 --- a/src/verification/authority/impl/schedule_node.hpp +++ b/src/verification/authority/impl/schedule_node.hpp @@ -27,7 +27,7 @@ namespace sgns::authority { std::shared_ptr makeDescendant( const primitives::BlockInfo &block, bool finalized = false); - const primitives::BlockInfo block; + const primitives::BlockInfo block{}; std::weak_ptr parent; std::vector> descendants; diff --git a/src/verification/finality/voter_set.hpp b/src/verification/finality/voter_set.hpp index dda33cf1..67de3340 100644 --- a/src/verification/finality/voter_set.hpp +++ b/src/verification/finality/voter_set.hpp @@ -4,6 +4,7 @@ #define SUPERGENIUS_SRC_VERIFICATION_FINALITY_VOTER_SET_HPP #include +#include #include "verification/finality/common.hpp"