Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Memory Information to Runtime Benchmarks #317

Open
shawntabrizi opened this issue Jun 3, 2021 · 8 comments
Open

Add Memory Information to Runtime Benchmarks #317

shawntabrizi opened this issue Jun 3, 2021 · 8 comments
Labels
T1-FRAME This PR/Issue is related to core FRAME, the framework.

Comments

@shawntabrizi
Copy link
Member

It would be nice to see the maximum amount of memory used by an extrinsic during a benchmark.

This could help us detect and catch problems like what happened with elections earlier.

@shawntabrizi
Copy link
Member Author

How would we even do this? is there a way to probe or know when we are using the most memory?

@kianenigma
Copy link
Contributor

I had a good chat about this with @pepyakin. His explanations where clear and shed some light into what we need to look out for. I will do a small recap, but maybe he can answer your question as well ^^.

We have two limits to look out for:

  1. The heap pages. This is the total number of pages that we can allocated. We currently limit this to a number between 1 and 65565 (which is the absolute maximum of any wasm execution). Given that the native runtime is at the verge of being tossed, I don't want to even consider it as a backup here. This number basically means all the memory that you use at any point in time. I presume profiling in native can actually be helpful here, as the memory usage is the same.

This number is configurable, currently from the client side and the runtime, and bumping it is not generally frowned upon.

  1. Allocator limit: this number is currently hardcoded to 16MiB, and it means that no single allocation can be larger than this amount. Of course, what is an allocation depends on the data type, and how often rustc allocates it, and how you interact with it (e.g. do you grow it dynamically or use ::with_capacity from the get go). But as a rule of thumb, you can assume that for a single Vec<u8>, it can never contain more than 16 * 1024 * 1024 elements, and inserting the 16 * 1024 * 1024 + 1 will almost certainly fail.

We have never increased this number, and doing so is frowned upon since it will have performance compromises, but it is possible in cases of emergency.

All in all, we should also benchmark operations for memory, and actually have more strict measures than weight for it in place. Particularly for hooks, if the weight of a hook goes beyond the limit it is just slow, but if it ever allocates too much it will panic.


Other than a laborious profiling via native that I recommended, I think it should be possible to put some traces in FreeingBumpAllocator, and for instance make it print its maximum usage upon Drop? I think then we should get a clear number out of a single runtime api call.

@kianenigma
Copy link
Contributor

kianenigma commented Jun 4, 2021

I tried something like this, it seems to be inaccurate:

diff --git a/primitives/allocator/Cargo.toml b/primitives/allocator/Cargo.toml
index 1c38cbbb9..39f2a077e 100644
--- a/primitives/allocator/Cargo.toml
+++ b/primitives/allocator/Cargo.toml
@@ -21,7 +21,8 @@ log = { version = "0.4.11", optional = true }
 thiserror = { version = "1.0.21", optional = true }
 
 [features]
-default = [ "std" ]
+default = [ "std", "track-maximum" ]
+track-maximum = []
 std = [
 	"sp-std/std",
 	"sp-core/std",
diff --git a/primitives/allocator/src/freeing_bump.rs b/primitives/allocator/src/freeing_bump.rs
index e1afe7cec..8494b8167 100644
--- a/primitives/allocator/src/freeing_bump.rs
+++ b/primitives/allocator/src/freeing_bump.rs
@@ -309,6 +309,17 @@ pub struct FreeingBumpHeapAllocator {
 	free_lists: FreeLists,
 	total_size: u32,
 	poisoned: bool,
+	#[cfg(feature = "track-maximum")]
+	maximum_total_size: u32,
+}
+
+sp_std::if_std! {
+	#[cfg(feature = "track-maximum")]
+	impl Drop for FreeingBumpHeapAllocator {
+		fn drop(&mut self) {
+			log::debug!(target: "wasm-heap", "dropping allocator, maximum allocated amount {} bytes.", self.maximum_total_size);
+		}
+	}
 }
 
 impl FreeingBumpHeapAllocator {
@@ -318,12 +329,14 @@ impl FreeingBumpHeapAllocator {
 	///
 	/// - `heap_base` - the offset from the beginning of the linear memory where the heap starts.
 	pub fn new(heap_base: u32) -> Self {
-		let aligned_heap_base = (dbg!(heap_base) + ALIGNMENT - 1) / ALIGNMENT * ALIGNMENT;
+		let aligned_heap_base = (heap_base + ALIGNMENT - 1) / ALIGNMENT * ALIGNMENT;
 
 		FreeingBumpHeapAllocator {
 			bumper: aligned_heap_base,
 			free_lists: FreeLists::new(),
 			total_size: 0,
+			#[cfg(feature = "track-maximum")]
+			maximum_total_size: 0,
 			poisoned: false,
 		}
 	}
@@ -384,6 +397,11 @@ impl FreeingBumpHeapAllocator {
 		self.total_size += order.size() + HEADER_SIZE;
 		trace!("Heap size is {} bytes after allocation", self.total_size);
 
+		#[cfg(feature = "track-maximum")]
+		if self.total_size > self.maximum_total_size {
+			self.maximum_total_size = self.total_size
+		}
+
 		bomb.disarm();
 		Ok(Pointer::new(header_ptr + HEADER_SIZE))
 	}
@@ -432,7 +450,7 @@ impl FreeingBumpHeapAllocator {
 	/// Returns an `Error::AllocatorOutOfSpace` if the operation
 	/// would exhaust the heap.
 	fn bump(bumper: &mut u32, size: u32, heap_end: u32) -> Result<u32, Error> {
-		if dbg!(*bumper + size) > dbg!(heap_end) {
+		if *bumper + size > heap_end {
 			return Err(Error::AllocatorOutOfSpace);
 		}
 
diff --git a/primitives/npos-elections/src/pjr.rs b/primitives/npos-elections/src/pjr.rs
index 290110b14..843c0e79f 100644
--- a/primitives/npos-elections/src/pjr.rs
+++ b/primitives/npos-elections/src/pjr.rs
@@ -600,7 +600,6 @@ mod tests {
 				unexpected_failures.push(t);
 			}
 		}
-		dbg!(&unexpected_successes, &unexpected_failures);
 		assert!(unexpected_failures.is_empty() && unexpected_successes.is_empty());
 
 		high_bound

but it might work. The result was just a bit odd. executed the same command that got OOM-ed with 64MB heap pages, and then I ran it with ^^ this path + 128MB heap pages, and then it said that the max total size was 30MB 🤔

@bkchr
Copy link
Member

bkchr commented Jun 4, 2021

This number is configurable, currently from the client side and the runtime, and bumping it is not generally frowned upon.

1. Allocator limit: this number is currently hardcoded to 16MiB, and it means that **no single allocation** can be larger than this amount. Of course, what is an allocation depends on the data type, and how often rustc allocates it, and how you interact with it (e.g. do you grow it dynamically or use `::with_capacity` from the get go). But as a rule of thumb, you can assume that for a single `Vec<u8>`, it can never contain more than `16 * 1024 * 1024` elements, and inserting the `16 * 1024 * 1024 + 1` will almost certainly fail.

This is something that would already be detected by the benchmarks anyway, because it doesn't change with the maximum heap size.

@bkchr
Copy link
Member

bkchr commented Jun 4, 2021

Regarding checking that no transaction ever consumes all the memory, I already thought about this last week.

IMHO the simple solution to that is:

  1. Collect all transactions being constructed by the benchmark that are at the maximum of the input.
  2. Create a block, attach these transactions and try to import this. This should be done by the normal import workflow.

In this way we can check that any transaction never eats up all the memory.

@shawntabrizi
Copy link
Member Author

@coriolinus

@coriolinus
Copy link

It's not particularly hard to wrap the global allocator to emit events or collect statistics about allocations and deallocations. There's an example here. The hard part will be doing the rest of the work to integrate it into the benchmarks collection.

@kianenigma
Copy link
Contributor

I tried something like this, it seems to be inaccurate:

diff --git a/primitives/allocator/Cargo.toml b/primitives/allocator/Cargo.toml
index 1c38cbbb9..39f2a077e 100644
--- a/primitives/allocator/Cargo.toml
+++ b/primitives/allocator/Cargo.toml
@@ -21,7 +21,8 @@ log = { version = "0.4.11", optional = true }
 thiserror = { version = "1.0.21", optional = true }
 
 [features]
-default = [ "std" ]
+default = [ "std", "track-maximum" ]
+track-maximum = []
 std = [
 	"sp-std/std",
 	"sp-core/std",
diff --git a/primitives/allocator/src/freeing_bump.rs b/primitives/allocator/src/freeing_bump.rs
index e1afe7cec..8494b8167 100644
--- a/primitives/allocator/src/freeing_bump.rs
+++ b/primitives/allocator/src/freeing_bump.rs
@@ -309,6 +309,17 @@ pub struct FreeingBumpHeapAllocator {
 	free_lists: FreeLists,
 	total_size: u32,
 	poisoned: bool,
+	#[cfg(feature = "track-maximum")]
+	maximum_total_size: u32,
+}
+
+sp_std::if_std! {
+	#[cfg(feature = "track-maximum")]
+	impl Drop for FreeingBumpHeapAllocator {
+		fn drop(&mut self) {
+			log::debug!(target: "wasm-heap", "dropping allocator, maximum allocated amount {} bytes.", self.maximum_total_size);
+		}
+	}
 }
 
 impl FreeingBumpHeapAllocator {
@@ -318,12 +329,14 @@ impl FreeingBumpHeapAllocator {
 	///
 	/// - `heap_base` - the offset from the beginning of the linear memory where the heap starts.
 	pub fn new(heap_base: u32) -> Self {
-		let aligned_heap_base = (dbg!(heap_base) + ALIGNMENT - 1) / ALIGNMENT * ALIGNMENT;
+		let aligned_heap_base = (heap_base + ALIGNMENT - 1) / ALIGNMENT * ALIGNMENT;
 
 		FreeingBumpHeapAllocator {
 			bumper: aligned_heap_base,
 			free_lists: FreeLists::new(),
 			total_size: 0,
+			#[cfg(feature = "track-maximum")]
+			maximum_total_size: 0,
 			poisoned: false,
 		}
 	}
@@ -384,6 +397,11 @@ impl FreeingBumpHeapAllocator {
 		self.total_size += order.size() + HEADER_SIZE;
 		trace!("Heap size is {} bytes after allocation", self.total_size);
 
+		#[cfg(feature = "track-maximum")]
+		if self.total_size > self.maximum_total_size {
+			self.maximum_total_size = self.total_size
+		}
+
 		bomb.disarm();
 		Ok(Pointer::new(header_ptr + HEADER_SIZE))
 	}
@@ -432,7 +450,7 @@ impl FreeingBumpHeapAllocator {
 	/// Returns an `Error::AllocatorOutOfSpace` if the operation
 	/// would exhaust the heap.
 	fn bump(bumper: &mut u32, size: u32, heap_end: u32) -> Result<u32, Error> {
-		if dbg!(*bumper + size) > dbg!(heap_end) {
+		if *bumper + size > heap_end {
 			return Err(Error::AllocatorOutOfSpace);
 		}
 
diff --git a/primitives/npos-elections/src/pjr.rs b/primitives/npos-elections/src/pjr.rs
index 290110b14..843c0e79f 100644
--- a/primitives/npos-elections/src/pjr.rs
+++ b/primitives/npos-elections/src/pjr.rs
@@ -600,7 +600,6 @@ mod tests {
 				unexpected_failures.push(t);
 			}
 		}
-		dbg!(&unexpected_successes, &unexpected_failures);
 		assert!(unexpected_failures.is_empty() && unexpected_successes.is_empty());
 
 		high_bound

but it might work. The result was just a bit odd. executed the same command that got OOM-ed with 64MB heap pages, and then I ran it with ^^ this path + 128MB heap pages, and then it said that the max total size was 30MB 🤔

I implemented this here paritytech/substrate#9291

The issue was the I was confusing total_size and bumper. The latter is the more important variable to monitor.

@juangirini juangirini transferred this issue from paritytech/substrate Aug 24, 2023
@the-right-joyce the-right-joyce added T1-FRAME This PR/Issue is related to core FRAME, the framework. and removed T1-runtime labels Aug 25, 2023
claravanstaden pushed a commit to Snowfork/polkadot-sdk that referenced this issue Dec 8, 2023
* Benchmarks for dot-app pallet

* Benchmarks for erc20-app pallet

* Benchmarks for eth-app pallet

* Generate WeightInfo for dot-app, erc20-app, eth-app
helin6 pushed a commit to boolnetwork/polkadot-sdk that referenced this issue Feb 5, 2024
* Move manual seal node template under a feature flag

* Fix feature propogation

* Fix tests

* [WIP] Log GA-generated contract bytecode for debugging

* [WIP] Comment out middle steps for faster debugging

* Switch to dockerized truffle build

* [WIP] Try a different solidity version

* Remove debug GA workflow code

* Remove bytecode match check in tests

* Fix tests due to solc update
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 26, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 27, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
jonathanudd pushed a commit to jonathanudd/polkadot-sdk that referenced this issue Apr 10, 2024
* RPC for DummyOrdered

* add test for RPC

* proof returned by RPC is Vec<<Vec<u8>>>.encode()

* retrieval -> receiving

* bp-runtime crate

* bp-runtime supports no_std

* cargo fmt --all

* jsonrpc_core::BoxFuture

* Update modules/message-lane/rpc/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* messageLane_ prefix for RPC methods

* Update primitives/runtime/Cargo.toml

Co-authored-by: Hernando Castano <[email protected]>

* Update primitives/runtime/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

* Update modules/message-lane/rpc/src/lib.rs

Co-authored-by: Hernando Castano <[email protected]>

Co-authored-by: Hernando Castano <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T1-FRAME This PR/Issue is related to core FRAME, the framework.
Projects
Status: Backlog
Development

No branches or pull requests

6 participants