1. 程式人生 > >如何使用不同語言訪問比特幣類庫bitcoinj

如何使用不同語言訪問比特幣類庫bitcoinj

對於需要廣泛深入的理解bitcoinj,防止緩衝區溢位和Android手機可很好的應用,Java是一個很好的選擇。但它也有老問題,冗長而且通常也不適合所有人。

本頁詳細介紹了其他程式設計開發語言如何使用bitcoinj。

Javascript

Javascript可以使用Java8中提供的Nashorn引擎與Java互操作。我們已經有了這方面的教程!檢視入門指南,瞭解如何設定並檢視一些示例。可以使用jjs工具從命令列執行訪問Java庫的Javascript程式。有些專案也提供Node.js API。

Kotlin/Scala

這些語言提供了良好的Java互操作性,並且有許多人將它們與bitcoinj結合使用。

Python

Python有許多粉絲,可以很有趣地進行原型設計。原始的Python實現不能與Java程式碼互操作,但我們可以通過另一種方式使用Jython獲得訪問許可權。Jython是Python(2.x)的一個實現,它與原始語言/類庫相容,並提供了一個互動式直譯器,就像普通的Python一樣,用於探索和學習。只要你不依賴任何自定義的CPython擴充套件,你就可以直接執行常規Python應用程式,包括UNIX樣式的可執行指令碼。

為什麼要這麼做?主要是因為你可以像匯入Python類庫一樣匯入Java類庫(來自org.bitcoinj.core匯入Wallet)。你還可以獲得更好的垃圾收集器和真正的多執行緒支援。

Ruby

與Jython類似,還有JRuby。像Jython一樣,它在JVM上執行Ruby,具有相同的優點——一個出色的垃圾收集器,與Java程式碼互操作,真正的多執行緒支援等等。和Jython一樣,唯一有問題的是依賴基於C語言的擴充套件函式模組,但是任何純Ruby語言開發的內容都可以工作。

C#和.NET

bitcoinj可以通過IKVM使用。

C++

目前,C++使用bitcoinj的最簡單方法是嵌入JVM並使用自動生成的JNI包。以下是此類程式的示例:

它依賴於名為CPPJVM的工具的分支,它映射了Java類檔案,然後生成呼叫Java方法/讀取欄位的C++封裝的物件。

該工具基於對某些根類的遞迴檢索生成所需的所有類,如下所示:

因為WalletAppKit存在並且可以通過此類訪問大多數bitcoinj API,所以大多數API都封裝好了。如果你丟失了一個片段,你可以將你想要的類新增到該列表中,刪除gen目錄並重新執行make。

回撥介面(WalletListenerPeerEventListener等)必須手動繫結,但不完整。如果你想使用C++中的bitcoinj,需要自己動手完成。幸運的是,它很容易,而且它們的程式碼實現並不長:

我們還在探索將bitcoinj源完全自動轉換為C++,因此可以在沒有任何JVM的情況下使用它。然而,這項工作處於較早的,目前在不太可用的階段。

Objective-C

Hive團隊維護著一個名為BitcoinKit的庫,該庫專為在MacOS X上構建錢包應用程式而設計。它不會暴露原始的bitcoinj API,而是在頂層提供自己的Objective-C API並使用JNI。

RoboVM可用於將Java編譯為在iPhone上執行的ARM二進位制程式碼,並且它具有適用於所有iOS框架的繫結。如果你想用bitcoinj編寫一個iPhone應用程式,這將是一個很好的方法。

或者,BreadWallet是一個iOS SPV錢包,不是基於bitcoinj。程式碼不是作為庫編寫的,但可以提取核心程式碼並將其用於其他目的。

Lisp

biteasy.com上的塊瀏覽器是用Clojure編寫的,這是一種在JVM上執行的Lisp。它直接使用了bitcoinj。

我建議你瀏覽我們的區塊鏈教程和區塊鏈技術部落格,深入瞭解區塊鏈,比特幣,加密貨幣,以太坊,和智慧合約。

  • 以太坊入門教程,主要介紹智慧合約與dapp應用開發,適合入門。
  • 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • java以太坊開發教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。
  • python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
  • php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
  • C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智慧合約開發與互動、過濾器和交易等。
  • php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
  • java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
  • EOS入門教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。

匯智網原創翻譯,轉載請標明出處。這裡是原文