成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Bytom 移動(dòng)端錢(qián)包 SDK 開(kāi)發(fā)基礎(chǔ)

Karuru / 2034人閱讀

摘要:比原項(xiàng)目倉(cāng)庫(kù)地址地址是從源碼中抽離出的錢(qián)包層代碼并且對(duì)錢(qián)包層代碼進(jìn)行了改造。其他的是創(chuàng)建密鑰賬戶(hù)地址等,能夠?qū)﹀X(qián)包所有賬戶(hù)地址資產(chǎn)進(jìn)行備份導(dǎo)出格式的數(shù)據(jù)。

比原項(xiàng)目倉(cāng)庫(kù):

Github地址:https://github.com/Bytom/bytom

Gitee地址:https://gitee.com/BytomBlockchain/bytom

Bytom-Mobile-Wallet-SDK 是從bytom源碼中抽離出的錢(qián)包層代碼,并且對(duì)錢(qián)包層代碼進(jìn)行了改造。使用gomobile可以將代碼 編譯成Android和iOS平臺(tái)可用的SDK,使用編譯后的Android和iOS錢(qián)包SDK可以在移動(dòng)端實(shí)現(xiàn)創(chuàng)建bytom密鑰、賬戶(hù)、地址和交易簽名功能。

Bytom-Mobile-Wallet-SDK源碼簡(jiǎn)介

SDK源碼放在項(xiàng)目的sdk文件夾中,android和ios文件夾是使用SDK的demo項(xiàng)目,bind.go 中首字母大寫(xiě)可以外部調(diào)用的函數(shù)會(huì)作為提供給Android和iOS調(diào)用的API。bytom創(chuàng)建的密鑰對(duì)會(huì)存儲(chǔ)在磁盤(pán)多帶帶的文件中,而且對(duì)私鑰進(jìn)行了加密,賬戶(hù)地址數(shù)據(jù)是存儲(chǔ)在go實(shí)現(xiàn)的leveldb中,所以Android和iOS平臺(tái)也需要提供數(shù)據(jù)存儲(chǔ)的路徑。

func InitWallet(storagePath string) {
    hsm := pseudohsm.New(storagePath)
    walletDB := db.NewDB("wallet", "leveldb", storagePath)
    accounts := account.NewManager(walletDB)
    assets := asset.NewRegistry(walletDB)
    wallet := aWallet.NewWallet(walletDB, accounts, assets, hsm)
    api = aApi.API{Wallet: wallet}
}

Android和iOS平臺(tái)調(diào)用其他錢(qián)包API的之前需要先調(diào)用InitWallet這個(gè)API,參數(shù)是磁盤(pán)上的絕對(duì)路徑,InitWallet會(huì)對(duì)整個(gè)錢(qián)包進(jìn)行一個(gè)初始化, 其中最重要是初始化leveldb的存儲(chǔ)。其他的CreateKey、CreateAccount、CreateAccountReceiver是創(chuàng)建密鑰、賬戶(hù)、地址等API,RestoreWallet API能夠?qū)﹀X(qián)包所有賬戶(hù)地址資產(chǎn)進(jìn)行備份導(dǎo)出json格式的數(shù)據(jù)。

Bytom-Mobile-Wallet-SDK的編譯

SDK代碼的編譯首先需要正確的安裝golang和gomobile,golang需要1.7以上版本。
Android平臺(tái)需要安裝JDK、Android SDK、Android NDK,并且需要將Android SDK的platform-tools、ndk-bundle 添加到PATH系統(tǒng)環(huán)境變量中。iOS平臺(tái)編譯環(huán)境配置相對(duì)比較簡(jiǎn)單只需要安裝Xcode就可以了。
Clone項(xiàng)目到本地$GOPATH/src下:

 git clone https://github.com/Bytom-Community/Bytom-Mobile-Wallet-SDK $GOPATH/src/github.com/bytom-community/mobile
Android
gomobile init -ndk ~/path/to/your/ndk
cd $GOPATH/src/github.com/bytom-community/mobile
gomobile bind -target=android github.com/bytom-community/mobile/sdk/

如果需要減小SDK的體積給gomobile bind指令加上-ldflags=-s參數(shù):

gomobile bind -target=android -ldflags=-s github.com/bytom-community/mobile/sdk/

執(zhí)行指令后會(huì)在mobile文件夾生成wallet.aar和wallet-sources.jar文件。

iOS
cd $GOPATH/src/github.com/bytom-community/mobile
gomobile bind -target=ios github.com/bytom-community/mobile/sdk/

如果需要減小SDK的體積給gomobile bind指令加上-ldflags=-w參數(shù):

$ gomobile bind -target=ios -ldflags=-w github.com/bytom-community/mobile/sdk/

執(zhí)行指令后會(huì)在mobile文件夾生成wallet.framework文件。
由于gomobile現(xiàn)在沒(méi)有支持bitcode,所以生成的iOS SDK也不支持bitcode。

Bytom-Mobile-Wallet-SDK的使用 Android

拷貝wallet.aar和wallet-sources.ja到Android項(xiàng)目的app的libs文件夾下,并在app module中的build.gradle文件中添加:

android {
    repositories {
        flatDir { dirs "libs" }
    }
}

dependencies {
    implementation fileTree(include: ["*.jar"], dir: "libs")
    implementation(name: "wallet", ext: "aar")
}

sync project后可以在Android項(xiàng)目中對(duì)SDK的API進(jìn)行調(diào)用:

package io.bytom.community;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;


import wallet.Wallet;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView keyTextView = (TextView) findViewById(R.id.key_textview);

        String storagePath = getFilesDir().toString();
        Log.d("storagePath", storagePath);

        Wallet.initWallet(storagePath);
        String keyResult = Wallet.createKey("Marshall", "123456");
        Log.d("keyResult", keyResult);
        keyTextView.setText(keyResult);
    }
}
iOS

通過(guò)項(xiàng)目target的Linked frameworks and libraries把wallet.framework添加到項(xiàng)目,可以在iOS項(xiàng)目中對(duì)SDK的API進(jìn)行調(diào)用:

#import "ViewController.h"
#import "Wallet/Wallet.h"  // Gomobile bind generated framework

@interface ViewController ()
@end

@implementation ViewController

@synthesize textLabel;

- (void)loadView {
    [super loadView];
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    WalletInitWallet(docPath);
    textLabel.text = WalletCreateKey(@"kevin",@"123456");
}

@end

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24281.html

相關(guān)文章

  • 比原鏈社區(qū)項(xiàng)目一覽(持續(xù)更新)

    摘要:錢(qián)包后端服務(wù)節(jié)點(diǎn)前端前端錢(qián)包前端其他合并工具工具文檔類(lèi)讀比原剝開(kāi)比原看源碼系列比原管理挖礦相關(guān)文檔各類(lèi)文檔瀏覽器礦池魚(yú)池雙礦池礦池礦池螞蟻礦池蜘蛛礦池蜜蜂礦池礦池礦池第三方主網(wǎng)錢(qián)包比特派幣派 錢(qián)包 后端服務(wù)節(jié)點(diǎn):https://github.com/Bytom-Comm... Android前端:https://github.com/Bytom-Comm... iOS前端:https:...

    imccl 評(píng)論0 收藏0
  • 調(diào)用Bytom Chrome插件錢(qián)包開(kāi)發(fā)Dapp

    摘要:流程總結(jié)就是下載安裝插件錢(qián)包,如果自己的不需要跳過(guò)這一步。然后將編譯后的合約參數(shù)配置在的配置文件,如下圖全紅部分是測(cè)試網(wǎng)合約配置參數(shù)調(diào)用插件錢(qián)包。開(kāi)發(fā)出優(yōu)秀的應(yīng)用。 安裝使用插件錢(qián)包 1. 打開(kāi)Google瀏覽器的應(yīng)用商店,搜索Bystore showImg(https://segmentfault.com/img/bVbq0Ol?w=2554&h=1312); 下載鏈接:http:/...

    Mike617 評(píng)論0 收藏0
  • Bytom BIP-32協(xié)議和BIP-44協(xié)議

    摘要:來(lái)做一個(gè)詳細(xì)的介紹協(xié)議協(xié)議原英文地址地址定義簡(jiǎn)稱(chēng),是一個(gè)系統(tǒng)可以從單一個(gè)產(chǎn)生一樹(shù)狀結(jié)構(gòu)儲(chǔ)存多組私鑰和公鑰。第二層的特指幣種并且允許多元貨幣錢(qián)包中的貨幣在第二個(gè)層級(jí)下有自己的亞樹(shù)狀結(jié)構(gòu)。每個(gè)賬戶(hù)都是它自己亞樹(shù)的根。 我們知道HD(分層確定性)錢(qián)包,基于 BIP-32;多幣種和多帳戶(hù)錢(qián)包,基于 BIP-44;最近比原社區(qū)的錢(qián)包開(kāi)發(fā)者對(duì)比原的BIP-32和BIP-44協(xié)議有疑問(wèn),所以我今天就...

    e10101 評(píng)論0 收藏0
  • Docker部署Bytom全節(jié)點(diǎn)錢(qián)包

    摘要:微服務(wù)和容器目前比較流行,相信很多小伙伴都比較熟悉如果你不是太了解,可以查看文檔學(xué)習(xí)手冊(cè)。那如何用搭建比原鏈的節(jié)點(diǎn)呢在操作之前,請(qǐng)自行安裝。 微服務(wù)和容器目前比較流行,相信很多小伙伴都比較熟悉docker, 如果你不是太了解,可以查看文檔docker學(xué)習(xí)手冊(cè)。那如何用docker搭建比原鏈(Bytom)的節(jié)點(diǎn)呢? 在操作之前,請(qǐng)自行安裝docker。然后在你的終端輸入(windows對(duì)...

    Harriet666 評(píng)論0 收藏0
  • Derek解讀Bytom源碼-啟動(dòng)與停止

    摘要:只有當(dāng)觸發(fā)了或才能終止進(jìn)程退出。退出時(shí)執(zhí)行如下操作會(huì)將挖礦功能停止,網(wǎng)絡(luò)停止等操作。 作者:Derek 簡(jiǎn)介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 本章介紹bytom代碼啟動(dòng)、節(jié)點(diǎn)初始化、及停止的過(guò)程 作者使用MacOS操作系統(tǒng),其他平臺(tái)也大同小異Golang V...

    Godtoy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<