-
Notifications
You must be signed in to change notification settings - Fork 0
Как работать с Graphene на JavaScript
В этом случае требуется Node.js, и его версия должна быть не ниже 10, а рекомендуется - 16.
В случае с Ubuntu выполните в приложении Терминал следующие команды, чтобы удалить существующий Node.js (если он имеется) и установить 16:
sudo apt-get remove nodejs
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
- Для других Linux см. здесь
- Для Windows - здесь
- Для 32-битных Windows - здесь (использовать только на компьютерах, где обычный вариант не работает)
- Для macOS - здесь
После того, как Node.js установлен, проверьте, что он доступен из Терминала.
- Проверьте работу npm:
npm --version
Она должна выдать ответ наподобие "8.1.2", а не ошибку.
- Проверьте работу самого Nodejs:
nodejs --version
А если эта команда выдает ошибку, то должна работать эта:
node --version
Если все команды выдают ошибку, то в случае Windows необходимо сделать следующее:
- Найдите, по какому пути установлен nodejs. Обычно это
C:\Program Files\nodejs
, но возможно такжеC:\Program Files (x86)\nodejs
- Открыть "Панель управления", выбрать "Система", нажать синюю надпись "Дополнительные параметры системы", нажать кнопку "Переменные среды", в списке "Переменные среды пользователя" выбрать переменную Path или PATH, нажать кнопку "Изменить", затем "Создать" и вставить туда путь из пункта 1. Затем нажмите "OK", снова "ОК", затем "Применить", и закройте панель управления.
- Откройте новый PowerShell и снова проверьте команды.
После того, как Node.js будет корректно установлен, можно создать свой первый скрипт, который будет работать на вашем ПК и взаимодействовать с Graphene.
- Создайте папку hellographene
- Откройте эту папку в терминале. В случае с Windows, сначала просто откройте папку, затем, щелкните "Файл", и затем "Запустить PowerShell".
- Выполните команду
npm install bitsharesjs
На данный момент это рекомендуемая библиотека для работы с Graphene 4. Создайте в папке скрипт index**.mjs** со следующим кодом:
import { Apis } from 'bitsharesjs-ws' // эта библиотека входит в bitsharesjs
import { ChainStore } from 'bitsharesjs'
async function main() {
console.log('Connecting...')
await Apis.instance('wss://gph.lexai.host/', true).init_promise
console.log('Initializing chainstore...')
await ChainStore.init(false)
console.log('Done. Processing...')
// чтобы получить дату и время последнего блока, есть хелпер
console.log(ChainStore.getHeadBlockDate())
// а вот чтобы получить номер последнего блока и другую информацию dynamic global property object,
// надо потрудиться
const dgps = await Apis.instance().db_api()
.exec('get_objects', [['2.1.0']])
let head_block_number = 0
for (let i = 0; i < dgps.length; ++i) {
if (dgps[i])
head_block_number = dgps[i].head_block_number
}
console.log(head_block_number)
process.exit(0)
}
main()
А если используете Node.js старше 14, то переименуйте файл в index**.js** и вместо import используйте
const { Apis } = require('bitsharesjs-ws') // эта библиотека входит в bitsharesjs
const { ChainStore } = require('bitsharesjs')
- Запустите с помощью:
node index.mjs
Чтобы перенести бот на другой компьютер, просто скопируйте всю папку hellographene (вместе с node_modules) на него, и установите Node.js. В этом случае повторно делать npm install
не нужно, можно сразу запускать скрипт через node
.
Однако при пользовании GitHub и прочими системами контроля версий не рекомендуется загружать туда папку node_modules
, поскольку она занимает место и засоряет историю изменений (коммитов). В этом случае при каждом скачивании репозитория придется выполнять команду:
npm install
Которая автоматически создаст папку node_modules
, установит в нее все библиотеки (в том числе bitsharesjs, ведь она уже числится в package.json
и package-lock.json
) и можно будет запускать скрипт.