❶ 以太坊轉賬流程
發起:用戶在本地的以太坊錢包軟體中選擇要發送的交易地址(From)、輸入目標地址(To)、金額(Value)、是否部署或調用合(Data)、手續費單價(Gasprice)等,確認發送至以太坊節點節點和錢包可以是同一台
廣播:節點收到(或自己發起)交易後,會對交易進行驗證。驗證:交易的簽名、發起賬號的余額是否能支付轉賬余額與手續費、Nonce是否為賬號已發出的交易數。驗證為合法後,將交易加入節點的交易池中交易池中存儲著待打包的交
安裝以太坊瀏覽器錢包插件,創建錢包,獲取虛擬以太幣,進行轉賬交易。 實驗內容 學習 初識以太坊,發送交易 1.學習《初始以太坊,發送交易》,虛擬以太幣交易。
❷ Python3 使用Web3.py查詢以太坊賬戶余額
from web3 import Web3
def QuerryBalanceETH(accounts):
w3 = Web3(Web3.HTTPProvider('https://mainnet. infura .io/v3/ {此處設置自己託管賬戶ID} '))
#accounts = w3.eth.accounts
balance = w3.eth.getBalance(accounts,'latest')#latest表示使用區塊鏈中最後一個塊的狀態,也就是最後的余額
print('balance@latest => {0}'.format(balance))
return balance
1、什麼是Infura?
專業一點講,Infura是一種IaaS(Infrastructure as a Service)產品,目的是為了降低訪問以太坊數據的門檻。
通俗一點講,Infura就是一個可以讓你的dApp快速接入以太坊的平台,不需要本地運行以太坊節點。
從程序員的角度講,Infura就是一個Web3 Provider,背後是負載均衡的API節點集群。使用它的好處就是,你永遠不必擔心連接的節點失效的問題,Infura會管理好這一切。
除此之外,Infura還可以很方便地接入IPFS,這是另外一個話題,這里就不討論了。
最後,也是非常重要的一點:Infura目前是免費的。
2、如何使用Infura?
使用Infura首先需要注冊一個賬戶,訪問官網 https://infura.io ,點擊注冊並提供一個郵箱,會收到一封郵件,點擊郵件中的鏈接激活就可以了,然後你就會看到下面的界面:
點擊右上角的黑色按鈕,創建新項目,就可以生成你專屬的Project ID了(左邊的紅框)。
參考文章: https://blog.csdn.net/TurkeyCock/article/details/85103434
❸ 以太坊event log查詢與解析
從 ethereum json-rpc文檔 的文檔中找到一個同時指定多個事件以 OR 或者 AND 查詢的方法.以下是查詢 Approval 或 Transfer 事件的方法:
topics 欄位中指定查詢條件的語法參考上面鏈接。
通過 getTransactionReceipt 在ropsten測試網上查詢到交易號為 的交易詳情
這個交易從 "from": "" 發送到合約地址 "to": "" .這個合約為ERC20代幣合約.從 topics 的第一個元素可以看出合約中產生了 Transfer 事件(topics第一個元素一定是事件的keccak哈希). topics 的第二個欄位是轉出代幣的地址,第三個欄位是接收者地址.ERC20代幣 Transfer 事件的簽名為
我們注意到 Transfer 事件的第一個和第二個參數被標記為 indexed , 因此他們的值被放在 topics array 中. 由於tokens參數沒有標記為 indexed , 所以他的值被放在 data 欄位. 如果事件中有多個欄位未標記為 indexed , 那麼他們的值都會被記錄在 data 欄位中。
❹ 以太坊技術系列-以太坊數據結構
本篇文章和大家介紹一下以太坊的數據結構,上篇文章我們提到,以太坊為了實現智能合約這一功能,使用了基於賬戶的模型。我們來看看以太坊中數據結構。
既然是基於賬戶的模型,我們需要通過賬戶地址找到賬戶的狀態。就像通過銀行卡號可以找到你在銀行中的各種信息一樣。最簡單的想法當然是一個簡單的哈希表 key是賬戶地址 value是賬戶狀態。但這里有個問題解決不了。
輕節點如何校驗賬戶合法性?
上篇我們說過,區塊鏈中有2類節點,全節點和輕節點,輕節點只會存儲block header,所以輕節點如何才能校驗賬號是否合法呢?
這個思路和我們平時用的md5校驗一致,我們會對區塊內的信息進行hash運算從而得出區塊內信息唯一確定的值,區塊鏈所有節點中這個值都是相同的。
在這個過程中我們用到了一種數據結構Merkle Tree(哈希樹),我們先看下Merkle Tree(哈希樹)的示意圖。
上篇文章說到區塊鏈中的鏈表(哈希鏈)和我們平時常見鏈表不同的是將指針從地址改為了hash指,這里也一樣,哈希樹和二叉樹的區別有2個
1.將地址改為了哈希值
2.只有葉子節點存儲數據
回到之前的問題輕節點是如何校驗1個賬戶或交易是否是在鏈上的呢?
整個流程如上圖所示
1.輕節點需要判斷1個賬號是否合法
2.輕節點由於只存儲block header,所以拿到1個賬號的時候會向全節點發出請求
3.全節點存儲了所有賬戶狀態,將賬戶路徑中的需要計算用到的hash值返回給輕節點
4.輕節點本地進行計算根hash值,如果計算結果和自己存儲一致則賬戶合法,不一致則不合法。
那以太坊中的賬戶信息的數據結構就是這樣嗎?
直接用這樣的數據結構來存儲賬戶信息會有2個問題
查找困難
生成hash值不確定
第1個問題應該比較容易發現,在這個樹中尋找1個賬號需要的復雜度是O(n),因為沒有任何順序。
第2個問題其實也是因為無序導致的,無序的組合每個節點針對同一批賬戶生成的hash值不一致,這就導致無法達成共識。
既然2個問題都和順序有關,那我們類似二叉排序樹一樣,使用哈希排序樹是不是就可以解決問題了呢?
使用排序樹後會帶來另外1個問題
插入困難
因為要維持樹是有序的,很可能帶來樹結構的很大變動。
以太坊中使用了另外一種數據結構字典樹。和哈希樹不同,字典樹應該是很多地方都有使用。我們簡單來看下字典樹的結構。
字典樹能夠較好地解決哈希樹的2個缺點1.查找困難 2.生成的hash值不確定以及排序二叉樹的1個缺點 插入困難。
但字典樹我們可以看到可能樹的深度可能由於部分元素導致整棵樹深度非常深。
這時我們可以進一步優化,將相同路徑進行壓縮。這就是壓縮字典樹。
將哈希樹和壓縮字典樹結合,就可以得到以太坊存儲賬戶的最終數據結構-MPT。
將壓縮字典樹裡面的指針從地址改為指針,並且將數據存儲在葉子節點中即可。
介紹完狀態樹的數據結構,我們接下來討論1個問題,區塊中存儲的賬戶狀態是什麼樣的范圍。有2種選擇。
只保存當時區塊中產生交易的賬戶狀態。
保存全局所有的賬戶。
我們可以看下這2種方式,無非就是空間和時間的平衡,只保存當前區塊產生的交易意味著是做懶載入(需要的時候才去尋找賬戶),在區塊鏈中這個代價是非常大的,因為尋找的賬戶之前從未交易過,這樣會遍歷整個區塊鏈。另外一種保存全局的賬戶方式雖然看起來空間消耗較大,但查找快捷,而且空間的問題我們可以通過其他方式優化。所以最終以太坊選擇了第2種每個區塊都報錯全局所有賬戶的方式。
我們來看下以太坊中是如何保存狀態樹的。
可以看到以太坊中雖然每個區塊都保存了全部賬戶,但是會將未發生變化的賬戶狀態指向前1個節點,本身只存儲發生變化的狀態,這樣可以較大程度優化空間佔用。
介紹完以太坊中比較復雜的狀態樹後,我們繼續來看看以太坊中的另外兩棵樹,交易樹和收據樹。
首先介紹一下,為什麼需要交易樹&收據樹。
1.交易樹
雖然以太坊是基於賬戶的模型,但是就像銀行不僅會存儲銀行卡的余額,還會存儲卡中的每筆錢怎麼來的以及怎麼花的。交易樹中就存儲著當前區塊中的包含的所有交易。
2.收據樹
由於智能合約的引入增加了不少復雜性,所以以太坊用收據樹存儲著一些交易操作的額外信息。比如交易過程中執行日誌就包含在收據樹中方便查詢。收據樹和交易樹是一一對應的。每發生一次交易就會有一次收據。
和狀態樹不同交易樹和收據樹只維護當前區塊內發生的交易,因為當時區塊發生交易時不需要再去查找另外1個交易,也就之前需要可能遍歷整個區塊鏈的查找操作了。
由於以太坊中的出塊速度較快,我們進行一些查詢一些符合條件交易的時候會面臨大量數據遍歷困難的問題。收據樹中引入了布隆過濾器可以幫助我們有效緩解這一困難。
布隆過濾器將大集合中每個元素進行hash運算映射到1個較小的集合,這時再來1個元素要判斷是否在大集合的時候,不需要遍歷整個大集合,而是去進行hash運算去小集合中尋找是否存在,如果不存在,肯定不在大集合中,如果存在則不能說明任何問題。
如上圖所示,布隆過濾器只能證明某1個元素不在集合中,不能證明1個元素在結合中。
以太坊中如果我們要在較多區塊中尋找某1個交易,則可以利用布隆過濾器,過濾掉肯定不存在目標交易的區塊,然後進入收據樹內繼續利用布隆過濾器篩選,剩下的才是可能的目標交易的交易,進行一一比對即可。
我們介紹了以太坊的核心數據結構,狀態樹&交易樹&收據樹,他們都是使用相同的數據結構-哈希壓縮字典樹。但狀態樹是維護1顆全局賬戶樹,交易樹和收據樹則是維護本區塊內的交易或收據。
介紹完數據結構後,後面我們會用幾篇文章來介紹以太坊中的一些核心演算法,比如共識機制,挖礦演算法等。
❺ 以太坊鏈上數據查詢工具: https://eth.tokenview.com/cn
etherscan.io目前在國內無法訪問,現在向大家推薦這個以太坊數據查詢工具, https://eth.tokenview.com/cn ,數據來自他們自己的以太坊節點,數據同步速度快。
四個優勢:
數據支持以太坊上的區塊信息,地址余額,轉賬交易,以太坊所有Token,基於以太坊發行的穩定幣。
鏈上存儲的數據(inputdata)可以解碼成普通語言,我們可以查看在以太坊上的留言。
幾十種鏈上數據圖表,同時有為高級數據分析師提供的Metrics模塊。
由中國團隊Tokenview開發,在國內可高速訪問。
❻ 數字貨幣轉給了騙子,能根據地址找到對方嗎
這個應該能查到對方,(現在登錄平台,賬號……都是實名認證,想鑽法律監管空子不太容易)現在網路監管逐步趨於完善,登錄昵稱都很嚴格,都是實名認證。
❼ 追蹤和管理數字資產新姿勢,教你學會查看區塊鏈賬單
賬單記錄價值流通和狀態,是金融服務的基礎功能。
我們常用的銀行、支付寶、微信支付等都會為普通用戶和商家記錄一筆交易,提供不同維度的查詢、統計和分析服務。
比如大家愛曬的支付寶年度賬單,會統計用戶全年的總收支、消費種類、余額寶和其他理財收益、點外賣的次數等。通過大數據技術,展示各個地域,不同年齡段的消費興趣和趨勢,讓消費者更了解自己周邊的消費環境,商家能夠及時把握市場需求。
在去中心化的區塊鏈網路里,交易被永久的記錄在鏈上,公開透明,人人可查。
但是由於區塊鏈的設計更傾向於保證不可篡改和數據壓縮需求,導致業務層面的過濾查詢功能缺失。 加上不同鏈的規則不同,追蹤和管理加密資產變的異常困難。這也是為什麼數字資產投資者常常感嘆「總覺得帳沒算明白「的原因所在。
SixPencer推出全新區塊鏈記賬神器,目前已支持比特幣(Bitcoin)和以太坊(Ethereum)底層的資產追蹤和管理,免費使用,無需注冊。
一經推出,受到了包括礦工、資管機構、OTC商戶、加密創業公司、數字資產投資者的喜愛。
作為專業的資管工具,不僅能夠查詢所有鏈上交易記錄,實時查看賬戶余額和持有資產,而且 提供每日各幣種收支情況、支持單或多地址聚合收支統計、地址畫像分析和圖表、大額交易記錄排行、聯系人管理等。
進入網站後, 在首頁搜索框,輸入比特幣或以太坊地址 , 點擊搜索即可進入該地址的總覽頁面。
我們以目前ETH持有量全網排名第一的地址: (標簽:bitfinex 1) 賬戶作為demo賬戶進行演示,所有數據均為真實鏈上數據。
這里簡單介紹下區塊鏈上的地址和銀行賬戶的區別。 在區塊鏈上,地址就類似於銀行卡號,知道地址就等於知道銀行卡號一樣,可以向其轉賬。
但不同的是, 區塊鏈是不可篡改的分布式公開賬本,通常具有匿名性,任何人可以對任何地址進行公開查詢。 銀行賬戶只能查詢本人的賬戶信息,無法通過銀行卡號得知其他人的賬戶信息。
如果用戶有多個地址,或者想追蹤其他地址,均可以通過搜索, 所有搜索過的地址信息會在資產組合頁面進行匯總,點擊下拉框即可切換或者刪除賬戶。
SixPencer除包含區塊鏈瀏覽器提供的基礎信息外,添加展示了一些個性化的指標,幫助用戶了解自己的鏈上畫像,也可以追蹤其他賬戶的鏈上軌跡。在下面總覽頁面可以查看地址的資產概覽、歷史指標、收支統計、持有資產信息。
地址概覽
創建時間:第一次收到ETH的日期
凈資產:所有資產,包含ERC20 token資產的合計美元價值
ETH排行:持有ETH數量在所有以太坊地址中的排名
ETH余額和估值:持有的ETH數量和其對應的美元價值
歷史指標
歷史指標展示交易量、交易次數、代幣分析和聯系人分析四大維度。 通過統計,算不清的糊塗賬終於能算清了,比如最簡單的會計計算,ETH總收入=ETH余額+ETH總支出+ETH總手續費。 再比如總交易次數=轉入交易次數+轉出交易次數。
由於以太坊網路的特殊性,所有轉賬的手續費都是以ETH支付。因此我們將手續費單獨羅列出來,在交易明細中也支持手續費單獨篩選,幫助用戶統計手續費支出。
一些有趣的數據,demo賬戶手續費支出為1.1556ETH,ETH單筆大額轉賬達90萬個ETH,持有代幣數量有350種,交易次數最多的代幣是USDT,與其交易過的地址僅37個。
一般持有上百種不同資產的地址通常都是交易所地址,加上交易次數和聯系人並不多,可以排除是對外地址,基本可以判斷是bitfinex交易所內部使用地址。
收支情況
統計了本月全部資產合計收入和支出,支出包含手續費支出。
持有資產情況
展示持有的資產數量、價值、資產價格和24h漲跌幅。demo賬戶這類交易所的地址,持有資產通常10頁都放不下。
SixPencer除了提供地址的交易流水外,還支持全歷史交易記錄查詢和篩選、余額信息、日收支統計等。
交易明細
從下面頁面可以清晰得知ETH資產的本月收支情況 ,用戶還可以根據日期,資金流向、交易分類和標簽系統進行篩選,根據自身需求進行更細致的統計,後面會介紹如何進行指定地址的交易篩選。
點擊上圖中的ETH下拉框,可以切換到其他幣種的交易詳情頁面 ,比如切換到USDT的交易詳情查看USDT的明細狀況。
除月賬單外,SixPencer展示每筆交易的交易明細,提供交易方向、交易對手方、交易金額、賬戶余額、交易時間、每日收支情況等信息。 下圖可以看到近6筆ETH交易均為從bitfinex 3 賬戶轉入bitfinex 1的交易。
交易詳情
點擊任意一筆交易明細,即可進入該筆交易的交易詳情頁。 交易哈希是每筆鏈上轉賬都有的唯一不可篡改的交易ID,類似於訂單號的概念。
通過交易哈希就可以查詢到一筆交易的具體信息。
下面所展示的交易數量、交易狀態、交易時間、發送和接受方、手續費等都是這筆交易的具體信息,在這里不再贅述。 值得注意的是,SixPencer提供個人標簽和備注系統,用戶可以對單筆交易,進行個性化分類和備注, 幫助記憶,不遺忘每一筆交易。
如何快速找到和指定地址的交易信息?
時間變久,交易變多後,查詢鏈上指定交易信息就變得異常復雜和困難,SixPencer將交易信息按照業務需求進行細化,並提供標簽系統輔助用戶進行自定義交易查詢和統計。
比如想要查詢2020年6月地址(標簽:bitfinex 3)一共向demo賬戶轉入了多少ETH。通過我們的賬單系統,僅需兩步操作即可查詢。
1、打標簽: 為了演示,我們將「bitfinex 3「這個標簽重命名為「測試test」。
2、篩選: 將日期篩選為6月1日-6月30日,在篩選欄 選中「轉入」,並在最下面的標簽欄選中「測試test」,點擊保存。
保存後即可搜索出所有6月「測試test」轉入到demo賬戶的交易信息,從下圖可以看出6月份,demo賬戶共從標簽為「測試test「的地址收到58,440.2489個ETH。
如果用戶想查詢和多個指定地址的交易,選中多個標簽後,調整日期、資金流向等信息即可進行資產的自動統計。
在分析一欄,用戶可以查詢地址不同維度的圖表分析信息,包含余額、交易、分類和排行四大維度。 分別點擊各維度還能夠查看更多詳細數據和圖表。
余額:余額展示資產的余額數量和價值走勢
交易:交易展示全部交易、轉入和轉出的交易數量、交易數量價值和交易次數走勢
分類:分類根據平台地址標簽系統對交易類型進行統計,反應地址的交易偏好
排行:排行按照交易次數展示活躍聯系人,按照交易金額展示大額交易
比如排行分析,能夠很快查看與某個地址的具體交易金額和大額轉賬情況。如下圖,demo賬戶與標簽為「測試test」 的地址在本月一共交易了177次,其他與demo賬戶交易較多的都是ERC20 Token合約調用交易。
從下圖看,大額排行也都是與標簽為「測試test」的地址交易信息,表格展示交易對象、交易時間、交易方向、交易數量和價值。 對交易所大戶感興趣的,可以查詢交易所地址的大額轉賬信息,看看哪些地址都是充提大戶。
通訊錄展示所有和demo賬戶有過交易記錄的地址,除平台自帶的標簽體系外,用戶可以對地址添加標簽或者重命名標簽。
標簽:展示平台標簽系統已知標簽和用戶自行添加的標簽
最近聯系人:展示最近30天有過交易記錄的地址/標簽
全部聯系人:展示所有有過交易記錄的聯系人地址/標簽,交易數量超過1萬筆的地址,取最近1萬筆交易的聯系人展示
綜上,SixPencer的全新資產追蹤和管理工具能夠提供比區塊鏈瀏覽器或者錢包更綜合的查詢和分析功能, 作為一款工具產品意在輔助用戶進行數字資產管理,通過對鏈上用戶畫像的進一步解析,幫助大家更好的決策。
我們認為區塊鏈的公開透明機制應該讓數據查詢更簡單,但目前按照實際業務需求快速查詢區塊鏈數據仍然是難點痛點,並成為商業落地的一大阻礙。
數字資產交易僅僅是其中一小塊,未來還將有大量有價值的數據存儲在區塊鏈上,SixPencer將繼續推出更多實用工具,讓數據更好為業務服務。
❽ 以太坊2.0升級後以前的交易記錄能查到嗎
可以。以太坊2.0,也稱為Eth2或Serenity,也就是現有以太坊區塊鏈的升級版本。此次升級旨在提高以太坊網路的速度、效率和可擴展性,使其能夠處理更多交易。以太坊2.0升級後以前的交易記錄能查到,但是不能進行交易了。