從Java到區塊鏈:如何成為區塊鏈開發人員

malakashi發表於2018-10-27

最近這些天,區塊鏈是每個開發人員的談資。來自各個領域的許多軟體開發商現在正試圖進入區塊鏈市場。我們與Mobilunity的區塊鏈軟體開發人員Eugene Kyselev 討論了他是如何走出區塊鏈開發方面的第一步的,希望對大家有所幫助。

JAXenter:Eugene,請告訴我們您在區塊鏈開發方面的經驗。你是怎麼開始的?

Eugene Kyselev:說起來很平淡,一切都在正確的時間出現,對我來說,區塊鏈開發是一個合乎邏輯的延續。我從JavaScript和其他框架開始,我想繼續朝這個方向發展。幾年前,隨著各種ICO和採礦趨勢的開始,我毫不猶豫地決定嘗試區塊鏈開發。

區塊鏈開發現在正在以光速發展。區塊鏈技術引起了政府和各國央行的注意;簡而言之,一切都表明區塊鏈前景光明。

JAXenter:你認為“區塊鏈時代”將持續多久?

Eugene Kyselev:很難說,這就像問“全球化時代將持續多久?”

我認為,只要對加密貨幣和其他區塊鏈解決方案的需求不斷增加,就需要持續一段時間。所有的一切,每件事物都會經歷自己的發展,最終出現了加密貨幣和各種ICO,我很確定現在就是“區塊鏈時代”,區塊鏈技術還有許多其他重要的發現和創新應用。可以帶來整個行業的新突破。

JAXenter:為什麼要將技術專長轉變為區塊鏈開發?

Eugene Kyselev:沒有所謂的技術技能轉變這樣的東西。Blockchain使用常見的程式語言,如C++,Java,Python,Go。但是像Solidity這樣的新技術也會出現。Solidity是一種物件導向的程式語言,用於為以太坊區塊鏈平臺開發智慧合約。另一項有前途的技術是Hyperledger,一種由開源技術組成的區塊鏈平臺。Hyperledger允許你建立分散式分類帳或你自己的區塊鏈框架。

JAXenter:許多開發人員都在問“你需要做些什麼來成為區塊鏈或加密貨幣開發人員?”你會推薦他們怎麼做?

Eugene Kyselev:憑著堅強的意志,你可以實現並學習一切。作為快速指南,我推薦IBM Blockchain 101課程。但對於初學者來說,你必須具備紮實的演算法和資料結構知識,最重要的是加密演算法。如果你是區塊鏈工程師,那麼深入瞭解Java/C或Python/Go也是必須的。

如果你專注於開發智慧合約,則需要具備JavaScript開發經驗,下一步是掌握Solidity。

JAXenter:你如何開始Java編寫區塊鏈程式?

Eugene Kyselev:這很簡單。以Hyperledger Fabric Chaincode為例,要開始使用,你需要以下工具:

  • Gradle
  • JDK
  • Vagrant

首先,啟動chaincode部署:

peer chaincode deploy - l java - n map - p /opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java - c `{"Function": "init", "Args": ["a", "100", "b", "200"]}

然後,查詢交易:

/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java $ peer chaincode invoke - l java 
- n 6d9a704d95284593fe802a5de89f84e86fb975f00830bc6488713f9441b835cf32d9cd07b087b90e5cb57a88360f90a4de39521a5595545ad689cd64791679e9 
- c `{"Function": "transfer", "Args": [ "a", "b", "20"]}`

查詢後,初始化變數“a”和“b”:

/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java $ peer chaincode query - l java 
- n 6d9a704d95284593fe802a5de89f84e86fb975f00830bc6488713f9441b835cf32d9cd07b087b90e5cb57a88360f90a4de39521a5595545ad689cd64791679e9 
- c `{"Function": "query", "Args": ["a"]}`
{ "Name" : "a" , "Amount" : "80" }
  
  
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java $ peer chaincode query - l java 
- n 6d9a704d95284593fe802a5de89f84e86fb975f00830bc6488713f9441b835cf32d9cd07b087b90e5cb57a88360f90a4de39521a5595545ad689cd64791679e9 
- c `{"Function": "query", "Args": ["b"]}`
{ "Name" : "b" , "Amount" : "220" }

JAXenter:告訴我們更多關於Hyperledger,R3 DLT和Solidity的資訊。

Eugene Kyselev:讓我們從Hyperledger開始吧。如上所述,它是區塊鏈應用程式的開源平臺(中心)。總的來說,Hyperledger不支援比特幣和其他加密貨幣。Hyperledger是一組旨在促進區塊鏈應用程式開發的專案。

自從網際網路出現以來,沒有一種技術像這項技術那樣具有前景和開創性。網際網路和區塊鏈可以一起使用,以建立新一代的交易性應用程式,在業務流程的核心建立信任,建立問責制和透明度。

R3 DLT不是一項技術,而是一個區塊鏈聯盟,其中包括100多家銀行,金融機構,監管機構,專業機構,服務公司和技術公司。

目標是利用該平臺探索區塊鏈技術的可能性,區域鏈技術被認為是創新的,同時總結已建立的參與者的想法和資料,並使國際支付更快,更可靠。

Solidity是一種強烈的面向JavaScript的語言,旨在開發在以太坊虛擬機器(EVM)中執行的智慧合約。由於Solidity具有類似JavaScript的語法,因此我可以輕鬆快速掌握該語言。主要缺點是尚未實現該語言的完整版本。因此,它仍然具有相當有限的功能集,並且受到許多錯誤的困擾。

JAXenter:現在有很多關於區塊鏈的炒作。這項技術可以解決哪些問題?

Eugene Kyselev

至少會對下面這些問題有很大的幫助:

1.確保銀行存款的安全

每年,銀行都會因欺詐而損失鉅額資金。區塊鏈具有幾乎無可挑剔的安全性,可以幫助他們解決這個問題。轉換到區塊鏈錢包的銀行客戶由唯一標識號而不是名稱標識。此外,他們使用私鑰來獲取資金。在他們的幫助下,只有他們的所有者可以處置資金——即使銀行也無法獲得這些資金。這些安全措施確保了比特幣和其他加密貨幣的安全性,以便他們可以輕鬆保護存款。

區塊鏈上的雲端儲存將能夠更好地抵禦黑客攻擊

雲端儲存公司使用集中式伺服器來儲存資料。出於這個原因,黑客可以從中竊取資訊的風險增加——通過訪問伺服器,黑客自動滲透到整個網路。一個區塊鏈上的雲端儲存可以分散地保護你的資料,並且它們的節點也會斷開連線。因此,它們不易受到攻擊,甚至攻擊節點也不會破壞整個網路。

2.貨物運輸速度更快

在物流方面,需要正確,快速地組織貨物運輸。關鍵是能夠在整個供應鏈中跟蹤貨物。藉助區塊鏈技術,這一過程將變得更加安全和透明。此外,在去中心化的連續的記錄將減少人類的作用和延遲的可能性。

3.選舉舞弊

選舉欺詐,偽造簽名和舉行會議,而不通知所有成員是在公司治理中最普遍的問題。所有這些問題都通過區塊鏈技術的整合得到部分解決。例如,它可以跟蹤和計算投票,從而消除任何人的聲音不會被計算或偽造的。相反,每個投票參與者將收到一個唯一的金鑰來做出決定。

謝謝!

分享2個區塊鏈相關的互動式線上程式設計實戰教程:

java以太坊開發教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。

  • java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。

這裡是原文

相關文章