Questions tagged [offchain]
The offchain tag has no usage guidance.
34 questions
0
votes
1
answer
21
views
Why Off-chain worker does not deduct DispatchError in Substrate?
I am trying Substrate official off-chain example. I am throwing a DispatchError in my extrinsic.
#[pallet::call_index(0)]
#[pallet::weight({0})]
pub fn submit_price(origin: OriginFor&...
0
votes
0
answers
18
views
Not able to submit multiple signed transactions through off-chain worker
I have to submit 2 signed extrinsics through off-chain worker. The code structure of my off-chain worker is like this:
fn offchain_worker(block_number: BlockNumberFor<T>) {
if !...
0
votes
0
answers
25
views
Is there e2e testing framework/example for Substrate solo chain?
I am working on a live solo chain. I have to test a scenario where I want to hit HTTP API through off chain-worker. Unfortunately it's not possible to test in mock environment.
We can take an example ...
4
votes
1
answer
54
views
Is there a way to use a crate that depends on the `std` in substrate OCW?
from what I've learned so far, the OCW is designed specifically for executing heavy and time-consuming computations outside of the runtime. As the OCW is not a part of runtime/wasm, I guess the OCW ...
0
votes
0
answers
27
views
How to send HTTP POST request using Substrate Offchain worker
I am using Substrate official example to send HTTP POST request, which is mentioned here https://docs.substrate.io/reference/how-to-guides/offchain-workers/offchain-http-requests/#read-and-submit-the-...
2
votes
1
answer
170
views
How can I create OCW that won't activates every block, but will activates only when I call function that it represents?
I wanna create OCW that will send a http request to the API and get the response and use this response in runtime code to call extrinsic with this data. This OCW should triggers only when I want to ...
3
votes
1
answer
92
views
Offchain indexing storage overwrites during forks
We are using offchain indexing to store some value that will be read in offchain worker .
The keys that we are using to store data via offchain indexing is as following:
key = some_prefix + ...
0
votes
0
answers
66
views
How to execute smart contract from offchain-worker?
Would it be possible to execute smart contract call from an offchain-worker, either using ink! or pallet-contracts?
Can someone please help me to provide the solution? is there any example?
2
votes
0
answers
46
views
Proof-of-Work Substrate Chain with Multiple Validators
I'm working on a Proof-of-Work (POW) substrate chain. Assuming we have four validators, all of which have enabled on-chain workers (OCW), is it accurate to state that each validator's OCW fetches data ...
3
votes
1
answer
84
views
How to use FixedU128?
I'm fetching floating value in offchain worker though lite-json.
Json data:
{
"price": 0.5
}
Here is the implementation to fetch the price:
let price_str = match obj.clone() {
...
4
votes
1
answer
134
views
Facing issue in adding offchain worker
I'm using pow substrate chain.
I'm running 3 validators by using these commands:
For bob
./target/release/node-template \
--base-path /tmp/bob \
--chain local \
--bob \
--port 30335 \
--rpc-port 9944 \...
1
vote
0
answers
32
views
offchain worker choose key to sign and send
I have multiple keys in my node storage with offchain worker running, there are currently 2 ways to sign and send transactions, it is done either for all of the keys stored locally, or 1 unspecified ...
1
vote
1
answer
86
views
How to use Offchain Workers to create HTTP POST requests with JSON-RPC body?
Too my knowledge there are no guides on how to write HTTP POST requests to a JSON-RPC API with http utilities that are available to Substrate offchain workers. What I understand currently is that the ...
3
votes
0
answers
100
views
sending an http request in unit tests?
I'm trying to arrange some unit tests for a local http server connectivity my node communicates with.
While the node has no troubles while sending requests, I face difficulties trying to build basic ...
3
votes
0
answers
22
views
Offchain Storage lock vs compare-set/mutate function
While using offchain workers when do we want to use a StorageLock and when would we want to use a mutate function on StorageValueRef since both of them are kind of lock on db.
2
votes
1
answer
97
views
AccountId in offchain worker
I'm working on Substrate based project. In the project, each blockchain validator has an offchain worker. author_insertKey() is used to set up a key so the offchain worker can sign transactions. Each ...
2
votes
1
answer
47
views
can't use BTreeMap with custom key struct for offchain Local Storage
I'm trying to use sp_std::collections::btree_map::BTreeMap for offchain worker Local Storage.
While
let foo = StorageValueRef::persistent(b"bar::foo");
foo.get::<BTreeMap<u32, u32>&...
4
votes
2
answers
213
views
Read a value from offchain storage of a node
I want to read a single value from OffchainStorage of a live substrate node. Is it possible? Assume I can not use localStorageGet rpc request because it is an unsafe rpc.
7
votes
2
answers
216
views
How to mint offchain NFT in pallet_nfts
I want to try out offchain minting feature in pallet_nfts.
This extrinsic nfts.mintPreSigned(mintData, signature, signer) should be used to claim the NFT as a final step. Before that, mintData ...
0
votes
1
answer
62
views
How to enable off-chain workers for parachain via command line?
There is no any logs and off-chain workers does not work by default.
How to specify to enable workers for parachain via command?
0
votes
0
answers
75
views
offchain indexing for large files
I'm new to the project and currently working on a pallet, which is supposed to deal with large files offchain. Pallet, offchain indexing and the offchain worker are all working fine, still I get "...
2
votes
1
answer
119
views
Working up-to-date complete source code for offchain workers?
Hello Substrate community
I've been trying to integrate an offchain worker capable of API calls on top of an existing Substrate cluster of 3 nodes I already have up and running successfully (based on ...
3
votes
1
answer
115
views
What is the best way to add additional libp2p protocols to Substrate client?
We want to reuse the clients libp2p instance for receiving threshold signature shares directly from our users, for key resharing/rotation as validators join/leave the active validator set, ...
3
votes
3
answers
161
views
What is KeyTypeId, and how to use it?
When I made use of an offchain signed extrinsic to send a transaction to a chain, I copied a snippet from others, which is like this:
use sp_core::crypto::KeyTypeId;
pub const KEY_TYPE: KeyTypeId = ...
2
votes
0
answers
97
views
Using a substrate crate for a standard rust project
I just discovered substrate. I would like to use, as a dependency a substrate crate which uses sp_io and sp_runtime offchain feature.
The naive code I wrote fails because of "Externalities" ...
2
votes
1
answer
99
views
How to generate key pair in pallet or on offchain work
I received a task which is generating key pair in pallet on chain logic. I know that I should import sp_core crate. I import it like this: "use sp_core::Pair;" This line was written at the ...
4
votes
2
answers
91
views
Offchain workers in parachain
On a parachain (Substrate polkadot-v0.9.20 branch), I am trying to trigger some offchain tasks using an offchain worker in my pallet, but the task is not triggered. I checked that the on_finalize hook ...
14
votes
0
answers
94
views
Outbound network traffic linearly growing with offchain protocol and recommendations for handling traffic growth
Issue
We are experiencing a behaviour on our standalone/parachain node where the Network Bps on our cloud provider linearly increases throughout the lifecycle of our protocol. The increase continues ...
9
votes
1
answer
71
views
Is there any way to get all the key/value pairs together from sc_client_db::offchain::LocalStorage?
I can see we have the option to get the values by using their keys one by one using get(), but is there any way to get all the pairs together wrapped in an iterator so that we don't need to hit the ...
6
votes
2
answers
140
views
How to parse/match a specific frame_system event?
From the following function I can read the frame_system events:
let events = frame_system::Pallet::<T>::read_events_no_consensus();
the above provides me the following example array:
...
6
votes
1
answer
149
views
How to extract data from Offchain storage in client-side?
I'm trying to access data that I'm storing through the RPC off-chain endpoint.
Is there any way to get the instance of off-chain storage in service.rs through which we can extract that has been ...
2
votes
1
answer
72
views
Off-chain DB indexing example
Where can I find Tomasz Drwięga Off-chain DB indexing example, implementing the following runtime function?
fn on_finalize(_n: BlockNumberFor<T>){}
TIA
5
votes
2
answers
132
views
How to avoid multiple OCWs duplicating work?
We are running 2 OCWs each in separate instances and we have an extrinsic which mutates a storage in runtime which is done twice from the 2 OCWs but we want only one OCW to sign. How to do that?
For ...
12
votes
2
answers
697
views
How to verify a signature in a Pallet?
I have a Pallet that should verify a signature for some input data and a specific public key.
It looks like this:
fn verify(_: OriginFor<T>, data: Vec<u8>, sig: ???, from: ???)
Is this ...