|
17 | 17 | //! A simple example
|
18 | 18 |
|
19 | 19 | use polkadot_service::{kusama_runtime as ksm_runtime, Block};
|
20 |
| -use substrate_archive::{backend, Archive, chain_traits::{HeaderBackend as _}, twox_128, StorageKey}; |
| 20 | +use substrate_archive::{backend, Archive, twox_128, StorageKey}; |
21 | 21 |
|
22 | 22 | pub fn main() {
|
23 |
| - let stdout = match option_env!("RUST_LOG").map(|o| o.to_lowercase()).as_deref() { |
24 |
| - Some("error") => log::LevelFilter::Error, |
25 |
| - Some("warn") => log::LevelFilter::Warn, |
26 |
| - Some("info") => log::LevelFilter::Info, |
27 |
| - Some("debug") => log::LevelFilter::Debug, |
28 |
| - Some("trace") => log::LevelFilter::Trace, |
29 |
| - _ => log::LevelFilter::Error, |
30 |
| - }; |
31 |
| - substrate_archive::init_logger(stdout, log::LevelFilter::Info); |
| 23 | + |
| 24 | + substrate_archive::init_logger(log::LevelFilter::Warn, log::LevelFilter::Info); |
32 | 25 |
|
| 26 | + // Open a RocksDB Database for the node we want to index |
33 | 27 | let path = std::path::PathBuf::from("/home/insipx/.local/share/polkadot/chains/ksmcc4/db");
|
34 | 28 | let db =
|
35 | 29 | backend::open_database::<Block>(path.as_path(), 8192).unwrap();
|
36 | 30 |
|
| 31 | + // get spec/runtime from node library |
37 | 32 | let spec = polkadot_service::chain_spec::kusama_config().unwrap();
|
38 | 33 | let client =
|
39 | 34 | backend::client::<Block, ksm_runtime::RuntimeApi, polkadot_service::KusamaExecutor, _>(
|
40 | 35 | db, spec,
|
41 | 36 | )
|
42 | 37 | .unwrap();
|
43 | 38 |
|
44 |
| - let info = client.info(); |
45 |
| - println!("{:?}", info); |
46 |
| - |
47 | 39 | // create the keys we want to query storage for
|
48 | 40 | let system_key = twox_128(b"System").to_vec();
|
49 |
| - let events_key = twox_128(b"Events").to_vec(); |
50 | 41 | let accounts_key = twox_128(b"Account").to_vec();
|
51 |
| - |
52 |
| - let democracy_key = twox_128(b"Democracy").to_vec(); |
53 |
| - let public_proposal_count = twox_128(b"PublicPropCount").to_vec(); |
54 |
| - let public_proposals = twox_128(b"PublicProps").to_vec(); |
55 |
| - |
56 | 42 | let mut keys = Vec::new();
|
57 | 43 |
|
58 | 44 | let mut system_accounts = system_key.clone();
|
59 | 45 | system_accounts.extend(accounts_key);
|
60 |
| - let mut system_events = system_key.clone(); |
61 |
| - system_events.extend(events_key); |
62 |
| - let mut democracy_public_proposal_count = democracy_key.clone(); |
63 |
| - democracy_public_proposal_count.extend(public_proposal_count); |
64 |
| - let mut democracy_proposals = democracy_key.clone(); |
65 |
| - democracy_proposals.extend(public_proposals); |
66 | 46 |
|
67 | 47 | keys.push(StorageKey(system_accounts));
|
68 |
| - keys.push(StorageKey(system_events)); |
69 |
| - keys.push(StorageKey(democracy_public_proposal_count)); |
70 |
| - keys.push(StorageKey(democracy_proposals)); |
71 | 48 |
|
72 |
| - // run until we want to exit (Ctrl-C) |
| 49 | + // initialize the Archive runtime |
73 | 50 | let archive = Archive::init::<ksm_runtime::Runtime, _>(
|
74 | 51 | client,
|
75 | 52 | "ws://127.0.0.1:9944".to_string(),
|
76 | 53 | keys.as_slice(),
|
77 | 54 | None
|
78 | 55 | ).unwrap();
|
79 | 56 |
|
80 |
| - Archive::block_until_stopped(); |
| 57 | + // run indefinitely |
| 58 | + Archive::block_until_stopped().unwrap(); |
81 | 59 | }
|
0 commit comments