Storage chains: serve transactions over IPFS/bitswap (#7963)

* IPFS server for transactions

* Style

* Indent

* Log message

* CLI option

* Apply suggestions from code review

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* Style

* Style

* Minor fixes

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
This commit is contained in:
Arkadiy Paronyan
2021-02-03 08:14:23 +01:00
committed by GitHub
parent 3628998d3c
commit e905c9a92d
19 changed files with 574 additions and 22 deletions
+11
View File
@@ -95,6 +95,17 @@ pub trait BlockBackend<Block: BlockT> {
/// Get block hash by number.
fn block_hash(&self, number: NumberFor<Block>) -> sp_blockchain::Result<Option<Block::Hash>>;
/// Get single extrinsic by hash.
fn extrinsic(
&self,
hash: &Block::Hash,
) -> sp_blockchain::Result<Option<<Block as BlockT>::Extrinsic>>;
/// Check if extrinsic exists.
fn have_extrinsic(&self, hash: &Block::Hash) -> sp_blockchain::Result<bool> {
Ok(self.extrinsic(hash)?.is_some())
}
}
/// Provide a list of potential uncle headers for a given block.
+7
View File
@@ -386,6 +386,13 @@ impl<Block: BlockT> blockchain::Backend<Block> for Blockchain<Block> {
fn children(&self, _parent_hash: Block::Hash) -> sp_blockchain::Result<Vec<Block::Hash>> {
unimplemented!()
}
fn extrinsic(
&self,
_hash: &Block::Hash,
) -> sp_blockchain::Result<Option<<Block as BlockT>::Extrinsic>> {
unimplemented!("Not supported by the in-mem backend.")
}
}
impl<Block: BlockT> blockchain::ProvideCache<Block> for Blockchain<Block> {