1 Star 0 Fork 0

OSCHINA-MIRROR/BytomBlockchain-node-sdk

Join Gitlife
Discover and participate in excellent open source projects with over 10 million developers. Private repositories are also completely free :)
Join for free
This is a mirrored repository, synchronized daily from the source repository.
This repository does not have a declared open-source license file (LICENSE). Please refer to the specific project description and its code upstream dependencies when using.
Clone/Download
Contribute code
Sync code
Cancel
Hint: Since Git does not support empty folders, creating a folder will generate an empty .keep file.
Loading...
README.md

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)

Взаимодействие с bytom

Мы проведём вас через процесс выпуска некоторых активов.

Шаг 1: создайте ключ

const keyPromise = client.keys.create({ 
          alias:'key', 
          password: 'password'
         })

Это создаст ключ с псевдонимом «alias» и паролем «password».

Шаг 2: создайте учётную запись

const accountPromise = keyPromise.then(key => {
 client.accounts.create({
     alias: 'account', 
     root_xpubs: [key.xpub], 
     quorum: 1 
 })
})

Шаг 3: создайте адрес учётной записи

const addressPromise = accountPromise.then(account => {
  return client.accounts.createReceiver({
    account_alias: account.alias
  })
})

Шаг 4: создайте актив

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
    })
})

Шаг 5: выпуск актива

Сначала создайте транзакцию

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)
  })
})

Second, sign the transaction

const signPromise = buildPromise.then(transactionTemplate => {
  return client.transactions.sign({
    transaction: transactionTemplate, 
    password: 'password'
  })
})

Finally, submit the signed transaction to the bytom network

signPromise.then(signed => {
  return client.transactions.submit(signed.transaction.raw_transaction)
})

Comments ( 0 )

You can comment after Login

Introduction

Cancel

Releases

No releases yet

Contributor

All

Recent Activities

Load more
No more results to load
1
https://gitlife.ru/oschina-mirror/BytomBlockchain-node-sdk.git
git@gitlife.ru:oschina-mirror/BytomBlockchain-node-sdk.git
oschina-mirror
BytomBlockchain-node-sdk
BytomBlockchain-node-sdk
master