Шлюзы между сетями

Исходные условия - приватный кластер на базе geth, аккаунты в крипто валютах (отличных от родной сети приватного кластера - BTC, BCH, ETH, DASH, FTC, VTC, PPC, BLK).

Задача - согласование операций по вводу и выводу криптовалют через операции приватного кластера.

Требования реализации - Python, максимум 1 выделенная нода.

1. Учитывая  требования к управляющей ноде - не более 1 выделенной машины, сразу исключим вариант размещения клиентов криптовалют - 1 нода = 1 валюта (при размере блокчейн биткойна в 170 гигабайт данных, следовательно, такой подход потребует минимум несколько нод).
2. Воспользуемся библиотекой python moneywagon - предоставляющей удобный и вполне понятный для использования из скрипта python интерфейс. Данный интерфейс позволяет нам получать в реальном времени сведения по каждой из представленных криптовалют - как баланс счета, так и детали транзакций.
3. С помощью клиентской библиотеки web3.py организуем взаимодействие между контрольной нодой и приватным кластером (посредством провайдера JSON RPC).
4. С помощью указанной в пункте 3 библиотеки становится возможным обращение к смарт - контракту на предмет получения состояния операций, требующих внимания внешнего интерфейса.
5. В случае, если смарт-контракт внутри приватного кластера изменяет свое состояние путем сообщения о наличии операции,управляющая нода, путем чтения соответствующей переменной смарт-контракта получает соответствующее состояние кластера.
6. В случае удачного чтения, контролирующая нода получает идентификатор транзакции на внешнем счету депо и идентификатор клиента, получающего внутри приватного кластера указанную транзакцию - заметим, доверять клиенту указывать сумму транзакции мы не можем, т.к. не можем удостовериться в правильности суммы.
7. Контролирующая нода проверяет транзакцию и вносит ее сумму на баланс получателя в приватном кластере.
8. Если транзакция, прочитанная контролирующей нодой, содержит сумму операции, клиент приватного кластера затребовал выводную операцию с баланса счета депо - при этом, в момент регистрации операции внутри кластера, проводятся соответствующие проверки на предмет наличия на балансе соответствующей валюты необходимой для вывода суммы и комиссии (составляющей два процента)
9. Получив запрос внешней выводной операции, контролирующая нода совершает операцию, выставляя в списке операций внутри кластера время ее завершения.

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

Комментарии

Популярные сообщения