block-syncer-js

Fast block sync and retrieval using bloom filters
git clone git://git.defalsify.org/block-sync-js.git
Log | Files | Refs

head.js (625B)


      1 const window = self;
      2 
      3 self.importScripts(
      4 	'driver.js',
      5 	'web3.min.js',
      6 );
      7 
      8 async function sync(driver) {
      9 	driver.w3.eth.subscribe('newBlockHeaders', async function(e, r) {
     10 		const c = await driver.w3.eth.getBlockTransactionCount(r.number);
     11 		for (let i = 0; i < c; i++) {
     12 			console.log('driver process ', r.number, i);
     13 			driver.process(r.number, i);
     14 		}
     15 	});
     16 }
     17 
     18 onmessage = function(o) {
     19 	const w3 = new Web3(o.data.w3_provider);
     20 
     21 	const callback = (o) => {
     22 		this.postMessage(o);
     23 	};
     24 
     25 	w3.eth.getBlockNumber().then(function(n) {
     26 		const driver = new Driver(w3, n, undefined, undefined, callback);
     27 		sync(driver);
     28 	});
     29 };