成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python以太坊區(qū)塊鏈交互將數(shù)據(jù)存入數(shù)據(jù)庫

paulli3 / 1723人閱讀

摘要:是一個用于連接以太坊區(qū)塊鏈的庫。網(wǎng)絡(luò)執(zhí)行以太坊協(xié)議,該協(xié)議定義節(jié)點彼此之間的交互規(guī)則及網(wǎng)絡(luò)上的智能合約。數(shù)據(jù)庫設(shè)計下一步是設(shè)計數(shù)據(jù)庫。

關(guān)于區(qū)塊鏈介紹性的研討會通常以易于理解的點對點網(wǎng)絡(luò)和銀行分類賬這類故事開頭,然后直接跳到編寫智能合約,這顯得非常突兀。因此,想象自己走進(jìn)叢林,想象以太坊區(qū)塊鏈?zhǔn)且粋€你即將研究的奇怪生物。今天我們將觀察該生物,并與其進(jìn)行交互然后將有關(guān)它的所有數(shù)據(jù)收集到一個集中存儲中供自己使用。

進(jìn)行第一次設(shè)置

首先,你需要安裝web3py。Web3py是一個用于連接以太坊區(qū)塊鏈的Python庫。你需要事先知道的是,沒有可以從中下載數(shù)據(jù)的中央管理系統(tǒng)。彼此共享資源的內(nèi)連節(jié)點(“對等體”)存儲經(jīng)驗證的數(shù)據(jù)副本(或其一部分)。網(wǎng)絡(luò)執(zhí)行以太坊協(xié)議,該協(xié)議定義節(jié)點彼此之間的交互規(guī)則及網(wǎng)絡(luò)上的智能合約。

如果要訪問有關(guān)交易,余額,區(qū)塊或其他任何被寫入?yún)^(qū)塊鏈的信息,協(xié)議需要你連接到節(jié)點。節(jié)點不斷地相互共享新數(shù)據(jù)并驗證數(shù)據(jù),因此這樣你就可以確定那些是未被篡改的數(shù)據(jù),那些是最新的數(shù)據(jù)。

你可以在第一次接觸以太坊的方法中使用兩種基本類型的節(jié)點:本地或托管。本地節(jié)點可以在你的計算機(jī)上運(yùn)行,這意味著你首先需要下載像geth這樣的客戶端,它會將區(qū)塊鏈同步到你的設(shè)備,要占用存儲空間并花費大量時間來完成。對于第一次學(xué)習(xí),托管節(jié)點是更好的選擇——它由其他人控制,但你可以輕松連接到它并自己玩區(qū)塊鏈。

去Infura并創(chuàng)建自己的免費帳戶以訪問此類托管節(jié)點。當(dāng)你完成后,你可以看到mainnet主網(wǎng)(即以太坊區(qū)塊鏈)和一堆testnets測試網(wǎng),它們基本上可以測試你的智能合約,這樣你就可以在將昂貴的代碼部署到mainnet之前犯錯誤,并糾正它們。

這第一次我們先導(dǎo)入Web3對象并建立HTTP連接。

from web3 import Web3 
web3 = Web3(Web3.HTTPProvider("https://mainnet.infura.io/your-own-personal-number"))

現(xiàn)在你已經(jīng)完成了!你可以使用web3 API瀏覽查詢數(shù)據(jù)結(jié)構(gòu)了。

查詢特定區(qū)塊信息
#current block number
>>> web3.eth.blockNumber
5658173
#get the content of the most recently mined block
>>> web3.eth.getBlock("latest")

此命令返回AttributeDict數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)是key-value鍵值對的字典,如下所示:

AttributeDict({"difficulty": 3297284143124448,
 "extraData": HexBytes("0x65746865726d696e652d6177732d61736961312d34"),
 "gasLimit": 7999992,
 "gasUsed": 7990111,
 "hash": HexBytes("0x8c09ba67123601c08ef5d292acaffd36798ca178b7d6fecd5e1144ce8e3b9e50"),
 "logsBloom": HexBytes("0x348000240b40620836308460180004415000c8ccb260021402420721c22801ca847c625c0a89030482044001523a4d100050100250d100858381260a186312088006c154010000491216446840888200c1812088c12b06000809a808530014160000812c2ac20008a201c83380314d02242338400c0500c2a028005010988c44b0608a020400201032e10e16142b931115469824248066100b082224200222140a41a20aa2006224d608210f1a22811d03969423e8c08058100388c0800402002a000802130c40d289201900c38142a1cc0380a4010f0201040d4022200022018c5801346c168502841906940485ea1d9864044060a00000a00616004d006090"),
 "miner": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
 "mixHash": HexBytes("0x84320fd71345778b48e437f3403e9021575520ba23aaac48dd7a352c9ce31f75"),
 "nonce": HexBytes("0x98a0b1e00bfabac6"),
 "number": 5658173,
 "parentHash": HexBytes("0x01eda8a47a0151533d1afacf9b9108606d4d89a86e269ffffdaac9698b6fb12930"),
 "receiptsRoot": HexBytes("0xc40f774ad10ad443457c3a5a0db96b539af3007f8d351b198ca7bf2ef196b7e0"),
 "sha3Uncles": HexBytes("0x55725ec296c6c64257ed6a88d7d8c66160abe7b672f5d89bbad5487779b1d5fe"),
 "size": 27161,
 "stateRoot": HexBytes("0x5bfc7a9a87fb9991f2760807d56319154f1dab91d3cfc9530a597b6c5d064aba"),
 "timestamp": 1527002893,
 "totalDifficulty": 4339832462578780814928,
 "transactions": [HexBytes("0x1ce6bca99701c4e8acae986b10e7649d628d70ec62b7a8314bbb13726a312225"),
  HexBytes("0x6ba5e657243aea5f95afb40090313d10bb9443db41ed1216fbf7e7e60a16749a"),
 loooooots_of_transactions_here],
 "transactionsRoot": HexBytes("0x67e1e1f2f4b1d33791a0fba2d5ebf039bd6c331c665cb8020ff41d0e0eade46e"),
 "uncles": [HexBytes("0x3df1bffa62d73b3847b434e9ea459c10cfdc3e212a2e78ebbf0db58adbef30b5"),
  HexBytes("0x74bdcd4b88427854ae18f9c7ada28d46f26411bed09af6b040cbede66fdb1853")]})

并非所有這些變量都會立即對你有用,因為有些變量非常技術(shù)性,只有當(dāng)你對區(qū)塊鏈的實際工作方式有了更深入的了解時,它們的含義才有意義。你可以在所謂的黃皮書中閱讀有關(guān)它們的更多信息,或暫時跳過它們并使用易于理解的方法。

簡而言之,一個包含區(qū)塊頭部信息的區(qū)塊,一個寫入它的已驗證交易列表和一個未確認(rèn)列表(礦工的塊標(biāo)識符,他們的區(qū)塊太慢,無法進(jìn)入主區(qū)塊鏈,但仍因其計算工作量而獲得以太獎勵)。下面你可以看到每個變量的含義,我把它分成子類別。

General常規(guī)數(shù)據(jù)
Block variable Meaning 翻譯
number scalar value equal to the number of ancestor blocks (genesis block=0) 標(biāo)量值相對創(chuàng)始塊的數(shù)量,genesis block=0
size size of the block in bytes 塊的大小,以字節(jié)為單位
timestamp Unix"s time() at this block"s inception 這個塊開始時的Unix時間
miner 160-bit address for fees collected from successful mining 成功采礦收取以太的160位地址
gasLimit maximum gas expenditure allowed in this block 此區(qū)塊允許的最大氣體消耗量
gasUsed total gas used by all transactions in this block 此區(qū)塊中所有交易使用的總氣體
transactions list of transaction hashes included in the block 塊中包含的交易哈希列表
parentHash Keccak256 hash of the parent block"s header 父塊區(qū)塊頭的Keccak 256哈希值
hash current block"s hash 當(dāng)前塊的哈希值
extraData extra data in byte array 字節(jié)數(shù)組中的額外數(shù)據(jù)
挖礦相關(guān)
Block variable Meaning 翻譯
difficulty scalar value corresponding to the difficulty level of the block 對應(yīng)于塊的難度級別的標(biāo)量值
totalDifficulty integer of the total difficulty of the chain until this block 直到此區(qū)塊的鏈的總難度值
nonce hash of the generated proof-of-work; null when its a pending block 生成工作量證明的哈希值;當(dāng)區(qū)塊掛起時為null
mixHash 256-bit hash which is combined with the nonce and used to prove that sufficient amount of computation has been carried out on this block 256位哈希與nonce結(jié)合使用來證明已對此塊執(zhí)行了足夠的計算量
uncle相關(guān)
Block variable Meaning 翻譯
uncles list of uncle hashes uncle哈希值列表
sha3Uncles SHA3 of the uncles data in the block 塊中uncles數(shù)據(jù)的SHA3值
技術(shù)相關(guān)
Block variable Meaning 翻譯
receiptsRoot Keccak 256-bit hash of the root node of the tree structure populated with receipts of all transactions in this block Keccak樹結(jié)構(gòu)的根節(jié)點的256位哈希填充了此塊中所有交易的收據(jù)
stateRoot Keccak256 hash of the root node if the state trie after all transactions are executed and finalisations applied 在執(zhí)行所有交易并應(yīng)用終止后,如狀態(tài)為trie根節(jié)點的keccak256哈希值
transactionsRoot Keccak256 hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list trie結(jié)構(gòu)的根節(jié)點的keccak256哈希填充了交易列表中每個交易的收據(jù)
logsBloom the Bloom filter from indexable info (logger address and log topics) contained in each log entry from the receipt of each transaction in the transaction list 交易列表中每個交易的接收日志條目中包含的可索引信息(記錄器地址和日志主題)的Bloom過濾器
交易和收據(jù)

現(xiàn)在,我們還可以通過其唯一標(biāo)識符(即交易哈希)查找區(qū)塊中的單個交易。

>>> web3.eth.getTransaction("0x1ce6bca99701c4e8acae986b10e7649d628d70ec62b7a8314bbb13726a312225")

AttributeDict({"blockHash": HexBytes("0x8c09ba67123601c08ef5d292acaffd36798ca178b7d6fecd5e1144ce8e3b9e50"),
 "blockNumber": 5658173,
 "from": "0x390dE26d772D2e2005C6d1d24afC902bae37a4bB",
 "gas": 45000,
 "gasPrice": 123400000000,
 "hash": HexBytes("0x1ce6bca99701c4e8acae986b10e7649d628d70ec62b7a8314bbb13726a312225"),
 "input": "0x",
 "nonce": 415710,
 "r": HexBytes("0x1bb901ad0a3add517504cc459fdb1545d193020ec5c63a566e440ee39dbfe131"),
 "s": HexBytes("0x4b7ac95eb321b5947948ecb624e1d80b19d9cc876668c69cc2b32670f52b061a"),
 "to": "0xBbA2D99C9B3aF394B0d6417b1D58815eE495029D",
 "transactionIndex": 0,
 "v": 37,
 "value": 1000000000000000000})

和以前一樣,web3py返回一個屬性字典。下表總結(jié)了每個鍵的含義。

Transaction variable Meaning 翻譯
blockHash hash of the block the transaction belongs to 交易所屬區(qū)塊的哈希值
blockNumber number of that block 該塊的編號
hash transaction hash (unique identifier) 交易地址哈希(唯一標(biāo)識符)
from 160-bit address of a sender of a transaction 來自交易發(fā)送方的160位地址哈希
to address of the recipient or null for a contract creation transaction 收件人的地址或者創(chuàng)建合約交易時為null
value number of wei to be transfered to the recipient or newly created account (case of contract creation) 要轉(zhuǎn)移給收件人或新創(chuàng)建帳戶的wei數(shù)量(創(chuàng)建合約的情況)
gas gas consumed by the transaction 交易消耗的天然氣
gasPrice number of Wei to be paid per unit of gas for all computatioon costs of this transaction 此交易所有計算成本的每單位天然氣的支付數(shù)量
nonce number of transactions/contract creations sent by the sender prior to this one 發(fā)送方在此之前發(fā)送的交易和創(chuàng)建合約的數(shù)量
v/r/s used to identify the sender; the signature values of the transaction 用于識別發(fā)件人交易的簽名值
input the data sent along with the transaction 與交易一起發(fā)送的數(shù)據(jù)
transactionIndex index of the transaction in the block 區(qū)塊中交易的索引

最后,我們還可以查看交易收據(jù):

>>> web3.eth.getTransactionReceipt("0x68c70c5ffe54a42ebf7118e7e931aeac018cee4656a816ffe6a01388da50c851")

AttributeDict({"blockHash": HexBytes("0x44338e1f80302037c7213e8f56dd35d8a473b000319bc200f76e910e62d12f98"),
 "blockNumber": 5617795,
 "contractAddress": None,
 "cumulativeGasUsed": 21004,
 "from": "0xea6e3e41ebaa09d550d3c3f0d72971b3c5ccc261",
 "gasUsed": 21004,
 "logs": [],
 "logsBloom": HexBytes("0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
 "status": 1,
 "to": "0xd96a6e75d099ce529bbd257cbcb403224cceaebf",
 "transactionHash": HexBytes("0x68c70c5ffe54a42ebf7118e7e931aeac018cee4656a816ffe6a01388da50c851"),
 "transactionIndex": 0})

交易收據(jù)包含一些重復(fù)和新條目,新的條目解釋如下。

Receipt variable Meaning 翻譯
status boolean whether the transaction was successfull; false if the EVM (Ethereum Virtual Machine) reverted the transaction 交易是否成功,如果EVM(以太坊虛擬機(jī))還原了交易則返回false
contractAddress the contract address created if the transaction was a contract creation; otherwise null 如果交易是合約創(chuàng)建,則創(chuàng)建的合同地址;否則為null
gasUsed the total amount of gas used when this transaction was executed in the block 在區(qū)塊中執(zhí)行此交易時使用的總氣體量
cumulativeGasUsed the sum of gasUsed by this transaction and all preceding transactions in the same block 此交易使用的gasUse和同一塊中所有先前交易的總和
logs array of log objects which the transaction has generated 交易生成的日志對象數(shù)組

作為參考,除了黃皮書之外,我還包括各種額外資源來編制這些表格2,3,4,5。

如你所見,只需幾個簡單的命令,就可以連接到網(wǎng)絡(luò)并獲得有關(guān)原始格式的交易,區(qū)塊或狀態(tài)的基本信息。這將為這些數(shù)據(jù)打開一個新窗口!

數(shù)據(jù)庫管理系統(tǒng)

當(dāng)計劃將數(shù)據(jù)寫入適當(dāng)?shù)臄?shù)據(jù)庫時,你可能會意識到有許多針對Python愛好者的管理系統(tǒng)解決方案,例如無服務(wù)器SQLite,或基于服務(wù)器的MySQL,PostgreSQL或Hadoop。根據(jù)你的意圖,必須確定哪個選項最適合你的項目??偟膩碚f,我發(fā)現(xiàn)這些要點很有幫助:

數(shù)據(jù)庫的預(yù)期大小是什么(即可以在單個機(jī)器系統(tǒng)上處理)?

這些條目是經(jīng)常編輯還是會保持不變?

數(shù)據(jù)庫是否應(yīng)該由多方/應(yīng)用程序同時訪問和編輯?

隨著時間的推移,以太坊區(qū)塊鏈正在穩(wěn)步增長,截止到2018年6月接近1TB,這個很小,因此對于像Hadoop這樣的分布式處理系統(tǒng)來說并不是最佳選擇。區(qū)塊鏈數(shù)據(jù)庫將被寫入一次,然后僅使用新條目進(jìn)行擴(kuò)展,保留舊條目不變。此數(shù)據(jù)庫的預(yù)期用例由一個通道編寫,并由其他通道以只讀方式訪問,因此我們實際上不需要在服務(wù)器上運(yùn)行它。在你的機(jī)器上本地保存數(shù)據(jù)庫將導(dǎo)致快速讀取,這對于像SQLite這樣的無服務(wù)器管理系統(tǒng)是可取的和可實現(xiàn)的。Python有一個內(nèi)置的庫sqlite3,因此我們甚至不需要安裝新的包。

數(shù)據(jù)庫設(shè)計

下一步是設(shè)計數(shù)據(jù)庫。請記住哪些數(shù)據(jù)字段與你的分析最相關(guān),并且旨在優(yōu)化搜索和存儲。例如,如果你不打算使用stateRoot,則可能需要完全跳過它或?qū)⑵浔4嬖诙鄮У谋碇?。可以更快地搜索具有較少列的表,如果稍后意識到你實際上具有stateRoot的用例,你仍然可以訪問它。你可能還希望將塊信息與交易信息分開;如果不這樣做,那么區(qū)塊屬性如timestamp將對區(qū)塊中的所有交易重復(fù)N次,浪費大量空間。稍后使用JOIN操作可以輕松地將交易與其塊屬性進(jìn)行匹配。

我設(shè)計的數(shù)據(jù)庫包含3個表:

Quick:最相關(guān)的交易信息,用于快速訪問和分析。

TX:所有剩余的交易信息,

Block:指定區(qū)塊的信息。

變量的命名約定相對于原始的web3py略有改變,以消除歧義,例如將塊哈希和交易哈希都稱為“哈?!?,或使用“from”/“to”作為列名,這在SQL有不同的含義,會使程序崩潰。

交易值,余額和其他大數(shù)字需要作為字符串存儲在數(shù)據(jù)庫中。原因是SQLite只能處理最多8字節(jié)存儲的有符號整數(shù),最大值為2的63次方-1大約是9223372036854775807.這通常遠(yuǎn)低于wei中的交易值(例如,1ETH = 10*18 wei)。

構(gòu)建你的迷你數(shù)據(jù)庫

完整的代碼可以在GitHub上找到。它將根據(jù)上層架構(gòu)組織區(qū)塊鏈信息,并輸出包含預(yù)先指定數(shù)量的塊數(shù)據(jù)的blockchain.db文件。要測試它,請轉(zhuǎn)到database.py文件并為要寫入的塊數(shù)選擇合理的數(shù)字,例如:

Nblocks = 10000

默認(rèn)情況下,你應(yīng)該將web3對象指向Infura端點。 如果你有IPC提供商(即你的本地節(jié)點),也可以切換到IPC提供商,只需取消注釋該行:

# or connection via node on the VM 
#web3 = Web3(Web3.IPCProvider("/path-to-geth.ipc/"))

修改路徑,然后只需在命令行python database.py中運(yùn)行。代碼會將最后寫入的塊的編號轉(zhuǎn)儲到lastblock.txt文件中,以防你需要重新啟動。

如何使用數(shù)據(jù)庫

一旦將第一個條目寫入數(shù)據(jù)庫,就可以通過ipython shell開始與它進(jìn)行通信。例如,要打印表“Quick”的前5行,你可以運(yùn)行下面的代碼。

import sqlite3 as sq3
conn = sq3.connect("blockchain.db")
cur = conn.cursor()

# some SQL code, e.g. select first five entries of the table Quick
cur.execute("SELECT * FROM Quick LIMIT 5")
a = cur.fetchall() #list of tuples containing all elements of the row
print(a)
conn.close()
本地節(jié)點與Infura

如果要構(gòu)建大型數(shù)據(jù)庫,則應(yīng)下載geth并同步節(jié)點。同步可以在3種基本模式下完成:

如果你不需要過去的帳戶狀態(tài),則可以在快速模式下同步節(jié)點6。

下面的圖表顯示了此代碼寫入數(shù)據(jù)庫的速度,與本地完全同步的節(jié)點(IPC)與Infura(Infura)上的地址進(jìn)行通信。正如你所看到的,在本地節(jié)點上運(yùn)行此代碼是值得的,因為你可以將速度提升近2個數(shù)量級(即100x)!

總結(jié)

現(xiàn)在你已擁有自己的本地數(shù)據(jù)庫,了解區(qū)塊鏈上發(fā)生的事情,可以開始探索它。例如,你可以計算自其起源以來的交易數(shù)量,查看作為時間函數(shù)生成的地址數(shù)量——天空是你可以了解的有關(guān)區(qū)塊鏈的限制。我們?yōu)槟愕臄?shù)據(jù)科學(xué)游樂場奠定了基礎(chǔ)。因此,請繼續(xù)探討,或查看下一篇文章,了解潛在的應(yīng)用。

python用web3.py庫開發(fā)以太坊來說非常的方便,有興趣的用戶可以關(guān)注我們的python以太坊教程,主要是針對python工程師使用web3.py進(jìn)行區(qū)塊鏈以太坊開發(fā)的詳解。

另外其他語言可以學(xué)習(xí)的以太坊教程如下:

web3j教程,主要是針對java和android程序員進(jìn)行區(qū)塊鏈以太坊開發(fā)的web3j詳解。

以太坊教程,主要介紹智能合約與dapp應(yīng)用開發(fā),適合入門。

以太坊開發(fā),主要是介紹使用node.js、mongodb、區(qū)塊鏈、ipfs實現(xiàn)去中心化電商DApp實戰(zhàn),適合進(jìn)階。

php以太坊,主要是介紹使用php進(jìn)行智能合約開發(fā)交互,進(jìn)行賬號創(chuàng)建、交易、轉(zhuǎn)賬、代幣開發(fā)以及過濾器和事件等內(nèi)容。

C#以太坊,主要講解如何使用C#開發(fā)基于.Net的以太坊應(yīng)用,包括賬戶管理、狀態(tài)與交易、智能合約開發(fā)與交互、過濾器和事件等。

這里是原文

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24263.html

相關(guān)文章

  • Python以太區(qū)塊交互數(shù)據(jù)存入數(shù)據(jù)

    摘要:是一個用于連接以太坊區(qū)塊鏈的庫。網(wǎng)絡(luò)執(zhí)行以太坊協(xié)議,該協(xié)議定義節(jié)點彼此之間的交互規(guī)則及網(wǎng)絡(luò)上的智能合約。數(shù)據(jù)庫設(shè)計下一步是設(shè)計數(shù)據(jù)庫。 關(guān)于區(qū)塊鏈介紹性的研討會通常以易于理解的點對點網(wǎng)絡(luò)和銀行分類賬這類故事開頭,然后直接跳到編寫智能合約,這顯得非常突兀。因此,想象自己走進(jìn)叢林,想象以太坊區(qū)塊鏈?zhǔn)且粋€你即將研究的奇怪生物。今天我們將觀察該生物,并與其進(jìn)行交互然后將有關(guān)它的所有數(shù)據(jù)收集到一...

    baukh789 評論0 收藏0
  • 以太DApp開發(fā)入門教程——Node.js和truffle框架打造區(qū)塊投票系統(tǒng)

    摘要:第一節(jié)課程概述本課程面向初學(xué)者,內(nèi)容涵蓋以太坊開發(fā)相關(guān)的基本概念,并將手把手地教大家如何構(gòu)建一個基于以太坊的完整去中心化應(yīng)用區(qū)塊鏈投票系統(tǒng)。第七節(jié)以太坊世界計算機(jī)以太坊是一種區(qū)塊鏈的實現(xiàn)。交易數(shù)據(jù)以太坊中每筆交易都存儲在區(qū)塊鏈上。 第一節(jié) 課程概述 本課程面向初學(xué)者,內(nèi)容涵蓋以太坊開發(fā)相關(guān)的基本概念,并將手把手地教大家如何構(gòu)建一個 基于以太坊的完整去中心化應(yīng)用 —— 區(qū)塊鏈投票系統(tǒng)。 ...

    zebrayoung 評論0 收藏0
  • 以太DApp開發(fā)入門教程——Node.js和truffle框架打造區(qū)塊投票系統(tǒng)

    摘要:第一節(jié)課程概述本課程面向初學(xué)者,內(nèi)容涵蓋以太坊開發(fā)相關(guān)的基本概念,并將手把手地教大家如何構(gòu)建一個基于以太坊的完整去中心化應(yīng)用區(qū)塊鏈投票系統(tǒng)。第七節(jié)以太坊世界計算機(jī)以太坊是一種區(qū)塊鏈的實現(xiàn)。交易數(shù)據(jù)以太坊中每筆交易都存儲在區(qū)塊鏈上。 第一節(jié) 課程概述 本課程面向初學(xué)者,內(nèi)容涵蓋以太坊開發(fā)相關(guān)的基本概念,并將手把手地教大家如何構(gòu)建一個 基于以太坊的完整去中心化應(yīng)用 —— 區(qū)塊鏈投票系統(tǒng)。 ...

    MASAILA 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<