怎么創(chuàng)建Stellar賬戶

本篇內(nèi)容主要講解“怎么創(chuàng)建Stellar賬戶”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么創(chuàng)建Stellar賬戶”吧!

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供平潭企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為平潭眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

Stellar區(qū)塊鏈?zhǔn)且粋€(gè)廣泛使用的區(qū)塊鏈網(wǎng)絡(luò)。在這個(gè)教程中,我們將學(xué)習(xí)使用JavaScript代碼創(chuàng)建Stellar賬戶、進(jìn)行Stellar賬戶充值、并向Stellar區(qū)塊鏈提交賬戶間的轉(zhuǎn)賬交易。

1、Stellar概述

要快速掌握區(qū)塊鏈和數(shù)字貨幣應(yīng)用開(kāi)發(fā),推薦匯智網(wǎng)的區(qū)塊鏈開(kāi)發(fā)系列在線教程。 內(nèi)容涵蓋比特幣、以太坊、EOS、超級(jí)賬本、Tendermint等多種主流區(qū)塊鏈 平臺(tái), 同時(shí)支持Java、C#、Python、PHP、JavaScript、Dart等多種開(kāi)發(fā) 語(yǔ)言。

Horizon:應(yīng)用程序通過(guò)Horizon開(kāi)發(fā)接口與Stellar網(wǎng)絡(luò)交互。Horizon是一個(gè)RESTful HTTP API服務(wù)器,利用Horizon API開(kāi)發(fā)者可以提交交易,檢查賬戶余額并訂閱事件。你可以在web瀏覽器中使用Horizon API,或者使用cURL命令行訪問(wèn)Horizon API,不過(guò)最簡(jiǎn)單的方法就是使用官方提供的Stellar SDK,目前官方已經(jīng)支持JavaScript、Java和Go,同時(shí)社區(qū)也開(kāi)發(fā)了Python、C#和Ruby的SDK。

Stellar Core:是Stellar網(wǎng)絡(luò)的主干,每個(gè)Horizon服務(wù)器都需要連接到Stellar Core。Stellar Core負(fù)責(zé)驗(yàn)證交易并達(dá)成共識(shí)。所有個(gè)體運(yùn)行的Stellar Core形成了去中心化的Stellar網(wǎng)絡(luò),網(wǎng)絡(luò)上的每個(gè)交易都需要支付一小筆費(fèi)用:100 stroop(0.00001 XLM),交易手續(xù)費(fèi)的目的是阻止網(wǎng)絡(luò)上的垃圾信息。

Stellar共識(shí)協(xié)議 - SCP:SCP在安全和活性之間選擇了安全 - 當(dāng)出現(xiàn)分區(qū)事件或有行為異常的節(jié)點(diǎn)時(shí),SCP會(huì)停止網(wǎng)絡(luò)的運(yùn)行,直到可以達(dá)成網(wǎng)絡(luò)的共識(shí)。關(guān)于SCP的詳細(xì)信息請(qǐng)參考Stellar白皮書(shū)。

使用Docker運(yùn)行Stellar Core:只要運(yùn)行一個(gè)Stellar Core實(shí)例,就可以加入Stellar網(wǎng)絡(luò)。我們可以使用Stellar/quickstart這個(gè)docker鏡像來(lái)快速創(chuàng)建一個(gè)Stellar Core實(shí)例。

測(cè)試鏈對(duì)于開(kāi)發(fā)者而言,幸運(yùn)的是Stellar也提供了一個(gè)測(cè)試鏈供開(kāi)發(fā)使用。你可以在這里查看其詳細(xì)信息。

2、Stellar開(kāi)發(fā)概述

在繼續(xù)學(xué)習(xí)之前,希望你對(duì)JavaScript、Express和Async/Await有初步的了解。

我們將在測(cè)試鏈上創(chuàng)建兩個(gè)賬戶,然后充值這兩個(gè)賬戶,并在這兩個(gè)賬戶之間進(jìn)行一些隨意地轉(zhuǎn)賬。最后,我們希望使用交易瀏覽器提取交易信息??傊?,本教程的目的是讓你快速了解Stellar區(qū)塊鏈開(kāi)發(fā)的基礎(chǔ)知識(shí)。

你可以在這里找到本教程的完整代碼。在本教程的結(jié)尾部分也有完整的代碼。

3、創(chuàng)建Stellar賬戶

Stellar JavaScript SDK在所有官方SDK中是最穩(wěn)定的一個(gè)。我們可以使用如下命令安裝JS SDK:

npm i -S stellar-sdk

使用下面的JS代碼來(lái)初始化一個(gè)連接測(cè)試鏈的Server實(shí)例:

const server = new Stellar.Server('https://horizon-testnet.stellar.org')
Stellar.Network.useTestNetwork()

現(xiàn)在我們可以創(chuàng)建兩個(gè)隨機(jī)賬戶了。Stellar SDK提供了一個(gè)函數(shù)用于在不提供密碼學(xué)種子的情況下創(chuàng)建隨機(jī)密鑰對(duì):

let pairA = Stellar.Keypair.random()
let pairB = Stellar.Keypair.random()

得到的Keypair對(duì)象提供了兩個(gè)方法分別用于獲取密鑰對(duì)的公鑰和密文種子:

  • publicKey():獲取公鑰

  • secret():獲取密文種子

接下來(lái)我們定義初始化賬戶的路由。在下面的函數(shù)中,我們將向Stellar測(cè)試鏈上的friendbot發(fā)送請(qǐng)求以充值之前創(chuàng)建的密鑰對(duì)賬戶。friendbot會(huì)自動(dòng)給我們的賬戶分別充值10.000個(gè)Lumen。下面的代碼使用request-promise包來(lái)發(fā)送請(qǐng)求給Horizon測(cè)試鏈API,這個(gè)包可以很好地配合async/await。我們?cè)?查詢字符串中傳入要充值的公鑰地址。

await rp.get({
  uri: 'https://horizon-testnet.stellar.org/friendbot',
  qs: { addr: pairA.publicKey() },
  json: true
})

賬戶現(xiàn)在已經(jīng)創(chuàng)建好了,但是我們?cè)趹?yīng)用中還沒(méi)有賬戶對(duì)象。使用如下的代碼獲?。?/p>

accountB = await server.loadAccount(pairB.publicKey())

現(xiàn)在可以檢查我們的賬戶中是不是已經(jīng)有了一些Stellar幣了:

accountA.balances.forEach((balance) => {
  console.log('Type:', balance.asset_type, ', Balance:', balance.balance)
})

上面的代碼略加修改就可以獲取賬戶B的余額,你可以試一下!

4、Stellar轉(zhuǎn)賬交易

一個(gè)交易(transaction)可以包含多個(gè)操作(operation)。出于簡(jiǎn)化考慮,我們將只使用轉(zhuǎn)賬操作。在下面的示例中將pairB的公鑰作為轉(zhuǎn)賬目標(biāo)地址,轉(zhuǎn)賬數(shù)量為30.000000001。Stellar SDK要求mount參數(shù)應(yīng)當(dāng)聲明7位小數(shù):

const transaction = new Stellar.TransactionBuilder(accountA)
  .addOperation(Stellar.Operation.payment({
    destination: pairB.publicKey(),
    asset: Stellar.Asset.native(),
    amount: '30.0000001'
  }))
  .build()

酷!交易現(xiàn)在就等著發(fā)送賬戶進(jìn)行簽名了,我們可以使用transaction.sign(pairA)來(lái)進(jìn)行這一步。好了,簽完名就可以發(fā)送給Horizon了:

const transactionResult = await server.submitTransaction(transaction)

5、提取Stellar交易歷史

下面的代碼將每頁(yè)僅返回一個(gè)交易。你可以使用historyPagenext()方法繼續(xù)提取后續(xù)的交易:

let historyPage = await server.transactions()
  .forAccount(accountA.accountId())
  .call()

我們要打印XDR編碼的交易中的操作詳情。首先需要解碼為base64并迭代所有操作來(lái)顯示發(fā)送的金額:

let txDetails = Stellar.xdr.TransactionEnvelope
  .fromXDR(historyPage.records[1].envelope_xdr, 'base64')

txDetails._attributes.tx._attributes.operations
  .map(operation => console.log(
    `Transferred amount:         
    ${operation._attributes.body._value._attributes.amount.low} XLM`
  ))

最后,讓我們獲取下一個(gè)historyPage

historyPage = await historyPage.next()

6、Stellar補(bǔ)充技能

  • 你可以瀏覽Stellar網(wǎng)絡(luò)中的交易,查看這個(gè)示例。

  • 交易的元數(shù)據(jù)保存為XDR格式,你可以在這里進(jìn)行反序列化。

  • 你可以查看指定公鑰的所有交易,這是一個(gè)示例。

到此,相信大家對(duì)“怎么創(chuàng)建Stellar賬戶”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享題目:怎么創(chuàng)建Stellar賬戶
文章來(lái)源:http://muchs.cn/article30/geohso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、商城網(wǎng)站網(wǎng)站維護(hù)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司