導航:首頁 > 以太坊區 > 樹莓派以太坊私鏈搭建

樹莓派以太坊私鏈搭建

發布時間:2024-03-31 05:26:55

① CentOS 6.5上搭建以太坊私有鏈,編譯時報錯: make: *** [geth] Error 1,請各位大神指教

build/env.sh go run build/ci.go install ./cmd/geth
make: *** [geth] Error 1
沒有這個目錄,或者這個目錄許可權不夠

② 現在區塊鏈應用也很多,請問什麼樣的才算是好的區塊鏈應用呢在哪裡可以清楚的了解知道呢

想了解區塊鏈應用,可以多參考很多書籍和觀點,有《圖說區塊鏈》《區塊鏈:重塑經濟與世界》《新經濟藍圖與導讀》,還有幣安社區的文章,包括對幣安社區這個平台也詳細了解,實力牛X。

一、區塊鏈是什麼

區塊鏈(Blockchain),顧名思義,是由區塊(Block)和鏈(chain)組成,它是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可偽造、安全可信的分布式賬本。

2008年,中本聰發表的論文《比特幣:一種點對點的電子現金系統》中第一次提出區塊鏈和加密數字貨幣的構想。從比特幣開始,區塊鏈成為各種各樣數字貨幣的底層技術。

二、區塊鏈的工作原理:

1、基本概念包括:
(1)交易(Transaction):操作一次,會使賬本狀態改變一次,如添加一條記錄;
(2)區塊(Block):記錄規定時間內發生的交易和狀態數據,是對當前賬本狀態的一次共識和保存;
(3)鏈(Chain):由一個個區塊按照時間順序串聯而成,是整個狀態變化的日誌記錄。
理解了區塊鏈的工作概念也就不難理解其工作原理,假設存在一個分布式的數據記錄本,這個記錄本只允許添加、不允許刪除和更改,其結構是由一個個「區塊」串聯而成的線性的鏈(這也是「區塊鏈」名字的來源),新的數據要加入,必須放到一個新的區塊中,維護節點可以提議一個新的區塊,但是必須經過一定的共識機制來對最終選擇的區塊達成一致。

2、以比特幣為例來看區塊鏈的工作原理。

比特幣的區塊分為區塊頭和區塊體兩部分。

三.區塊鏈的核心優勢和特點

1、去中心化
區塊鏈數據的驗證、記賬、存儲、維護和傳輸等過程均是基於分布式系統結構,不存在中心化的硬體或管理機構,任意節點的權利和義務都是均等的,系統中的數據塊由整個系統中具有維護功能的節點來共同維護。
2、開放透明
系統是開放的,除了交易各方的私有信息被加密外,區塊鏈的數據對所有人公開,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用,因此整個系統信息高度透明。
3、安全性
區塊鏈採用基於協商一致的規范和協議(比如一套公開透明的演算法)使得整個系統中的所有節點能夠在去信任的環境自由安全的交換數據,使得對「人」的信任改成了對機器的信任,任何人為的干預不起作用。
4、信息不可篡改
一旦信息經過驗證並添加至區塊鏈,就會永久的存儲起來,除非能夠同時控制住系統中超過51%(幾乎不可能)的節點,否則單個節點上對資料庫的修改是無效的,因此區塊鏈的數據穩定性和可靠性極高。
5、匿名性
由於節點之間的交換遵循固定的演算法,其數據交互是無需信任的(區塊鏈中的程序規則會自行判斷活動是否有效),因此交易對手無須通過公開身份的方式讓對方自己產生信任,對信用的累積非常有幫助。

四、區塊鏈的分類

目前來說,區塊鏈最主流的分類是根據參與者的不同,把區塊鏈分為公有鏈(Public Blockchain)、私有鏈(Private Blockchain)和聯盟鏈(Consortium Blockchain)。

1、公有鏈:任何人都可以參與使用和維護,並且能夠獲得該區塊鏈的有效確認,公有鏈是最早的區塊鏈,也是目前應用最廣泛的區塊鏈,典型的如比特幣區塊鏈,信息是完全公開的。

如果引入許可機制,包括私有鏈和聯盟鏈兩種。
2、私有鏈:一個公司或者個人,僅使用區塊鏈的技術,獨享該區塊鏈的寫入許可權,信息不公開。目前保守的巨頭(傳統金融)都是想實驗嘗試私有區塊鏈,私鏈的應用產品還在摸索當中。
3、聯盟鏈:是介於公有鏈和似有鏈之間,由多個組織共同控制的區塊鏈,該鏈的使用是有許可權的管理,可以受制於管理者,也根據管理者的意願開放給他人。
除此之外,根據區塊鏈使用場景和目的的不同,分為以數字貨幣為目的的貨幣鏈,以記錄產權為目的的產權鏈,以眾籌為目的的眾籌鏈等。

五、區塊鏈的具體應用場景分析

1、信息防偽

5月28日,騰訊CEO馬化騰在貴陽數博會上就茅台酒打假問題提出了:基於雲端的綜合區塊鏈技術的防偽方法,其效率將遠高於傳統防偽方式。未來的防偽驗證場景可能只需用戶使用手機進行簡單的掃描,就可以得到大量的基於不同的維度的完整信息。

以茅台酒為例:

酒廠地址,製作車間,操作員工,檢驗員,出廠時間,運輸車輛信息及駕駛人員信息,

酒的年份原料來源,原料提供商,保存倉庫編號,原料運輸車輛及駕駛人員信息,

所有的信息都能夠精準溯源,被永久記錄且不可篡改。

綜合以上信息即可輕易驗證真偽。

2、食品安全問題

早在去年11月份沃爾瑪就已經和IBM進行合作,通過使用區塊鏈技術來追蹤食品來源,以此來確保食品的安全性及增加食品的而流通性以降低成本,對於沃爾瑪等大型超市來說,以往出現食品安全問題需要幾天時間進行問題食品的來源調查,使用了此項技術之後,只需要產品的一項信息就能夠做到精準溯源,食品產地、檢驗者、供應商、物流運輸等重要信息,幾分鍾之內就能快速發現問題。目前來說使用區塊鏈追蹤的產品有包括美國的包裝產品和中國的豬肉。

3、信息安全

區塊鏈技術正在推動一場信息安全技術變革。中間人攻擊、數據篡改、DDoS三大安全威脅

(1)身份保護

PKI是電子郵件、消息應用、網站等各種通訊應用中常見的公鑰加密技術。但是由於大多數PKI的實現以來集中式的可信第三方認證機構(CA)來發放、激活和存儲用戶證書,黑客可攻擊PKI假冒用戶身份或破解加密信息。

CertCoin是首個區塊鏈PKI實現,來自MIT,去除了中心化的認證中心,以區塊鏈作為於域名和公鑰的分布式賬本。

Pomcor公司:區塊鏈PKI實現路徑:保留認證中心,用區塊鏈存儲已經發放和激活的證書的hash值。用戶通過去中心化和透明的來源鑒別證書的真實性,同時還能通過本地基於區塊鏈拷貝進行秘鑰和簽名的認證來提高網路訪問性能。

(2)數據完整性保護

GuardTime開發了基於區塊鏈技術的無秘鑰簽名架構(KSI),取代基於秘鑰的數據認證技術。KSI在區塊鏈上存儲原始數據和文件的哈希表,運行哈希演算法來驗證其他拷貝,將結果與區塊鏈存儲的數據對比。任何數據的篡改都會被迅速發現,因為原始哈希表存儲在數以百萬計的節點。

(3)關鍵基礎設施保護

互聯網的「阿喀琉斯之踵」,DDoS進入TB時代,DDoS仍然是黑客低成本搞垮大目標的最簡單的武器,DNS服務是黑客進行大規模破壞的首要目標,但區塊鏈技術有望從根本上解決。

區塊鏈的分布式存儲,使黑客攻擊失去焦點,Nebulis正在開發一種分布式DNS系統,使用以太坊區塊鏈和星際互聯文件系統(IPFS,HTTP的分布式替代品)來注冊和解析域名。DNS最大弱點是緩存,緩存使DDoS攻擊成為可能,也是集權政府審查社交網路,操縱DNS注冊的禍根。一個高度透明的、分布式的DNS系統能夠有效杜絕任何實體,包括政府恣意操縱記錄。

四、金融行業

(1)數字貨幣:提高貨幣發行及使用的便利性

如國外的比特幣、以太幣,我國目前有果仁寶等等。

從使用實物交易,到物理貨幣和信用貨幣,再到比特幣網路的崛起,讓更多的人意識到其背後的分布式賬本區塊鏈技術,逐步在數字貨幣外的許多場景進行應用。

(2)跨境支付與結算:實現點到點交易,減少中間費用

轉賬與支付。目前,區塊鏈技術最成熟的應用便是支付與轉賬,區塊鏈技術能夠避免繁雜的系統,省卻銀行間對賬和審查的流程,加速結算速度;用虛擬貨幣無需清算所的介入,減少交易費用。各國家的清算程序不同,單筆匯款需2、3天才到帳,效率低,在途資金佔比極大。不再通過第三方,通過區塊鏈技術形成點對點的支付。省去第三方機構的環節,即可全天支付、實時到賬、提現快捷及降低隱形成本,有助於規避資金風險。具有及時性便利性。

(3)票據與供應鏈金融業務:減少人為介入,降低成本及操作風險

點對點之間的價值傳遞,實物票據或中心系統進行控制驗證;中介將被消除,減少人為介入。效率的提升,融資渠道更暢通,風險更低,多方受益。

(4)證券發行與交易:實現准實時資產轉移,加速交易清算速度

區塊鏈技術的應用可使證券交易的流程更簡潔、透明、快速,減少重復功能的IT系統,提高市場運轉的效率。對於股票,區塊鏈可以消除紙筆或電子表格記錄,減少交易的人為差錯,提高交易平台的透明度和可追蹤性。花旗與納斯達克合作推進區塊鏈應用。

(5)客戶徵信與反欺詐:降低法律合規成本,防止金融犯罪

記載於區塊鏈中的客戶信息與交易紀錄有助於銀行識別異常交易並有效防止欺詐。區塊鏈的技術特性可以改變現有的徵信體系,在銀行進行「認識你的客戶」(KYC)時,將不良紀錄客戶的數據儲存在區塊鏈中。

股權眾籌:建立在區塊鏈技術上的股權眾籌可以實現去中心化信任,投資者的回報也得到保證。

5、供應鏈管理

分布式分類帳系統,參與者全程跟蹤資產的所有權,可應用於國家和工廠之間移動時跟蹤汽車零件。

豐田為其核心零部件供應鏈運營,研發區塊鏈技術解決方案的前提。通過大量的數據幫助豐田更高效地確保記錄數據准確性,也能幫助管理供應鏈。同時,區塊鏈供應鏈能夠通過智能合同來控制保修,維修貨物相關成本和規格,整個產品生命周期內的交易不可撤銷。

航運業的第一個公共解決方案解決方案由海運國際(MTI)部署,使用區塊鏈供應鏈技術共享運輸集裝箱的驗證總量(VGM)信息。有關集裝箱VGM的信息對於確保船舶正確存放,防止在海上和港口事故發生是非常重要的。VGM數據存儲在區塊鏈供應鏈上,為港口官員,運輸公司,托運人和貨主提供永久記錄。這取代了麻煩的日誌,電子表格,數據中介和私人資料庫。

物流誠信體系 貨車幫貨車幫推出基於區塊鏈的物流企業金融解決方案,旨在為企業提供可靠的金融服務。不僅能幫助司機解決貸款難的問題,亦能改變行業誠信缺失的現狀,助力打造物流誠信體系。幫助構建物流企業身份鏈,打造物流企業可信數據生態。以透明、可監督、可追溯的演算法模型,篩選需要資金支持且可靠的企業,為其提供金融服務。另一方面,在技術層面將各執法部門鏈接起來,對失信企業進行聯合處罰。

6、政務管理

(1)選舉

基於區塊鏈技術特徵,聯想到現在選舉技術的弊端,我們將搭建一個開源的、針對選舉、投票和彩票的區塊鏈應用,我們稱之為選舉鏈(ElectionChain)。我們希望優化選舉和投票技術,使得投票更加公開透明,減少人為操控,讓選民可驗證自己的選舉結果。

包括身份認證、多鏈體系、閃投協議、共識演算法EDPOS、隱私保護、選票機制設計、去中心化ELC租借市場、存貯方案、智能合約等。

(2)政務服務

旨在實現基於區塊鏈技術的電子政務數字生態系統,向公民提供政務服務和政府各部門業務的自動化機制,必須將國家政務所有領域結合在一起,形成一個共有的信息空間,包含政府機構、經濟數據、金融交易和社會領域。這個生態系統還應包括注冊管理部門機構和對應軟體,用於構建基於智能合約的政府機構、企業和公共用戶的應用程序和平台。

③ 以太坊的 ChainId 與 NetworkId

ChainId 是 EIP-155 引入的一個用來區分不同 EVM 鏈的一個標識。如下圖所示,主要作用就是避免一個交易在簽名之後被重復在不同的鏈上提交。最開始主要是為了防止以太坊交易在以太經典網路上重放或者以太經典交易在以太坊網路上重放。在以太坊網路上是從 2675000 這個區塊通過 Spurious Dragon 這個硬分叉升級激活。

引入 ChainId 後,帶來了哪些影響呢?

NetworkId 主要用來在網路層標識當前的區塊鏈網路。NetworkId 不一致的兩個節點無法建立連接。

NetworkId 無法通過配置文件指定,智能通過參數 --networkid 來指定。所以我們啟動自己私鏈節點上需要記得加上這個參數。如果不加這個參數也不指定網路類型,默認 NetworkId 的值和以太坊主網一致。

不是。
這個根據上面的介紹可以很明顯的看出,兩者並沒有非常高的關聯度。
網上幾乎所有提到搭建以太坊私鏈的文章,都要強調 NetworkId 需要和 genesis 文件里 ChainId 的值相同。事實上是沒必要的。
就像下面這張圖展示的這樣,很多已經在主網運行的 EVM 鏈,它們的 ChainId 和 NetworkId 並不相同。比如以太經典,它的 ChainId 是 61,但 NetworkId 和以太坊主網一樣都是 1。

之所以很多文章強調 ChainId 和 NetworkId 要保持一致,可能因為在某一段時間內,一些開發工具比如 MetaMask,會把 NetworkId 當作 ChainId 來用。不過現在 MetaMask 已經支持自定義 ChainId,以太坊也添加了 「eth_chainId」 這個 RPC API,相信兩者誤用的情況會越來越少。

④ 以太坊是什麼丨以太坊開發入門指南

以太坊是什麼丨以太坊開發入門指南
很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基於以太坊平台,以通俗的方式介紹以太坊開發中涉及的各晦澀的概念,輕松帶大家入門。
以太坊是什麼
以太坊(Ethereum)是一個建立在區塊鏈技術之上, 去中心化應用平台。它允許任何人在平台中建立和使用通過區塊鏈技術運行的去中心化應用。
對這句話不理解的同學,姑且可以理解為以太坊是區塊鏈里的Android,它是一個開發平台,讓我們就可以像基於Android Framework一樣基於區塊鏈技術寫應用。
在沒有以太坊之前,寫區塊鏈應用是這樣的:拷貝一份比特幣代碼,然後去改底層代碼如加密演算法,共識機制,網路協議等等(很多山寨幣就是這樣,改改就出來一個新幣)。
以太坊平台對底層區塊鏈技術進行了封裝,讓區塊鏈應用開發者可以直接基於以太坊平台進行開發,開發者只要專注於應用本身的開發,從而大大降低了難度。
目前圍繞以太坊已經形成了一個較為完善的開發生態圈:有社區的支持,有很多開發框架、工具可以選擇。
智能合約
什麼是智能合約
以太坊上的程序稱之為智能合約, 它是代碼和數據(狀態)的集合。
智能合約可以理解為在區塊鏈上可以自動執行的(由事件驅動的)、以代碼形式編寫的合同(特殊的交易)。
在比特幣腳本中,我們講到過比特幣的交易是可以編程的,但是比特幣腳本有很多的限制,能夠編寫的程序也有限,而以太坊則更加完備(在計算機科學術語中,稱它為是「圖靈完備的」),讓我們就像使用任何高級語言一樣來編寫幾乎可以做任何事情的程序(智能合約)。
智能合約非常適合對信任、安全和持久性要求較高的應用場景,比如:數字貨幣、數字資產、投票、保險、金融應用、預測市場、產權所有權管理、物聯網、點對點交易等等。
目前除數字貨幣之外,真正落地的應用還不多(就像移動平台剛開始出來一樣),相信1到3年內,各種殺手級會慢慢出現。
編程語言:Solidity
智能合約的默認的編程語言是Solidity,文件擴展名以.sol結尾。
Solidity是和JavaScript相似的語言,用它來開發合約並編譯成以太坊虛擬機位元組代碼。
還有長像Python的智能合約開發語言:Serpent,不過建議大家還是使用Solidity。
Browser-Solidity是一個瀏覽器的Solidity IDE, 大家可以點進去看看,以後我們更多文章介紹Solidity這個語言。
運行環境:EVM
EVM(Ethereum Virtual Machine)以太坊虛擬機是以太坊中智能合約的運行環境。
Solidity之於EVM,就像之於跟JVM的關系一樣,這樣大家就容易理解了。
以太坊虛擬機是一個隔離的環境,在EVM內部運行的代碼不能跟外部有聯系。
而EVM運行在以太坊節點上,當我們把合約部署到以太坊網路上之後,合約就可以在以太坊網路中運行了。
合約的編譯
以太坊虛擬機上運行的是合約的位元組碼形式,需要我們在部署之前先對合約進行編譯,可以選擇Browser-Solidity Web IDE或solc編譯器。
合約的部署
在以太坊上開發應用時,常常要使用到以太坊客戶端(錢包)。平時我們在開發中,一般不接觸到客戶端或錢包的概念,它是什麼呢?
以太坊客戶端(錢包)
以太坊客戶端,其實我們可以把它理解為一個開發者工具,它提供賬戶管理、挖礦、轉賬、智能合約的部署和執行等等功能。
EVM是由以太坊客戶端提供的。
Geth是典型的開發以太坊時使用的客戶端,基於Go語言開發。 Geth提供了一個互動式命令控制台,通過命令控制台中包含了以太坊的各種功能(API)。Geth的使用我們之後會有文章介紹,這里大家先有個概念。
Geth控制台和Chrome瀏覽器開發者工具里的面的控制台是類似,不過是跑在終端里。
相對於Geth,Mist則是圖形化操作界面的以太坊客戶端。
如何部署
智能合約的部署是指把合約位元組碼發布到區塊鏈上,並使用一個特定的地址來標示這個合約,這個地址稱為合約賬戶。
以太坊中有兩類賬戶:
· 外部賬戶
該類賬戶被私鑰控制(由人控制),沒有關聯任何代碼。
· 合約賬戶
該類賬戶被它們的合約代碼控制且有代碼與之關聯。
和比特幣使用UTXO的設計不一樣,以太坊使用更為簡單的賬戶概念。
兩類賬戶對於EVM來說是一樣的。
外部賬戶與合約賬戶的區別和關系是這樣的:一個外部賬戶可以通過創建和用自己的私鑰來對交易進行簽名,來發送消息給另一個外部賬戶或合約賬戶。
在兩個外部賬戶之間傳送消息是價值轉移的過程。但從外部賬戶到合約賬戶的消息會激活合約賬戶的代碼,允許它執行各種動作(比如轉移代幣,寫入內部存儲,挖出一個新代幣,執行一些運算,創建一個新的合約等等)。
只有當外部賬戶發出指令時,合同賬戶才會執行相應的操作。
合約部署就是將編譯好的合約位元組碼通過外部賬號發送交易的形式部署到以太坊區塊鏈上(由實際礦工出塊之後,才真正部署成功)。
運行
合約部署之後,當需要調用這個智能合約的方法時只需要向這個合約賬戶發送消息(交易)即可,通過消息觸發後智能合約的代碼就會在EVM中執行了。
Gas
和雲計算相似,佔用區塊鏈的資源(不管是簡單的轉賬交易,還是合約的部署和執行)同樣需要付出相應的費用(天下沒有免費的午餐對不對!)。
以太坊上用Gas機制來計費,Gas也可以認為是一個工作量單位,智能合約越復雜(計算步驟的數量和類型,佔用的內存等),用來完成運行就需要越多Gas。
任何特定的合約所需的運行合約的Gas數量是固定的,由合約的復雜度決定。
而Gas價格由運行合約的人在提交運行合約請求的時候規定,以確定他願意為這次交易願意付出的費用:Gas價格(用以太幣計價) * Gas數量。
Gas的目的是限制執行交易所需的工作量,同時為執行支付費用。當EVM執行交易時,Gas將按照特定規則被逐漸消耗,無論執行到什麼位置,一旦Gas被耗盡,將會觸發異常。當前調用幀所做的所有狀態修改都將被回滾, 如果執行結束還有Gas剩餘,這些Gas將被返還給發送賬戶。
如果沒有這個限制,就會有人寫出無法停止(如:死循環)的合約來阻塞網路。
因此實際上(把前面的內容串起來),我們需要一個有以太幣余額的外部賬戶,來發起一個交易(普通交易或部署、運行一個合約),運行時,礦工收取相應的工作量費用。
以太坊網路
有些著急的同學要問了,沒有以太幣,要怎麼進行智能合約的開發?可以選擇以下方式:
選擇以太坊官網測試網路Testnet
測試網路中,我們可以很容易獲得免費的以太幣,缺點是需要發很長時間初始化節點。
使用私有鏈
創建自己的以太幣私有測試網路,通常也稱為私有鏈,我們可以用它來作為一個測試環境來開發、調試和測試智能合約。
通過上面提到的Geth很容易就可以創建一個屬於自己的測試網路,以太幣想挖多少挖多少,也免去了同步正式網路的整個區塊鏈數據。
使用開發者網路(模式)
相比私有鏈,開發者網路(模式)下,會自動分配一個有大量余額的開發者賬戶給我們使用。
使用模擬環境
另一個創建測試網路的方法是使用testrpc,testrpc是在本地使用內存模擬的一個以太坊環境,對於開發調試來說,更方便快捷。而且testrpc可以在啟動時幫我們創建10個存有資金的測試賬戶。
進行合約開發時,可以在testrpc中測試通過後,再部署到Geth節點中去。
更新:testrpc 現在已經並入到Truffle 開發框架中,現在名字是Ganache CLI。
Dapp:去中心化的應用程序
以太坊社區把基於智能合約的應用稱為去中心化的應用程序(DecentralizedApp)。如果我們把區塊鏈理解為一個不可篡改的資料庫,智能合約理解為和資料庫打交道的程序,那就很容易理解Dapp了,一個Dapp不單單有智能合約,比如還需要有一個友好的用戶界面和其他的東西。
Truffle
Truffle是Dapp開發框架,他可以幫我們處理掉大量無關緊要的小事情,讓我們可以迅速開始寫代碼-編譯-部署-測試-打包DApp這個流程。
總結
我們現在來總結一下,以太坊是平台,它讓我們方便的使用區塊鏈技術開發去中心化的應用,在這個應用中,使用Solidity來編寫和區塊鏈交互的智能合約,合約編寫好後之後,我們需要用以太坊客戶端用一個有餘額的賬戶去部署及運行合約(使用Truffle框架可以更好的幫助我們做這些事情了)。為了開發方便,我們可以用Geth或testrpc來搭建一個測試網路。
註:本文中為了方便大家理解,對一些概念做了類比,有些嚴格來不是准確,不過我也認為對於初學者,也沒有必要把每一個概念掌握的很細致和准確,學習是一個逐步深入的過程,很多時候我們會發現,過一段後,我們會對同一個東西有不一樣的理解。

⑤ 1. 樹莓派:eth橋接到wlan口,共享上網

背景: 樹莓派外接5G無線網卡,推流器連接raspberry 3B lan口,共享上網。

驗證: raspberry 3B連接手機的熱點,PC通過網線與raspberry的lan口相連,實現上網。

思路:

1. 首先給raspberry的eth設置一個靜態ip地址。

2. 修改IP轉發規則,允許ip數據的轉發。(ip_forward的設置)

3. 路由設置,配置iptables,進行兩個網卡的橋接。

4. 開啟raspberry的DHCP服務,在eth口上開啟。

5. 開啟DNS服務。

詳細過程:

1. 給樹莓派的eth分配靜態地址。

暫時分配:

sudo ifconfig eth0 192.168.173.1 255.255.255.0 up

永久分配:

寫在配置文件里。

配置文件 /etc/network/interfaces,請注意此處wlan0的地址參數要和etc/udhcpd.conf相關參數相對應。

sudo vi  /etc/network/interfaces

#iface default inet dhcp

增加

auto eth0

iface eth0 inet static

address 192.168.173.1

netmask 255.255.255.0

注意:

2. 啟動IP轉發

有多種方法,建議使用sysctl的設置方式

方法1:sudo echo 1 > /proc/sys/net/ipv4/ip_forward

方法2:sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

方法3:sudo sysctl -w net.ipv4.ip_forward=1

有的時候需要在/etc/sysctl.conf下添加一行:net.ipv4.ip_forward=1

3. iptables設置

     iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE

4. dhcp服務

4.1 安裝udhcpd服務

    sudo apt-get update

    sudo apt-get install udhcpd

4.2 配置DHCP服務

    sudo vi /etc/udhcpd.conf

    1. 修改網路介面,設置成對應的網卡號

    2. 設置remaining,去除前面的#符號

    #remaining     yes    改為   remain    yes

    3. 設置樹莓派的IP地址

        修改opt router為192.168.173.1,那麼配置完成之後這個地址將作為網關,連接到raspberry eth口的設備網關需要設置為此IP.

        此處opt dns被修改為公共的DNS地址 114.114.114.114和 114.114.114.115

4.3 使能DHCP

     配置 /etc/default/udhcpd

    sudo nano  /etc/default/udhcpd

    使用#符號注釋DHCPD_ENABLED="no"

    DHCPD_ENABLED="no"    改為     #DHCPD_ENABLED="no"

4.4  啟動服務

    1. 啟動udhcp的服務:sudo service udhcpd start

    2. 設置開機啟動: sudo update-rc.d  udhcpd enable

5. dns服務

在進行調試的時候發現無法查詢到raspberry使用的dns地址,按照常規方法查到的dns地址為127.0.1.1。在網上查了一下https://segmentfault.com/q/1010000002443769 感興趣的可以參考一下這篇文章。

這就導致我在測試的時候遇到一個問題,pc可以通過ip地址訪問,但是通過域名無法訪問。然後我就在網上查了一些共用的dns伺服器,設置後一切正常。關於這些共用的dns信息參考如下:

/********************************************************************************************************************************************************/

A、DNSPod DNS+:DNSPod的 Public DNS+是目前國內第一家支持ECS的公共DNS,是DNSPod推出的公共域名解析服務,可以為全網用戶提供域名的公共遞歸解析服務!

DNS 伺服器 IP 地址:

首選:119.29.29.29        備選:182.254.116.116

B、114DNS:國內用戶量巨大的DNS,訪問速度快,各省都有節點,同時滿足電信、聯通、移動各運營商用戶,可以有效預防劫持。

DNS 伺服器 IP 地址:

首選:114.114.114.114        備選:114.114.114.115

C、阿里 AliDNS:阿里公共DNS是阿里巴巴集團推出的DNS遞歸解析系統,目標是成為國內互聯網基礎設施的組成部分,面向互聯網用戶提供「快速」、「穩定」、「智能」的免費DNS遞歸解析服務。

DNS 伺服器 IP 地址:

首選:223.5.5.5        備選:223.6.6.6

/********************************************************************************************************************************************************/

⑥ 以太坊多節點私有鏈部署

假設兩台電腦A和B
要求:
1、兩台電腦要在一個網路中,能ping通
2、兩個節點使用相同的創世區塊文件
3、禁用ipc;同時使用參數--nodiscover
4、networkid要相同,埠號可以不同

1.4 搭建私有鏈
1.4.1 創建目錄和genesis.json文件
創建私有鏈根目錄./testnet
創建數據存儲目錄./testnet/data0
創建創世區塊配置文件./testnet/genesis.json

1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json

1.4.3 啟動私有節點

1.4.4 創建賬號
personal.newAccount()
1.4.5 查看賬號
eth.accounts
1.4.6 查看賬號余額
eth.getBalance(eth.accounts[0])
1.4.7 啟動&停止挖礦
啟動挖礦:
miner.start(1)
其中 start 的參數表示挖礦使用的線程數。第一次啟動挖礦會先生成挖礦所需的 DAG 文件,這個過程有點慢,等進度達到 100% 後,就會開始挖礦,此時屏幕會被挖礦信息刷屏。
停止挖礦,在 console 中輸入:
miner.stop()
挖到一個區塊會獎勵5個以太幣,挖礦所得的獎勵會進入礦工的賬戶,這個賬戶叫做 coinbase,默認情況下 coinbase 是本地賬戶中的第一個賬戶,可以通過 miner.setEtherbase() 將其他賬戶設置成 coinbase。

1.4.8 轉賬
目前,賬戶 0 已經挖到了 3 個塊的獎勵,賬戶 1 的余額還是0:

我們要從賬戶 0 向賬戶 1 轉賬,所以要先解鎖賬戶 0,才能發起交易:

發送交易,賬戶 0 -> 賬戶 1:

需要輸入密碼 123456

此時如果沒有挖礦,用 txpool.status 命令可以看到本地交易池中有一個待確認的交易,可以使用 eth.getBlock("pending", true).transactions 查看當前待確認交易。

使用 miner.start() 命令開始挖礦:
miner.start(1);admin.sleepBlocks(1);miner.stop();

新區塊挖出後,挖礦結束,查看賬戶 1 的余額,已經收到了賬戶 0 的以太幣:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')

用同樣的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json

啟動私有節點一,修改 rpcport 和port

可以通過 admin.addPeer() 方法連接到其他節點,兩個節點要要指定相同的 chainID。

假設有兩個節點:節點一和節點二,chainID 都是 1024,通過下面的步驟就可以從節點二連接到節點一。

首先要知道節點一的 enode 信息,在節點一的 JavaScript console 中執行下面的命令查看 enode 信息:

admin.nodeInfo.enode
" enode://@[::]:30303 "

然後在節點二的 JavaScript console 中執行 admin.addPeer(),就可以連接到節點一:

addPeer() 的參數就是節點一的 enode 信息,注意要把 enode 中的 [::] 替換成節點一的 IP 地址。連接成功後,節點一就會開始同步節點二的區塊,同步完成後,任意一個節點開始挖礦,另一個節點會自動同步區塊,向任意一個節點發送交易,另一個節點也會收到該筆交易。

通過 admin.peers 可以查看連接到的其他節點信息,通過 net.peerCount 可以查看已連接到的節點數量。

除了上面的方法,也可以在啟動節點的時候指定 --bootnodes 選項連接到其他節點。 bootnode 是一個輕量級的引導節點,方便聯盟鏈的搭建 下一節講 通過 bootnode 自動找到節點

參考: https://cloud.tencent.com/developer/article/1332424

⑦ 「官方」搭建Web3:Filecoin與以太坊攜手共進


這是Protocol Labs創始人Juan Benet在EthCC 2021上的演講概要,查看完整內容:

https://www.bilibili.com/video/BV1eb4y1r7E1

Filecoin網路是面向生態的,它與Protocol Labs搭建模塊化解決方案的傾向是一致的。因為它本來就是設計給其他人使用,所以Filecoin在Web3領域的其他棧、應用和生態里如魚得水。自從其在2020年10月的啟動開始,Filecoin已經增長到超過8 exbibytes的可用存儲空間,有超過400個項目進入了這個生態。以太坊就是一個能持續證明其可協作性和共同利益的生態系統。

Filecoin + 以太坊

>>>>Filecoin和以太坊虛擬機(EVM)

Filecoin生態意識到網路支持智能合約的好處。最初,開發者社區相信架設在以太坊和Filecoin之間的橋服務足夠在Filecoin上支持智能合約了。不過,通過橋來使用智能合約是很笨重的方式,相比於直接在以太坊實現智能合約的功能和可組合性更是不足。有一個提議是在Filecoin上加入以太坊虛擬機(EVM),從而在存儲層啟用對智能合約的支持,以及為這兩個生態的結合提供更多機會。


>>>>開發者工具和資源

Fleek:讓用戶能為去中心化網路架設網站、存儲和分發文件及開發dapp。Fleek可以讓每一個人(從專業的開發者到日常的互聯網用戶)更容易以去中心化的方式創建app和存儲文件,從而加速去中心化網路的採用率。Fleek可以在Filecoin上進行自動化存檔,並通過ENS(以太坊域名服務)這樣的應用來利用以太坊的生態系統。

https://fleek.co/

Web3.Storage:是一個讓開發者在Filecoin去中心化存儲網路上存取數據的簡單介面。Web3.Storage為開發者(包括以太坊dapp開發者)提供了搭建應用的簡單方式,這些應用可以帶有冗餘的去中心化的存儲以及安全的內容定址數據。

http://web3.storage/

PowerLoom:以去中心化的方式將鏈上和鏈下數據聚合起來以生成帶有密碼學證明的快照。它旨在通過一個豐富的節點和利益相關者生態系統(他們被激勵參與到協議里)來搭建信任,並按需提供洞見。PowerLoom特別適用於以太坊DeFi這樣的生態,這類系統是非常復雜的,而且需要基於驗證的信任。

https://powerloom.io/

>>>>DeFi應用

SecuredFinance(https://secured-finance.com/)是一個綜合平台,整合了基於智能合約的點對點固定利率貸款、抵押品管理服務、貨幣間交易和其他類型的利率產品。Secured Finance的協議是去中心化的點對點金融協議,提供了由以太坊智能合約賦能的區塊鏈上的中後台銀行業務。Secured Finance可以滿足Filecoin網路內的需求,它提供的解決方案能夠滿足Filecoin存儲提供者對FIL貸款的強烈需求。

>>>>數據市場

OceanProtocol(https://t.co/misApE3ggc?amp=1)是一個在Filecoin上搭建的數據市場。Ocean的數據token(data tokens)是以太坊ERC-20 token,可以輕易地用於發布和消費數據服務。如果你有1個數據token,你可以訪問一個特定的數據服務。Ocean market是一個專門為數據服務的去中心化交易所,它分叉了一個Balancer AMM(自動化做市商)來降低gas成本。在這個市場中,用戶可以對數據進行發布、購買、銷售、消費和stake操作。

通過Filecoin,用戶可以利用Ocean來發起自己的Filecoin數據市場,或創建一個Filecoin dataDAO或指數基金。通過Ocean Protocol的工具和Filecoin的去中心化存儲資料庫,我們正見證新生的開放數據經濟。


>>>>視頻應用

LivePeer:是一個去中心化的在線視頻流媒體基礎設施,由以太坊區塊鏈確保安全性。將Filecoin和IPFS結合提供存儲和內容分發功能後,去中心化視頻應用就成為可能了。

https://livepeer.org/

Voodfy:正為私有的視頻架設服務提供去中心化工具。這是一個多功能的安全流媒體解決方案,讓用戶能完全控制自己的內容,這包括了訪問權的設定以及變現的方式。它利用了Livepeer、Ethereum、Textile Powergate和Filecoin.

https://voodfy.com/

VideoCoin:正搭建一個能可靠地創建、存儲和交易基於視頻的NFT解決方案,它可以繞過在以太坊上存儲實際內容時固有的復雜性和費用。VideoCoin正將其去中心化視頻處理網路與Filecoin整合起來,以搭建首個專門為創建和交易視頻NFT服務的平台。這個平台是新生的全球數字收藏品市場急需的一部分。

https://videocoin.io/


>>>>NFT

nft.storage(http://nft.storage/)是一個由Protocol Labs實驗室和Pinata支持的服務,它專門為存儲NFT數據而設計。

nft.storage讓開發者通過內容定址和去中心化存儲來保護其NFT資產和相關的元數據,確保所有的NFT遵循最佳實踐以實現長期的可訪問性。

未來的使用場景


隨著Filecoin和Ethereum生態系統的成長和重疊,會出現更多的新生用例和開發者機會。一些可以進行創新的用例包括:

>>>>可組合的DeFIL

將存儲和Defi的世界結合可以產生一些機會。人們可以將市場訂單(如要價、出價和交易)帶到一個去中心化交易所上,以觀察市場是如何評判這些訂單的價值的。通過這樣的能力,生態系統可以開始想像硬體期貨(hardware futures)和時空期貨(spacetime futures)等的出現。


>>>>數據豐富的NFT

NFT將會越來越復雜,而Web3社區需要 探索 採用數據豐富(data-rich)的NFT的方式。VideoCoin已經將其視頻處理引擎與Filecoin連接起來,以結合以太坊對NFT的支持能力及Filecoin的存儲能力。像VideoCoin這樣的工具可以用來創建一類新型的NFT,如短電影、視頻片段和完整長度的專題特寫。


>>>>按觀看次數支付的媒體

通過在Filecoin上存儲的信息,我們可以利用以太坊的token支持能力去創建由token保護的頁面和媒體(文章、電影和音樂等)。我們可以復制Web2時代的按觀看次數支付模式,而無需復制數據和廣告模型。


這只是一個開始!Filecoin和以太坊生態有長期的協作 歷史 和機會,未來可期。

⑧ 如何開發數字貨幣

謝邀~

為何要開發數字貨幣?從中央銀行的角度來看有6個好處:

第一、提升經濟交易活動的便利性和透明度

第二、降低傳統紙幣發行、流通的高昂成本

第三、更好地支持經濟和社會發展

第四、助力普惠金融的全面實現

第五、 減少洗錢、逃漏稅等違法犯罪行為

第六、提升央行對貨幣供給和貨幣流通的控制力


數字貨幣開發步驟:

第一步、

首先我們要從git 上下載某套區塊鏈體系的源碼,比如選擇比特幣的主幹代碼下載好

相關源碼。

同時准備好對應的編譯環境(C + +的建議在Linux)和安裝好對應開發環境和工具。

第二步、

代碼都是需要編譯的,因此需要准備編譯環境和工具,需要下載環境編譯工具、配

好系統環境變數, qt環境等文件,編譯命令在Itc源代碼里的文件里有詳細說明。

不過系統和開發環境的搭建、程序編譯等過程都比較繁瑣,不建議普通用戶自己製作。對於開發人員,第一次可能要預計2-3天的安裝配置時間。

第三步、

拿比特幣開發來說,他是Q的開發環境,下載好源碼並配置好環境後,在QtCreator內打開該比特幣核心的源碼,配置相關文件和編譯器,開始嘗試編譯比特幣核心的客戶端。

第四步、

改造成自己的數字貨幣,打開各個源文件,找到對應的地方調整參數即可,如調整

每個區塊出幣數,總產量,調整難度等等,然後就到最關鍵的點,就是改名為自己的幣名。

想怎麼取名就怎麼取名,別忘記在資源文件夾里替換掉相關圖標。如果一切順利,經過重新

編譯,你的新幣就順利發明了。

對於這個數字貨幣的開發,還是屬於技術比較專業的,因此最好有-個專業的團隊協助。

數字貨幣開發大致需要學習的框架:

1、搭建以太坊私鏈測試環境以及公鏈節點環境配置

2、以太坊中以太幣的交易、確認原理

3、以太坊中json rpc介面

4、以太幣轉賬與提現原理

5、伺服器對接以太坊公鏈介面,自有伺服器存儲業務數據,公鏈存儲交易可匿名數據

6、私鑰的安全處理

以下是開發的代碼示例:

舉例下市場上常用的數字貨幣錢包有:

APP類:kcash、imtokenweb:myEthereumWalletgoogle 瀏覽器插件:metaMask

其中最常用的就是imToken

區塊鏈交易技術概念:

讓我們來看看區塊鏈交易是如何以比特幣為例進行處理的。為了將一定數量的比特幣發送到另一個錢包,您需要以下信息:將資金發送到您的錢包的地址,您想要發送的加密貨幣數量

接收者的錢包的ID。

每筆交易都使用唯一的機密私人密鑰進行簽名。一旦付款由發件人簽署,它就變為公開可用。交易仍需要確認,以便收款人可以得到這筆錢為了確認交易,有必要生成一個新的鏈條塊。

這些塊是通過進行復雜的數學計算來找到唯一的密鑰而生成的。創建一個新塊需要10分鍾,找到該密鑰的人獲得一定數量的硬幣作為獎勵。一旦創建了鏈的新塊,就不可能將其從資料庫中刪除或以某種方式更改信息。因此,區塊鏈交易是最終且不可逆的。

數字貨幣的三大核心優點:

第一點、數字貨幣是公平的貨幣

數字貨幣沒有特定的發行機構,不是由某一國家發行的,僅僅是依靠特定演算法產生的,這就意味著無法通過操縱發行數量來操縱數字貨幣,因此數字貨幣是一種自由的、非國家的貨幣。

我們可以看到現在有許多國家是直接認可了虛擬貨幣,那麼有需求,就需要交易的平台。

我們現在許多想搭建虛擬貨幣交易平台的投資者,為什麼不能去這些地區搭建交易平台呢?搭建虛擬貨幣交易平台,這不就是一個很好的商機嗎?

第二點、數字貨幣的安全系數更高

紙幣的出現雖然方便了我們日常生活中的交易,但是會有被偷盜以及收到的風險。電子貨幣雖然可以避免這些風險,但是會出現諸如被盜刷、等新的問題。

數字貨幣則可以避免以上問題。並且將每一筆交易記錄在網路上進行廣播,是的所有節點都保存全部貨幣的流通信息,這樣任意一個節點在交易之前就可以輕易地發現貨幣的流通。

第三點、數字貨幣的交易可以實現匿名交易

由於沒有傳統銀行開戶和身份認證的過程,數字貨幣是純匿名的。雖然可以根據本地完整的交易記錄查詢到每個賬號的流水信息。

但卻無法知道這個賬號的主人是誰,同樣也沒有任何人有能力操縱他人賬號上的數字貨幣,這樣很好的保護了使用人的隱私。


如果您也在持有交易數字貨幣、外匯黃金原油、合約期貨:

⑨ 以太坊如何使用web3.js或者rpc介面獲取交易數據交易時間與確認數

如果要查詢主網上的交易記錄,可以使用etherscan。但是,如果是你自己搭建的私鏈,應該如何查詢交易記錄呢?

答案是你需要自己監聽鏈上的日誌,存到資料庫里,然後在這個資料庫中查詢。例如:

varaddr=""
varfilter=web3.eth.filter({fromBlock:0,toBlock:'latest',address:addr});
filter.get(function(err,transactions){
transactions.forEach(function(tx){
vartxInfo=web3.eth.getTransaction(tx.transactionHash);
//這時可以將交易信息txInfo存入資料庫
});
});

web3.eth.filter()用來監聽鏈上的日誌,web3.eth.getTransaction()用來提取指定交易的信息,一旦獲得交易信息,就可以存入資料庫供查詢用了。

推薦一個實戰入門,你可以看看:以太坊教程

⑩ 如何搭建自己的區塊鏈

第一部分:從 0 到 1 建立自己的區塊鏈 目錄:
1.1 從模仿開始,初識區塊鏈
1.2 區塊鏈的基礎:共識機制剖析
1.3 共識機制的設計原理和設計方法
1.4 如何快速克隆一條區塊鏈
1.5 如何把比特幣變成自己的私鏈–分叉比特幣
1.6 如何把以太坊變成自己的私鏈–分叉以太坊
1.7 如何把 Ripple 變成自己的私鏈–分叉 ripple
1.8 如何把 stellar 變成自己的私鏈–分叉 stellar 1.9 如何搭建一個礦池,並挖出自己的創始區塊
1.10 如何開發自己的區塊鏈錢包(Windows 和 MAC) 1.11 如何開發自己的區塊鏈錢包(Android 和 IOS) 1.12 如何開發一個類似於 blockchain.info 的在線錢包 1.13 如何增加自己的區塊鏈網路的安全性和魯棒性 1.14 如何利用 coind 來處理充值提現業務
1.15 如何利用資金池搭建一個混幣服務
1.16 如何設計一種新的挖礦演算法
一般情況下都是這個流程,但一般人也是非常難以完成的。區塊鏈成熟的項目有以太坊、DECENT、比特幣等等。

閱讀全文

與樹莓派以太坊私鏈搭建相關的資料

熱點內容
以太坊幣和人民幣兌換 瀏覽:681
以太坊應用排行 瀏覽:309
極路由挖礦需要什麼用 瀏覽:113
下載什麼才能挖礦獲取皮膚 瀏覽:591
hd8570m挖礦 瀏覽:716
螞蟻礦池錢包地址在哪 瀏覽:840
比特幣錢包測試 瀏覽:997
比特幣最大升值多少倍 瀏覽:150
區塊鏈有漏洞嗎排圖片 瀏覽:33
虛擬貨幣主網上線要多久 瀏覽:256
一美元能買多少比特幣 瀏覽:155
比特幣利好區域連 瀏覽:766
各國對比特幣態度 瀏覽:806
etcbtc什麼意思 瀏覽:709
比特幣錢包請求付款的消息作什麼用 瀏覽:466
挖礦一般用哪些卡 瀏覽:888
比特幣偷挖 瀏覽:390
btc前十的交易平台 瀏覽:579
r9270挖礦驅動 瀏覽:139
以太坊中的uncle 瀏覽:746