Git Product home page Git Product logo

restserver's Introduction

#IDentify REST API Sever

REST API сервер обеспечивает простой и удобный интерфейс для работы со смарт-контрактом системы идентификации.

Развертывание REST API сервера

Для работы REST сервера необходимо поднять ноду сети Ethereum. Для простоты мы будем использовать Ropsten Test NET. Для поднятия ноды выполним команду:

geth --light --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi "admin,web3,eth,network,person" --testnet

Мы подняли облегченную ноду и RPC сервер с адресом http://localhost:8545

Подключаемся к ноде через консоль geth и создаём новый аккаунт.

$geth attach
>personal.newAccount("secret")
>eth.accounts[0]

Для выполнения некоторых функций контракта необходимо иметь положительный баланс в эфирах. Эфир можно намайнить или получить донат. Также, для отправки транзакций необходимо разблокировать аккаунт.

>personal.unlockAccount(eth.accounts[0], 'secret', 30000)
>eth.getBalance(eth.accounts[0])

Info

Делайте разблокировку аккаунта каждый раз, когда получаете ошибку Account is locked

Тут нужна ссылка, где скриптом делаем донат и добавляем разрешения для работы с контрактом. Для поднятия HTTPS сервера нам нужны сертификат и ключ.

$openssl genrsa -des3 -out server.key 1024
$openssl req -new -key server.key -out server.csr
$cp server.key server.key.org
$openssl rsa -in server.key.org -out server.key
$openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
$cp server.crt /usr/local/ssl/ssl.crt
$cp server.key /usr/local/ssl/ssl.key
$rm server.crt
$rm server.key
$rm server.key.org

Warning

Внимательно отнеситесь к безопасности ваших ключей и сертификатов! Данный код не обеспечивает должной безопасности.

Код смарт-кондракта можно взять тут: identify.sol. Устанавливаем переменные окруженя для запуска сервера:

$export CONTRACT_ADDRESS=0xbd158c546e931c0e5b645825dfe4462a65b3fdcd
$export CERTIFICATE_FILE=/usr/local/ssl/ssl.crt
$export PRIVATE_KEY_FILE=/usr/local/ssl/ssl.key
$export DEBUG=IDENTIFY
$export rpc_url=http://localhost:8545/

Запускаем сервер:

$git clone https://github.com/RosEvroBank/Identify.git
$cd Identify/REST
$npm install
$node server.js

Или в Microsoft Azure развертываем через Azure Marketplace.

restserver's People

Contributors

anatoliyaksenov avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.