Bytom Node.js SDK
Терминология
[Keys]
Криптографические ключи — это основной механизм авторизации в блокчейне.
Для создания учётных записей или активов требуются xpub ключей. С помощью этого SDK мы можем создавать, удалять, перечислять все ключи, сбрасывать пароль и проверять пароль. Пожалуйста, ознакомьтесь с [API doc], если вы хотите работать с ключами.
[Account]
Учётная запись — это объект в Bytom, который отслеживает владение активами в блокчейне. Она определяется одним узлом Bytom, созданным с помощью одного или нескольких ключей.
[Related API]
[Asset]
Актив — это тип стоимости, которую можно выпустить в блокчейне. Все единицы данного актива взаимозаменяемы. Единицы актива могут быть переданы напрямую между сторонами без участия эмитента.
[Related API]
[Transaction]
Блокчейн — это цепочка блоков, а блок состоит из нескольких транзакций.
[Related API]
[Unspent Output (UTXO)]
Bytom — это блокчейн на основе UTXO. Одна транзакция тратит некоторые UTXOs и создаёт новые UTXOs.
[Related API]
[Balance]
Любой баланс в блокчейне — это просто сумма UTXOs. В одном bytomd баланс означает сумму UTXOs одной учётной записи.
[Related API]
[Block]
Блок — это контейнер данных, который объединяет транзакции для включения в публичный реестр, блокчейн. Он состоит из заголовка, содержащего метаданные, за которым следует длинный список транзакций, составляющих большую часть его размера. Каждый блок ссылается на предыдущий блок, и все блоки связаны сзади вперёд, чтобы создать блокчейн.
[Related API]
[Config]
Config содержит информацию о сети, которую вы хотели узнать.
[Related API]
Использование
const bytom = require('bytom-sdk')
const url = 'http://localhost:9888'
// access token is required when client is not in same origin
// with the request bytom node
const accessToken = ''
const client = new bytom.Client(url, accessToken)
Мы проведём вас через процесс выпуска некоторых активов.
const keyPromise = client.keys.create({
alias:'key',
password: 'password'
})
Это создаст ключ с псевдонимом «alias» и паролем «password».
const accountPromise = keyPromise.then(key => {
client.accounts.create({
alias: 'account',
root_xpubs: [key.xpub],
quorum: 1
})
})
const addressPromise = accountPromise.then(account => {
return client.accounts.createReceiver({
account_alias: account.alias
})
})
const definition = {
name: "GOLD",
symbol: "GOLD",
decimals: 8,
description: {}
}
const assetPromise = keyPromise.then(key => {
return client.assets.create(
{
alias: 'asset',
definition,
root_xpubs: [key.xpub],
quorum: 1
})
})
const ...
``` ```
buildPromise = Promise.all([
accountPromise,
addressPromise,
assetPromise]
).then(([account, address, asset]) => {
const issueAction = {
amount: 100000000,
asset_alias: asset.alias,
}
const gasAction = {
account_alias: account.alias,
asset_alias: 'BTM',
amount: 50000000
}
const controlAction = {
amount: 100000000,
asset_alias: asset.alias,
address: address.address
}
return client.transactions.build(builder => {
builder.issue(issueAction)
builder.spendFromAccount(gasAction)
builder.controlWithAddress(controlAction)
})
})
const signPromise = buildPromise.then(transactionTemplate => {
return client.transactions.sign({
transaction: transactionTemplate,
password: 'password'
})
})
signPromise.then(signed => {
return client.transactions.submit(signed.transaction.raw_transaction)
})
You can comment after Login
Inappropriate content may be displayed here and will not be shown on the page. You can check and modify it through the relevant editing function
If you confirm that the content does not involve inappropriate language/advertisement redirection/violence/vulgar pornography/infringement/piracy/false/insignificant or illegal content related to national laws and regulations, you can click submit to make an appeal, and we will handle it as soon as possible.
Comments ( 0 )