Browse Source

sql - comments and updates for bs.sql

master
kanoi 10 years ago
parent
commit
0cfa3abe61
  1. 30
      sql/bs.sql

30
sql/bs.sql

@ -1,3 +1,12 @@
-- SQL to calculate a block's diffacc (difficulty accepted)
-- This should match the block's confirmed diffacc
-- i.e. when a block has statsconfirmed='Y'
-- If the block has any unaged sharesummaries,
-- the script will abort and report the count
-- Sharesummaries are aged at ~10 minutes after the next workinfo,
-- after the sharesummary's workinfo, was first generated
-- You need to set the block number at line 21 - hi := blockheight;
SET SESSION AUTHORIZATION 'postgres'; SET SESSION AUTHORIZATION 'postgres';
DO $$ DO $$
@ -12,23 +21,30 @@ BEGIN
hi := 318177; hi := 318177;
-- This will randomly choose between multiple blocks of the same height -- This will randomly choose between multiple blocks of the same height
-- if we happen to orphan ourselves -- if we happen to orphan ourselves on block 'hi'
select workinfoid from blocks where height = hi select workinfoid from blocks where height = hi
and expirydate > '6666-06-01' into wi; and expirydate > '6666-06-01' limit 1 into wi;
IF NOT found THEN IF NOT found THEN
RAISE EXCEPTION 'Block % not found', hi; RAISE EXCEPTION 'Block % not found', hi;
END IF; END IF;
select max(height) from blocks where height < hi into hi0; select max(height) from blocks where height < hi into hi0;
IF NOT found THEN IF hi0 is NULL THEN
wi0 := -1; wi0 := -1;
ELSE ELSE
-- This will randomly choose between multiple blocks of the same height
-- if we happen to orphan ourselves on block 'hi0'
select workinfoid from blocks where height = hi0 select workinfoid from blocks where height = hi0
and expirydate > '6666-06-01' into Wi0; and expirydate > '6666-06-01' limit 1 into wi0;
END IF; END IF;
RAISE WARNING 'Block: %(%)', hi, wi; RAISE NOTICE 'Block: %(%)', hi, wi;
RAISE WARNING 'Previous block: %(%)', hi0, wi0;
IF hi0 is NULL THEN
RAISE NOTICE 'No previous block';
ELSE
RAISE NOTICE 'Previous block: %(%)', hi0, wi0;
END IF;
select count(*) from sharesummary where workinfoid > wi0 select count(*) from sharesummary where workinfoid > wi0
and workinfoid <= wi and complete = 'n' into ssc; and workinfoid <= wi and complete = 'n' into ssc;
@ -39,6 +55,6 @@ BEGIN
select sum(diffacc) from sharesummary where workinfoid > wi0 select sum(diffacc) from sharesummary where workinfoid > wi0
and workinfoid <= wi into da; and workinfoid <= wi into da;
RAISE WARNING 'diffacc: %', to_char(da::bigint, 'FM999,999,999,999,999,990'); RAISE NOTICE 'diffacc: %', to_char(da::bigint, 'FM999,999,999,999,999,990');
END IF; END IF;
END $$; END $$;

Loading…
Cancel
Save