Stratum與Coinbase交易分析

2021-09-29 21:54:50 字數 1149 閱讀 8067

coinbase交易結構為

位元組字段描述4

版本這筆交易參照的規則

1-9輸入計數器

包含的交易輸入數量

32交易雜湊

不引用任何乙個交易,值全部為0

4交易輸出索引

固定為0xffffffff

1-9coinbase資料長度

coinbase資料長度

不定coinbase資料

在v2版本的區塊中,除了需要以區塊高度開始外,其它資料可以任意填寫,用於extra nonce和挖礦標籤

4順序號

值全部為1,0xffffffff

1-9輸出計數器

包含的交易輸出數量8總量

用聰表示的位元幣值

1-9鎖定指令碼大小

用位元組表示的後面的鎖定指令碼長度

不定鎖定指令碼

乙個定義了支付輸出所需條件的指令碼

4鎖定時間

乙個區塊號或unix時間戳

stratum協議中coinbase構造方式

用到的資訊包括coinb1, extranonce1, extranonce2_size 以及coinb2,構造很簡單:

coinbase=coinb1 + extranonce1 + extranonce2 + coinb2

礦池在notify時已經構建了coinbase交易,系列化後在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定資訊,比如coinb1包含區塊高度,coinb2包含了礦工的收益位址和收益額等資訊,但是這些資訊對於礦工來說無關緊要,礦工挖礦的地方只是extranonce2 的4個位元組。另外extranonce1是礦池寫入區塊的指定資訊,一般來說,每個礦池會寫入自己礦池的資訊,比如礦池名字或者網域名稱,我們就是根據這個資訊統計每個礦池在全網的算力比重。

stratum協議流程

1、mining.subscribe,返回如下

魚池實測資料:mining.subscribe

sessionid=mining.notify

nonce1=00(extranonce1 )

n2size=8(extranonce2_size )

2、mining.authorize

3. 礦池分配任務,返回如下:

SQL與NoSQL MySQL與NoSQL的融合

寫這一篇內容的原因是mysql5.6.2突然推出了memcached的功能。nosql to innodb with memcached的出現,可以看出nosql對關聯式資料庫的確產生了巨大的影響,個人覺得這是乙個非常大的進步,可以讓開發人員更加方便的使用nosql和關聯式資料庫。nosql一般被認...

指標與陣列 a與 a區別

假設宣告了乙個陣列a,則 a表示陣列a的首位址,a與 a 0 表示陣列a首元素的首位址,那麼 a 1與a 1有哪些區別呢?通過下面的實驗來說明。int i 0 int a 5 int p int a 1 for i 0 i 5 i printf a 0x p,a 0x p,a 1 0x p n a,...

apache與tomcat與weblogic對比

apache,tomcat,weblogic都是常用的中介軟體,發布 等應用都離不開這些好東東。強大程度對比apache 新手容易將apache與tomcat混亂。apache與tomcat都是同乙個公司生產的,apache是輕量級的,tomcat是企業級的。apache一般與php mysql等整...