Json-Rpc

如何將 Android App 使用者連接到乙太坊網路?

  • January 8, 2020

我正在開發一個分散的應用程序,它要求 Android 應用程序的每個使用者都有單獨的帳戶,其中包含他的乙太餘額資訊和其他使用者特定的資訊。

我閱讀了關於乙太坊輕客戶端的概念,light-clientsfull-nodes了解到官方的乙太坊輕客戶端仍在開發中。

然後我偶然發現了這些關於在AndroidIphone中使用乙太坊的文章。所以他們有點建議創建一個Full-Ethereum節點並讓你的應用程序使用JSON-RPC protocol. 所以我想出了以下架構:

Android 應用程序(包含使用者的私鑰和數據)—-> 乙太坊全節點伺服器(使用可用的乙太坊客戶端設置(在 python 中)—–> 乙太坊虛擬機。

我有一些問題如下:

  1. 上述架構安全嗎?(如果伺服器被入侵或伺服器有偏見會發生什麼)
  2. 我是否需要為每個 Android 應用使用者創建一個全節點乙太坊客戶端。
  3. 全節點伺服器代表它處理交易需要什麼類型的使用者數據?

最後一個有點脫離上下文,可能非常模糊,給定一個 JSON-RPC 庫,如

$$ web3j $$$$ 3 $$和一個像這樣的全節點客戶端$$ pyethapp $$$$ 4 $$在不同的設備上執行,我將如何進行web3j互動pyethapp

  1. 上述架構安全嗎?(如果伺服器被入侵或伺服器有偏見會發生什麼)

如果使用者密鑰僅本地儲存在使用者設備上,這是一個非常安全的架構。但是,我可以想像一個可能的攻擊向量,其中您的使用者和您的節點之間的流量受到損害,並且提供了有關網路聲明的不正確資訊,導致您的使用者進行不明智的交易。我不確定這對您的應用程序實際上有多大可能,但如果它看起來像是您應該防禦的東西,那麼使用第二個事實來源會有所幫助。

  1. 我是否需要為每個 Android 應用使用者創建一個全節點乙太坊客戶端。

  1. 全節點伺服器代表它處理交易需要什麼類型的使用者數據?

無,前提是交易在發送前均已正確簽名

要與遠端節點互動,您可以像這樣向 web3.js 提供 ip 和埠:

web3.setProvider(new web3.providers.HttpProvider('http://ipaddress:port'));

引用自:https://ethereum.stackexchange.com/questions/10791