Au lieu d'une préface
Dans cet article, je vais décrire en termes généraux la direction dans laquelle évoluer afin de créer un échangeur de crypto-monnaie semi-automatique avec la possibilité de gérer les transactions à partir de n'importe quel appareil n'importe où dans le monde 24/7. Vous ne trouverez pas les détails de mise en œuvre ici, car Ce matériel est plutôt destiné à fournir les connaissances de base nécessaires pour lancer une telle startup.
Échangeur de crypto-monnaie semi-automatique.
Il était une fois, j'ai écrit un peu sur l'utilisation d'un robot de télégramme pour automatiser certains processus. Je dois dire que beaucoup de temps s'est écoulé, mais je continue à utiliser certaines des idées qui ont été présentées dans ce petit document.
L'échange de crypto-monnaie aujourd'hui n'est plus seulement une réalité, dans une certaine mesure, c'est déjà un besoin. Le temps est impitoyable et l'or numérique devient désormais une partie très importante des actifs de millions de personnes. Il existe plusieurs types d'échangeurs sur Internet, dont les principaux sont:
semi-automatique
Manuel
automatique
p2p - échangeurs
Échanges
Nous parlerons d'une option semi-automatique avec la possibilité de s'étendre à un échangeur p2p, car c'est un moyen assez simple et pratique.
Ensemble de compétences requises.
, . , , , . , . :
Linux, zsh, vim, systemd
nginx, ssl
ES6, Material Ui, React, eslint, webpack, scss
python3, asyncio, aiohttp, peewee
postgresql
telegram bot api
docker
:
MVC
-
Abstract Factory, Factory Method, Builder, Facade, Prototype
-
Scheduler
-
Event Listner, State
- ,
Proxy
-
, , . , , .
- , , , - . .. , , , : . , ( ) - ?
, . - , , . Single Page Application, , json-rpc
. tcp,
http.
. Node Package Manager
, , react router,
eslint
, node-sass
css
, webpack
.
- . - . stateless. redux
- , .
, , . , react
material ui
. - , , - .
, :
- ,
. P2P , , . , . , , .
asyncio
, . , . BTC/USD USD/RUB, , . get
, coinbase, kraken, bitmex. aiohttp client
:
, , , - , - , , .
- BaseModel, , , created_at, updated_at , , datetime_serializer, , :
API KEY, blockchain.com. , " ". ? , , . - , . , . , . , , . . callback_url, . webhook url
. . , , . , BTC . , BTC, .
, master wallet, , . . :
, . , , ( ) blockchain.
Billing
Processing,
.
: , , , . : .
Telegram bot
. @BotFather, , , ( - , ).
, rpc
, .
, . ( ). , .
, message
callback_query
(reply inline ).
, . race condition, - , atomic_db_query
async with objects.atomic() as atomic_db_query:
try:
pass # some database change
except:
atomic_db_query.rollback()
- .. , , , . , subscription
, , :
, , . 24/7 , , , :
production
, , CI-CD, .
, , ipython
:
nginx
, , mod_rewrite
.
location = /api/rates/rates.xml {
rewrite .* /api/rates/ last;
}
, xml , rewrite
.
- - Basic Auth
bootstrap admin template
. :
, , , , , . JWT
, SLL
, CORS
, , . , . , , . - . . , - .
J'espère que quelqu'un trouvera cette information utile. Je voulais juste partager un peu mes expériences et expériences tirées du processus.
Le développement ultérieur se positionne comme une plateforme p2p pour effectuer un échange. Je serais heureux d'avoir des questions et des suggestions, et je vous remercie beaucoup pour votre temps.