首页 > 编程知识 正文

以太坊应用怎么搭建,以太坊框架

时间:2023-05-04 23:37:07 阅读:184581 作者:3587

以太坊 infura.io

最近,我决定我想对以太坊开发有所了解,因为区块链技术一直使我感兴趣,但是我从来没有真正去做过一个项目。 由于Android是我最喜欢的环境,因此我决定将它作为我的平台。 但是,一开始我就发现很难在移动设备上找到很多有关以太坊开发的信息,这导致本文的创建。在本文中,我将向您展示如何在以太坊Testnet Rinkeby上使用web3j制作一个简单的以太坊应用程序。

1.在您的项目中设置Web3j

在Android中使用Web3j的第一步是将其添加到您的项目中。 由于Web3j具有maven插件,因此非常简单:只需将mavencentral添加到项目build.gradle文件中,然后将web3j作为依赖项添加到应用程序build.gradle文件中(请确保您使用的是Android版本)。

repositories { mavenCentral() google() jcenter() } dependencies { implementation fileTree (dir: 'libs' , include : [ '*.jar' ]) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'org.web3j:core:4.1.0-android'}

由于我们将使用互联网与以太坊网络进行交互,因此请在android清单文件中指定此权限。

<?xml version="1.0" encoding="utf-8"?>< manifest xmlns:android = "http://schemas.android.com/apk/res/android" package = "com.web3j_intro" > < uses-permission android:name = "android.permission.INTERNET" /> 2.确定要使用的节点类型并通过它进行连接

与以太坊区块链通信时,必须通过一个节点进行。 解释节点的确切含义不在本文的讨论范围之内,但是,关于这些节点的重要意义在于,它们被用来向以太坊区块链收发信息。
现在,要在移动设备上设置其中之一,您可以选择在设备上运行私有节点,也可以通过云中的节点运行,在我们的案例中,这是Infura提供的。 我决定使用Infura的原因是,运行任何节点都要求它与以太坊网络同步,这意味着在首次初始化该节点后,启动它需要花费一些时间和大量内存(对于移动设备标准) ,我一直想避免这样做(如果您仍然对运行私有节点感兴趣,我建议您看看go-Ethereum mobile)。

您可以在Infura轻松注册API密钥。 拥有之后,使用端点链接创建一个新的Web3j对象并连接到Rinkeby Testnet:

// FIXME: Add your own API key hereweb3 = Web3j.build( new HttpService( "https://rinkeby.infura.io/v3/YOURKEY" ));try { Web3ClientVersion clientVersion = web3.web3ClientVersion().sendAsync().get(); if (!clientVersion.hasError()){ //Connected } else { //Show Error }}catch (Exception e) { //Show Error}

如果一切顺利,您只需连接到Rinkeby Ethereum Testnet。 恭喜你!

3.创建一个钱包

让我们创建一个钱包,以便我们接下来可以发送和接收testnet ether。 为此,我们需要在用户设备内创建一个钱包文件:

// FIXME: Use your own password hereprivate final String password = "medium" ;private String walletPath = getFilesDir().getAbsolutePath();private File walletDir = new File(walletPath);try { WalletUtils.generateNewWalletFile(password, walletDir); }catch (Exception e){ //Display an Error} 4.获取地址并加载钱包

太好了,现在我们有了一个钱包,让我们获取它的地址,以便可以用Rinkeby 龙头的一点Testnet以太网加载它。

try { Credentials credentials = WalletUtils.loadCredentials(password, walletDir); Toast.makeText( this , "Your address is " + credentials.getAddress(), Toast.LENGTH_LONG).show();}catch (Exception e){ //Show Error} 5.发送交易

在将一些Rinkeby Ether装入我们的钱包之后,让我们尝试将其寄回:

try { Credentials credentials = WalletUtils.loadCredentials(password, walletDir); TransactionReceipt receipt = Transfer.sendFunds(web3,credentials, "0x31B98D14007bDEe637298086988A0bBd31184523" , new BigDecimal( 1 ),Convert.Unit.ETHER).sendAsync().get(); Toast.makeText( this , "Transaction complete: " +receipt.getTransactionHash(), Toast.LENGTH_LONG).show();} catch (Exception e){ //Show Error} 结论

就是这样! 您刚刚创建了一个简单的Android应用程序来处理能够发送和接收以太坊的以太坊区块链。 所有这些的代码都可以在这里找到。

感谢您的关注!

尼古拉斯

如果您喜欢这个故事,请给这个故事几个React,以便更多的人看到它!

如果您喜欢这个,请给我买咖啡:)

以太坊:0x190d71ba3738f43dc6075f5561e58ac9d4e3dfc2

比特币:1BRucWzs2vnrkfmbfss14ZQErW74A1H1KE

莱特币:LbNfoJfTFVCj7GFaAUtWqhitHJcJ3m8y3V

翻译自: https://hackernoon.com/an-introduction-to-ethereum-development-with-android-using-web3j-and-infura-x13513s5l

以太坊 infura.io

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。