btcrpc介面文檔
轉自: https://zhuanlan.hu.com/p/23558268
getblocktemplate協議誕生於2012年中葉,此時礦池已經出現。礦池採用getblocktemplate協議與節點客戶端交互,採用stratum協議與礦工交互,這是最典型的礦池搭建模式。
與getwork相比,getblocktemplate協議最大的不同點是:getblocktemplate協議讓礦工自行構造區塊。如此一來,節點和挖礦完全分離。對於getwork來說,區塊鏈是黑暗的,getwork對區塊鏈一無所知,他只知道修改data欄位的4個位元組。對於getblocktemplate來說,整個區塊鏈是透明的,getblocktemplate掌握區塊鏈上與挖礦有關的所有信息,包括待確認交易池,getblocktemplate可以自己選擇包含進區塊的交易。
挖礦有兩種方式,一種叫SOLO挖礦,另一種是去礦池挖礦。前文所述的在節點客戶端直接啟動CPU挖礦,以及依靠getwork+cgminer驅動顯卡直接連接節點客戶端挖礦,都是SOLO挖礦,SOLO好比自己獨資買彩票,不輕易中獎,中獎則收益全部歸自己所有。去礦池挖礦好比合買彩票,大家一起出錢,能買一堆彩票,中獎後按出資比率分配收益。理論上,礦機可以藉助getblocktemplate協議鏈接節點客戶端SOLO挖礦,但其實早已沒有礦工會那麼做,在寫這篇文章時,比特幣全網算力1600P+,而當前最先進的礦機算力10T左右,如此算來,單台礦機SOLO挖到一個塊的概率不到16萬分之一,礦工(人)投入真金白銀購買礦機、交付電費,不會做風險那麼高的投資,顯然投入礦池抱團挖礦以降低風險,獲得穩定收益更加適合。因此礦池的出現是必然,也不可消除,無論是否破壞系統的去中心化原則。
礦池的核心工作是給礦工分配任務,統計工作量並分發收益。礦池將區塊難度分成很多難度更小的任務下發給礦工計算,礦工完成一個任務後將工作量提交給礦池,叫提交一個share。假如全網區塊難度要求Hash運算結果的前70個比特位都是0,那麼礦池給礦工分配的任務可能只要求前30位是0(根據礦工算力調節),礦工完成指定難度任務後上交share,礦池再檢測在滿足前30位為0的基礎上,看看是否碰巧前70位都是0。
礦池會根據每個礦工的算力情況分配不同難度的任務,礦池是如何判斷礦工算力大小以分配合適的任務難度呢?調節思路和比特幣區塊難度一樣,礦池需要藉助礦工的share率,礦池希望給每個礦工分配的任務都足夠讓礦工運算一定時間,比如說1秒,如果礦工在一秒之內完成了幾次任務,說明礦池當前給到的難度低了,需要調高,反之。如此下來,經過一段時間調節,礦池能給礦工分配合理難度,並計算出礦工的算力。
礦池通過getblocktemplate協議與網路節點交互,以獲得區塊鏈的最新信息,通過stratum協議與礦工交互。此外,為了讓之前用getwork協議挖礦的軟體也可以連接到礦池挖礦,礦池一般也支持getwork協議,通過階層挖礦代理機制實現(Stratum mining proxy)。須知在礦池剛出現時,顯卡挖礦還是主力,getwork用起來非常方便,另外早期的FPGA礦機有些是用getwork實現的,stratum與礦池採用TCP方式通信,數據使用JSON封裝格式。
先來說一下getblocktemplate遺留下來的幾個問題:
礦工驅動:在getblocktemplate協議里,依然是由礦工主動通過HTTP方式調用RPC介面向節點申請挖礦數據,這就意味著,網路最新區塊的變動無法及時告知礦工,造成算力損失。
數據負載:如上所述,如今正常的一次getblocktemplate調用節點都會反饋回1.5M左右的數據,其中主要數據是交易列表,礦工與礦池需頻繁交互數據,顯然不能每次分配工作都要給礦工附帶那麼多信息。再者巨大的內存需求將大大影響礦機性能,增加成本。
Stratum協議徹底解決了以上問題。
Stratum協議採用主動分配任務的方式,也就是說,礦池任何時候都可以給礦工指派新任務,對於礦工來說,如果收到礦池指派的新任務,應立即無條件轉向新任務;礦工也可以主動跟礦池申請新任務。
現在最核心的問題是如何讓礦工獲得更大的搜索空間,如果參照getwork協議,僅僅給礦工可以改變nNonce和nTime欄位,則交互的數據量很少,但這點搜索空間肯定是不夠的。想增加搜索空間,只能在hashMerkleroot下功夫,如果讓礦工自己構造coinbase,那麼搜索空間的問題將迎刃而解,但代價是必要要把區塊包含的所有交易都交給礦工,礦工才能構造交易列表的Merkleroot,這對於礦工來說壓力更大,對於礦池帶寬要求也更高。
Stratum協議巧妙解決了這個問題,成功實現既可以給礦工增加足夠的搜索空間,又只需要交互很少的數據量,這也是Stratum協議最具創新的地方。
再來回顧一下區塊頭的6個欄位80位元組,這個很關鍵,nVersion,nBits,hashPrevBlock這3個欄位是固定的,nNonce,nTime這兩個欄位是礦工現在就可以改變的。增加搜索空間只能從hashMerkleroot下手,這個繞不過去。Stratum協議讓礦工自己構造coinbase交易,coinbase的scriptSig欄位有很多位元組可以讓礦工自由填充,而coinbase的改動意味著hashMerkleroot的改變。從coinbase構造hashMerkleroot無需全部交易,
如上圖所示,假如區塊將包含13筆交易,礦池先對這13筆交易進行處理,最後只要把圖中的4個黑點(Hash值)交付給礦工,同時將構造coinbase需要的信息交付給礦工,礦工就可以自己構造hashMerkleroot(圖中的綠點都是礦工自行計算獲得,兩兩合並Hash時,規定下一個黑點代表的hash值總是放在右邊)
。按照這種方式,假如區塊包含N筆交易,礦池可以濃縮成log2(N)個hash值交付給礦工,這大大降低了礦池和礦工交互的數據量。
Stratum協議嚴格規定了礦工和礦池交互的介面數據結構和交互邏輯,具體如下:
1. 礦工訂閱任務
啟動挖礦機器,使用mining.subscribe方法鏈接礦池
返回數據很重要,礦工需本地記錄,在整個挖礦過程中都用到,其中:
Extranonce1,和 Extranonce2對於挖礦很重要,增加的搜索空間就在這里,現在,我們至少有了8個位元組的搜索空間,即nNonce的4個位元組,以及 Extranonce2的4個位元組。
2. 礦池授權
在礦池注冊一個賬號 ,添加礦工,礦池允許每個賬號任意添加礦工數,並取不同名字以區分。礦工使用mining.authorize方法申請授權,只有被礦池授權的礦工才能收到礦池指派任務。
3. 礦池分配任務
以上每個欄位信息都是必不可少,其中:
有了以上信息,再加上之前拿到的Extranonce1 和Extranonce2_size,就可以挖礦了。
4. 挖礦
1) 構造coinbase交易
用到的信息包括Coinb1, Extranonce1, Extranonce2_size 以及Coinb2,構造很簡單:
為啥可以這樣,因為礦池幫礦工做了很多工作,礦池已經構建了coinbase交易,系列化後在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含區塊高度,coinb2包含了礦工的收益地址和收益額等信息,但是這些信息對於礦工來說無關緊要,礦工挖礦的地方只是Extranonce2 的4個位元組。另外Extranonce1是礦池寫入區塊的指定信息,一般來說,每個礦池會寫入自己礦池的信息,比如礦池名字或者域名,我們就是根據這個信息統計每個礦池在全網的算力比重。
2) 構建Merkleroot
利用coinbase和merkle_branch,按照上圖方式構造hashMerkleroot欄位。
3) 構建區塊頭
填充餘下的5個欄位,現在,礦池可以在nNonce和Extranonce2 里搜索進行挖礦,如果嫌搜索空間還不夠,只要增加Extranonce2_size為多幾個位元組就可輕而易舉解決。
5. 礦工提交工作量
當礦工找到一個符合難度的shares時,提交給礦池,提交的信息量很少,都是必不可少的欄位:
礦池拿到以上5個欄位後,首先根據任務號ID找出之前分配任務前存儲的信息(主要是構建的coinbase交易以及包含的交易列表等),然後重構區塊,再驗證shares難度,對於符合難度要求的shares,再檢測是否符合全網難度。
6. 礦池給礦工調節難度
礦池記錄每個礦工的難度,並根據shares率不斷調節以指定合適難度。礦池可以隨時通過mining.set_difficulty方法給礦工發消息另其改變難度。
如上,Stratum協議核心理念基本解析清楚,在getblocktemplate協議和Stratum協議的配合下,礦池終於可以大聲的對礦工說,讓算力來的更猛烈些吧。
② Chainge技術沙龍(0414)-區塊鏈技術的安全隱患
虛擬機設計
零錢整理
慢霧科技介紹
01| The Dao事件
以太坊第一個安全大事件
智能合約的取款
新建一個Bank,存入一部分錢,用Dao框架不停取錢。
取款-判斷余額-取款操作框架-轉空該賬戶下的所有錢。
簡單的例子就是,你的銀行卡有餘額100萬,你需要買一個10塊錢的飲料,但是支付的過程有漏洞,所以你銀行卡的所有錢都被轉走。
一、外部調用
02| 以太坊黑色情人節
起源:第一轉賬時間是2.14
ETH節點統計
客戶端、客戶端版本、OS系統。整個系統的龐雜
蜜罐檢測 (部署陷阱能檢測出黑客的點來)
net_version
判斷是主網還是測試網,只攻擊主網
3000+主網節點完全暴露
eth_accounts
獲取錢包賬號,涉及錢包賬號
eth_getBanlance
獲取有多少錢,被盜46000+ETH
why?
unlockAccount 函數介紹
該函數將使用密碼從本地的keystore 里提取private key 並存儲在內存中,函數第三個參數ration 表示解密後private key 在內存中保存默認是300 秒; 如果設置為0,則表的時間,示永久存留在內存,直至Geth/Parity 退出。
詳見:
https://github.com/ethereumgethereum/wiki/Management-APIs#personal_unlockaccount
節點存用戶的keystore信息(嚴重危險)
eth_getBlockByNumber
墨子掃描引擎,掃描有問題的節點,慢霧的以太坊安全事件的披露
被盜ETH,市值,被盜錢包數
具體內容可以查看慢霧發布的 以太坊黑色情人節專題
生態相關
ETH:礦池、錢包、web3、smart contract、dapp
BTC:礦池、錢包、Lightning Network
BTC RPC
防禦建議
管理數十萬用戶安全的接近百萬的比特幣
華人世界唯一被bitcoin.org網站展示的錢包
比特派多種區塊鏈資產(BTC、ETH、Token、分叉)
冷熱結合,確保安全
比特派-熱錢包
比特護盾-冷錢包/硬體錢包
區塊鏈安全事件
私鑰決定了區塊鏈資產的所有權,丟了私鑰也就相當於丟了一切。私鑰就是一個隨機數,這個隨機數的概率空間很大(256 位,即2^256)
錢包=生態入口
需要在安全的同時做到盡可能的開放
玩法的開放,技術的開放,通用的技術介面,生態的開放,把自己的資源進行導入。合作夥伴計劃:技術咨詢、區塊鏈技術支持、開放平台、入口支持、生態支持、海外市場合作。幫助夥伴實現區塊鏈轉型或區塊鏈項目孵化,安全、便捷實現真正落地的區塊鏈應用場景。
聯系方式 [email protected]
用戶風控系統,數百萬的數字貨幣用戶。
最大可能保持我們的數字資產
騙子故事:搶數字貨幣份額,錢沒到賬,冒充官方,交出助記詞
惡意錢包地址庫
詐騙錢包、黑客錢包、羊毛黨錢包
惡意網站庫
釣魚網站、空投網站、交易所、眾籌
風險合約庫
重名幣、空格幣、風險合約
安全事件庫
歷史安全事件提醒
最新事件提醒
盜幣風險監控
安全意識教育
可能出現被盜的情況
游戲即資產,稀缺資源,成為游戲運營者。最後大BOSS死於暴露了自己的密鑰。
通過社工(社會工程學)【欺騙的藝術】黑客攻擊手法,虛擬景象做出錯誤判斷讓自己陷入危機。
人始終是系統中最薄弱的環節,幣安背鍋的黑客事件。大客戶泄露自己的賬戶,調用API介面,自動交易。雖然沒丟幣但是黑客在期貨市場盈利。
關於安全錢包的帖子(來自小白憤怒控訴,實際沒有理解整個機制):
1、我沒私鑰和交易密碼,東西都在你們那我不知道安全在哪裡
2、密語算個毛,你告訴我拿著你們的密語能做什麼。
汽車和自行車事件,出了問題之後,弱勢的一方被原諒。負責的是更大的一方。平台替沒有安全意識的用戶背鍋。
對於大部分用戶來說,交易所的安全性比普通用戶自己管理的安全性要高,用戶的安全意識沒有提高,交給交易所幫助、協助你來管理你的錢包提示很多風險操作。
為什麼要隨機生成256位的密鑰,為什麼不能用戶自己去設置,如果自己設置會處於一個集中的區域,隨機值不夠,私鑰生成時就處於危險的狀態。
自己的安全認識不夠,所以自己造成的損失,先懟交易所先懟錢包。先想到得是你們的問題和漏洞造成的,不是我的操作失誤和密鑰泄露造成的。
幣派做的是大神和小白的交流之間的翻譯,做畫漫畫,寫段子的逗比。
幣小寶防騙指南漫畫,貢獻題材和內容。
③ XDAG(匕首幣)——未來pow+dag貨幣之王
Dagger(代幣簡稱XDAG)是一個全新的基於有向無環圖(DAG)的加密貨幣,替代了區塊鏈技術。沒有預挖,也沒有ICO計劃,是一個真正由社區推動、公平開放的項目。而且不同於其它DAG方向的幣,Dagger可以進行挖礦,目前CPU、GPU都可以進行挖礦。
Xdag總量為4, 294, 967, 296個(2的32次方),分 160 年挖完,明年預計大幅度減產,總量減少至8億。一天產量為 138 萬,每 64 秒產生一個塊,一個塊 1024 枚 Xdag。目前是 4 年遞減,每隔 4 年挖出礦的數量減半。目前Xdag已經挖出近2億枚,流通量約一億八千枚。
Xdag於2017年11月被設計出來,內部測試兩個月後,也就是2018年1月正式上線主網。它的作者是俄羅斯莫斯科國立大學的高級研究員,數學研究背景。Xdag的目標是創建一個能夠允許每秒進行成千上萬筆交易的去中心化的支付系統。
Dagger (XDAG)是全世界第一個實現pow+dag的加密貨幣,既擁有pow的去中心化和高安全性,又加入了dag的高並發,從bitcointalk.com 創世以來,就受到全世界的關注,被譽為dag中的比特幣。每一個塊包含一個交易,塊同時也是一個地址。Xdag是僅可以通過挖礦獲取,目標是成為全球性的超主權支付貨幣。完全沒有預挖也沒有ICO,主網路已經穩定運行五個月,算力上漲異常迅速。
DAG或直接非循環是在分布式、分散式環境中的人之間發送數據的另一種方法。這是在沒有區塊鏈的情況下完成的,可以提供更高的可擴展性。目前來看,XDAG網路在POW這種目前最優的去中心化方案下,依然能夠擁有1000~10000tps,且整個轉賬系統零手續費。
XDAG(匕首幣)已經於2018年04月22日,晚上6點整(UTC+8),正式登陸Coinbat.com。此為國內交易量最大交易所。
區塊=交易=錢包
Xdag中所有的錢包地址、交易記錄均是塊(Block)。因為這種特性,所有的錢包都需要在網路上有獨一無二的block。換而言之,你不可以向不存在的wallet轉賬。這意味著,不用再擔心像其他加密貨幣一樣,打到黑洞地址的情況。之前加密貨幣最不人性的一點就是容易手誤打到錯誤地址。這一切在xdag中,不會出現。因為只有已經存在的錢包,才在xdag網路上有獨一無二的區塊。同時Xdag轉賬是沒有任何費用的。
第一個基於DAG技術可挖礦(PoW)的公鏈
Xdag 是採用PoW(工作量證明)的 DAG 技術,是目前業界唯一個可以進行挖礦的DAG網路。相較於區塊鏈技術Xdag有更高的 TPS,同時相對於其他DAG技術,Xdag則採用已經廣為認可的 PoW共識機制,確保去中心化和公平性。
解決了雙花問題
在Xdag中,主塊(Main Block)在每個幀間隔(Frame Time)中生成,Xdag中所有交易均是塊(Block),當發生交易產生交易塊(Transaction Block)發送到主網中,見證者會按照規則驗證交易,並將交易塊鏈接到主塊上,一個交易塊會有自己的鏈接關系,見證者會依據規則確保先到的交易塊被鏈接到主塊,後到的塊將不會被鏈接到主塊,只有被主塊鏈接的塊才是有效的。
高TPS,轉賬速度快
到目前為止,整個系統已經穩定運行接近5個月,轉帳速度極快,基本都在幾十秒即可到達,遠遠超過 ETH、BTC。之後可以縮短到十幾秒。
目前最好的不可能三角解決方案
Xdag通過pow來保證去中心化和安全性,同時保留了dag的高並發。這是目前市場最完美的不可能三角(高並發、安全性、去中心化不可兼得),具備非常大的區塊鏈三點零潛質。
目前xdag的開發由社區自治,目前開發進度正常,版本更新快。前陣子曾因為算力上漲導致主網出現過兩次不同步的現象,經過社區開發人員的開發,目前項目已經很大提升了其穩定性。現在轉移開發重點為RPC介面、移動錢包的開發。RPC介面開發完成後意味著能實現交易平台自動沖提功能,屆時也會一些交易平台進行對接,如果能夠順利上線一些流通性更好的平台,對項目本身的意義也是非常正面的。也許在未來,會有更科學的技術能夠實現點對點交易、安全、匿名、高效的完美整合。但至少在接下來的一段時間里,XDAG絕對會是發展潛力無窮的金子。
xdag打賞address:ZBJ9BLTG+knstcKzwSiNfof9hDoDtdko
④ api數據介面怎麼調用
view plainprint?
<?php
/* 數據介面調用通用DEMO SDK
* DATE:2014-07-29
*/
#通過數據堂申請到dtkey
$apikey ='';
#api編號
$apicode='caipiao';
$rettype='xml'; #提供json和xml兩種格式,使用時任選其一
$url ='http://192.168.1.15/data/getData.htm'; #請求的數據介面URL
$c='dlt';
$params ='&apikey='.$apikey.'&apicode='.$apicode.'&rettype='.$rettype.'&c='.$c;
$content = getData($url.'?'.$params);
if($content){
#根據所需讀取相應數據
echo $content;
} else {
echo 'Error';
}
/* 請求介面,返回JSON數據
* @url:介面地址
*/
function getData($url) {
// 創建一個cURL資源
$ch = curl_init();
// 設置URL和相應的選項
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 獲取數據返回
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在啟用 CURLOPT_RETURNTRANSFER 時候將獲取
// 抓取URL並把它傳遞給瀏覽器
$response = curl_exec($ch);
// 關閉cURL資源,並且釋放系統資源
curl_close($ch);
return $response;
}
?>
以上代碼是php的
view plainprint?
/**
* 通過java處理時調用API的方法(示例)<br>
*
* @author datatang
* @version 1.0
* @create date 2014/08
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.log4j.Logger;
/**
* 使用java發送GET請求獲取數據
* @author datatang
*
*/
public class SdkDemo {
static Logger log = Logger.getLogger(SdkDemo.class);
//測試主程序
public static void main(String[] args) {
//連接url地址
//http://api.datatang.com/data/getData.htm 固定地址 (必須項目)
String strUrl = "http://api.datatang.com/data/getData.htm";
//dtkey 通過頁面申請的API KEY。(必須項目)
String strKey = "XXXXXXXXXXXXXXXXX";
//apicode 各API的代碼 (必須項目)
String strApicode = "XXXX";
//rettype 需要返回的格式(支持XML及JSON)(必須項目)
String strRettype = "XML";
//各API需要參數(詳細參考畫面-各API參數不同)
String strparam = "";
//例如
strparam = "datatype=ore&startDate=2014-06-30&endDate=2014-06-30";
//訪問URL地址
String url = strUrl + "?apikey=" + strKey + "&apicode=" + strApicode + "&rettype=" + strRettype
+ "&"+ strparam;
try {
String res = readByGet(url);
System.out.println(res);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 通過GET請求調用url獲取結果
* @param inUrl 請求url
* @throws IOException
* @return String 獲取的結果
*/
private static String readByGet(String inUrl) throws IOException {
StringBuffer sbf = new StringBuffer();
String strRead = null;
//模擬瀏覽器
String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 "
+ "(KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
//連接URL地址
URL url = new URL(inUrl);
//根據拼湊的URL,打開連接,URL.openConnection函數會根據URL的類型,
//返回不同的URLConnection子類的對象,這里URL是一個http,因此實際返回的是HttpURLConnection
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//設置連接訪問方法及超時參數
connection.setRequestMethod("GET");
connection.setReadTimeout(30000);
connection.setConnectTimeout(30000);
connection.setRequestProperty("User-agent",userAgent);
//進行連接,但是實際上get request要在下一句的connection.getInputStream()函數中才會真正發到 伺服器
connection.connect();
//取得輸入流,並使用Reader讀取
InputStream is = connection.getInputStream();
//讀取數據編碼處理
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "UTF-8"));
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
//斷開連接
connection.disconnect();
return sbf.toString();
}
}
以上代碼是java開發,只要更改鏈接為你想要的數據鏈接就ok了
⑤ Bitcoin Cash的新地址格式CashAddr
轉自:https://zhuanlan.hu.com/p/34931303
Bitcoin Cash,老的比特幣格式的地址被稱為Legacy(遺產)地址,升級節點至0.16.2後,所有的RPC地址展示都用了CashAddr格式,包括listunspent,listtransactions,validateaddress等常用的RPC命令。
BCH新老地址的對比:
1. 新地址是和老地址一一對應的,它們對應了同一個私鑰,只是換了種寫法
2. 新地址可以發送余額給老地址,老地址可以發送余額到新地址
3. 新地址是大小寫不敏感的,可以全部轉成大寫,也可以全部轉成小寫,優先小寫格式,同一地址不能大小寫混用
4. 新地址的前綴可寫可不寫,老地址沒有前綴,通過首字元來標識類型
5. 新地址用base32編碼,老地址用base58編碼
6. 新地址格式不是一個軟分叉,也不是一個硬分叉(這個有點爭議,改了大家都依賴的節點程序其實算是一個軟分叉)
自從比特幣分叉出BCH以來,兩個分叉幣就逐漸地往不同的方向走了,軟分叉的BTC支持了隔離見證,也增加了隔離見證地址等功能,默認生成新地址(getnewaddress)是p2sh-segwit隔離見證地址了,如果想要生成其它格式的地址,可以使用address_type來指定地址類型,例如要生成原始格式地址,address_type要填legacy。現在,Bitcoin Cash也有了自己的地址格式,而且推薦用戶優先選用新的地址格式。
BCH的新地址格式類似這樣:
bitcoincash:
bchtest:
開頭是一個網路名,後面是一個q開頭的base32編碼的字元串,包含了版本號、公鑰哈希值、校檢碼等信息,它們根據一些規則來拼接成這樣一個地址,具體原理請參考 這里 。
新節點支持使調用介面數據時使用老地址:在節點配置usecashaddr=0
新弄一個地址格式的初衷,在於區別老地址和新地址,以免用戶充錯幣。例如充錯BTC到BCH地址,由於BCH已經做了防重放攻擊,這樣相當於將BTC打過去了與BCH地址相同的一個BTC地址上去了,要找回的話還挺麻煩,需要將BCH錢包的私鑰,導入到BTC錢包上,才能將幣打出,類似的將BCH充值到BTC地址也一樣。如果私鑰不由自己掌握,或者交易所、錢包等商家不提供找回服務,那麼這個幣就相當於丟了。有些服務商為了防止用戶打錯,乾脆將BTC和BCH地址充值地址弄成一致的,這樣用戶就不會打錯了,即使打錯了,也是充值到自己的賬號去,可以隨時提走。
新格式解決了一些問題,新老地址混用,可能會造成閱讀障礙。
除了新老地址混用的問題,老的比特幣地址其實經過了精心的設計,通過base58編碼,避免了一些容易看錯的字母和數字;使用首字母來標識類型,能夠讓人一眼知道這是個啥地址,比如m或n開頭的,是一個測試環境地址,而1開頭是正式環境地址,如果是3開頭的,那麼它是一個P2SH地址。新地址格式,通過前面的版本號來看地址所屬的網路,不能再輕松看出差別了,新地址格式的確沒有老地址那麼簡潔易用。
BCH地址轉換器
https://cashaddr.bitcoincash.org/
https://bch.btc.com/tools/address-converter
https://www.viabtc.com/
參考資料
https://zhuanlan.hu.com/p/34931303
https://github.com/bitcoincashorg/spec/blob/master/cashaddr.md
https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/cashaddr.md
⑥ 求教,比特幣錢包怎麼與php建立連接
就目前來說如果有開發文檔你需要根據開發文檔來弄,如果不是那就沒有辦法了。
希望我的回答可以幫到你,如果有什麼不懂可以追問。
⑦ Omni相關介面一覽
Omni的資料相對比較少,把一些常用命令執行結果也列出來,便於快速的了解。
omni_getallbalancesforid
取指定omni代幣
為什麼是一堆地址?
It returns all balances for the entire state, not just for addresses in the wallet.
omni_getallbalancesforaddress
單獨取某個地址的omni代幣
omni_gettransaction
取交易數據
propertyid為31,在這就是USDT了。
再取下以前測試過的地址,為什麼這個地址USDT這么多?
omni_listproperties
列出propertyid的代幣,可以看到propertyid=31是啥了
詳細查看propertyid=31的數據:
raw transaction
到這說下我研究USDT的目的,我需要進行USDT轉帳交易,同時希望是在冷錢包中簽名,所以需要使用原始交易數據,生成交易數據後再拿到冷錢包中進行簽名,再把簽名後數據拿到熱錢包中發送。
這個命令是比特幣的命令,可以 在這了解這些命令
基於比特幣UTXO的方式,並不是能在一個節點上列出任意地址的余額,也無法列出任意地址的UTXO,得先把地址導入錢包。
指定omni代幣和數量
指定從哪個源地址(UTXO中txid和vout)轉移比特幣
這一步把omni代幣數據也組合到交易數據上
指定礦工費用和UTXO數據(txid、vout、scriptPubkey、value),也可以改變找零地址
這步是比特幣的簽名命令
在這發現一個問題,交易簽名時對input進行了判斷,而不是我以為的只是用對應的私鑰進行簽名而已。
重新走一遍這個生成原始交易的流程,保證input存在且unspent,但沒有私鑰進行簽名看看是什麼結果?
USDT錢包基本沒有可用的,也就Omnicore這邊可以用,要再搭私鏈又太麻煩費事,只能從交易所提點USDT出來測試了。
繼續走一遍生成原始交易數據的流程:
這次執行到發送交易了,只是發送交易出錯,據說是費用太低,其實我是特意做測試的,因為這個地址上除了轉USDT帶來的0.00000546BTC之外,根本就沒有比特幣,指定費用再大也沒用!重新測試了一下指定更大的交易費錯誤也是一樣,看來這個錯誤就是說BTC不夠了!
還得轉點BTC到這個地址,這樣所有的流程又得重來,因為UTXO變了...
交易成功,等待確認!
在btc.com能查到這筆交易了,不過它上面有個交易加速,這個加速是怎麼實現的呢?我給它錢,它怎麼給礦工錢?
交易費設得太低了,不知道能不能成交了!
不過以上流程基本驗證USDT轉帳也可以使用熱錢包建立原始交易,冷錢包簽名的模式了!
原理上是和比特幣是一樣的,只是驗證還是必需自己做一下!
https://github.com/OmniLayer/omnicore/issues/475
https://docs.google.com/document/d/1vhL4QQL5nNstFfnxDvA-sHB8u5b797FQn550hkURWLM/edit
https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md
https://bitcoin.stackexchange.com/questions/10090/how-to-get-an-addresss-balance-with-the-bitcoin-client?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
https://gist.github.com/dexX7/
⑧ 映泰TB250-BTC D+ 8卡上怎麼沒有24pin的主板供電介面啊,該如何接電源
用專用電源
比如全漢FSP1600W額定功率挖礦專用電源
礦機專用電源的輸出埠全部採用6pin的介面,均為12V輸出,取消了24pin中5V及3.3V的供電輸入
⑨ 映泰tb350btc有m2介面嗎
有。映泰tb350btc是有m2介面的,可以使主板工作更加穩定。映泰是中國台灣的世界級的主板大廠,與上游晶元廠商關系密切,是nVIDIA的AIC核心合作夥伴。
⑩ BTC是什麼
企業與消費者之間的電子商務(Business to Customer,即B2C)。這是消費者利用網際網路直接參與經濟活動的形式,類同於商業電子化的零售商務。隨著網際網路的出現,網上銷售迅速地發展起來。
B2C就是企業通過網路銷售產品或服務給個人消費者。企業廠商直接將產品或服務推上網路,並提供充足資訊與便利的介面吸引消費者選購,這也是目前一般最常見的作業方式,例如網路購物、證券公司網路下單作業、一般網站的資料查詢作業等等,都是屬於企業直接接觸顧客的作業方式。可成以下四種經營的模式: