Tutoriel EOS : comptes et wallets

in eos •  6 years ago 

shutterstock_1027710073.jpg

EOS est une plateforme blockchain de dernière génération aux caractéristiques uniques. En effet, outre son mécanisme de consensus - la preuve d'enjeu déléguée (dPoS) - EOS se différencie de nombreuses autres infrastructures de par son système de comptes utilisateur, et par la gratuité des transactions. Comment fonctionne le système de comptes EOS ? Comment fonctionne le séquestre des tokens EOS ? Quelles sont les meilleures interfaces disponibles ? Comment définir les ressources, en unités processeur et en mémoire vive, nécessaires au bon fonctionnement de son compte ?

Les comptes utilisateurs sur EOS


Afin de favoriser l'adoption des systèmes d'échange de valeur décentralisés, il est nécessaire d'éliminer le plus de barrières techniques possibles entre l'utilisateur final et la blockchain. Le format des adresses publiques sur la plupart des réseaux existants est difficilement lisible par le commun des mortels. En plus de décourager les nouveaux venus, cela peut également entraîner des erreurs de lecture ou d'écriture qui peuvent s'avérer coûteuses. C'est la raison pour laquelle l'idée d'avoir des comptes utilisateurs, lisibles dans un format "humain-compatible" est essentielle.

Sur EOS, il est possible de créer autant de comptes utilisateurs qu'on le souhaite, à condition bien sûr d'avoir consacré la quantité de tokens correspondante aux ressources nécessaires à l'existence du compte : il s'agit de la bande passante, des unités de calcul (CPU), et de la mémoire vive. Ces trois ressources sont disponibles en quantité finie dans l'écosystème EOS et sont fournies par les producteurs de blocs. En mettant une certaine quantité d'EOS sous séquestre, l'utilisateur accède à sa part des ressources du réseau correspondante.

  • La bande passante, en ko / s, représente le débit de données auquel un utilisateur peut prétendre.
  • Les unités de calcul (CPU) représentent la quantité d'informations que le réseau pourra traiter pour lui en un temps donné.
  • La mémoire vive (RAM) est utilisée pour stocker des informations relatives à son compte, par exemple son nom, son solde, les autorisations d'accès, l'état des smart contracts qui y sont déployés, etc. À la différence des deux ressources précédentes, la mémoire vive s'achète sur le marché (nous sommes en faveur d'un changement au profit d'un système de location de la RAM).
Il y a deux types de comptes utilisateurs sur EOS :
  • Les comptes standards, représentés sous la forme de 12 caractères alphanumériques (toutes les lettre minuscules de a à z et tous les chiffres de 0 à 9).
  • Les comptes premium, pouvant être représentés par des chaînes de caractères plus courtes. Ces "étiquettes" personnalisées (par exemple, si vous souhaitez créer un compte au nom de votre entreprise) sont accessibles via un système d'enchères.
Sur le plan technique, les comptes utilisateur possèdent deux clefs :
  • Une clef active (active key) : il s'agit de la clef permettant d'interagir avec la blockchain : effectuer des transactions, voter, acheter de la RAM, et ainsi de suite.
  • Une clef propriétaire (owner key) : cette clef permet de modifier la propriété et les autorisations d'accès à un compte.
Pour des raisons évidentes de sécurité, les deux clefs devraient être différentes.

Il est bien entendu possible de créer des comptes multi-signatures, et de configurer le seuil de signatures nécessaires à son activation, tout comme sur Bitcoin.

Un compte EOS peut être vu comme votre identifiant "humain-compatible" sur la blockchain, permettant d'accéder à cette dernière. Il est nécessaire afin d'exécuter des transactions, et différents niveaux d'autorisation d'accès à ce compte peuvent être définis. Cela signifie également qu'afin de créer un nouveau compte, il faut passer par un compte existant.

Du point de vue de l'architecture logicielle d'EOS, les wallets sont gérés par keosd et les comptes par nodeos. L'interface en ligne de commande cleos permet d'accéder aux deux programmes, qui sont indépendants.

Comment connaître votre nom de compte EOS ?

Lors de la genèse d'EOS, tous les utilisateurs ayant effectué la procédure d'enregistrement de leurs tokens ERC 20 se sont vus attribuer un compte correspondant à la clef publique EOS enregistrée. Vous pouvez très facilement trouver le nom (généré aléatoirement) du compte correspondant à votre clef publique EOS ou à votre adresse publique Ethereum en vous rendant par exemple sur :

Si vous n'avez pas de compte EOS résultant du bloc de genèse (par exemple si vous avez laissé vos ERC-20 sur une plateforme de change), afin de créer un nouveau compte, vous devez passer par un compte existant. Il existe ainsi différentes manières de créer un nouveau compte :
  • Grâce à un ami qui en possède déjà un ;
  • Grâce à un service tiers ;
  • Grâce au compte bootstrap d'EOSIO.
Vous pouvez utiliser la même clef publique (active key) pour autant de comptes que vous le souhaitez.

Il faut également prendre en considération la propriété des tokens qui sont séquestrés : il peuvent appartenir au créateur du compte, ou bien au détenteur du compte créé.

Il est également possible de déléguer les droits de vote d'un compte à un autre compte, par exemple si vous ne souhaitez pas interagir avec la blockchain par peur de faire des bêtises.

Les noms premium :

Les comptes EOS standards ne permettent pas de créer des noms composés de moins de 12 caractères alphanumériques. C'est donc pour permettre aux utilisateurs de créer des noms de comptes personnalisés que le système d'enchères sur les noms premium fut mis en place.

Les noms premium sont des suffixes pouvant être composés d'autant de caractères que l'on souhaite, sans toutefois excéder la limite de 12 signes, à la façon des domaines de premier niveau sur Internet (.com, .fr, etc.) Tout comme leurs analogues sur la toile, c'est grâce à un mécanisme d'enchères que les membres peuvent se les attribuer. N'importe qui peut enchérir sur un premium name, mais seul un nom par jour se verra attribué : il s'agit du nom présentant la plus haute enchère entre tous.

Il est à noter que les tokens EOS dédiés à acquérir des noms premium seront verrouillés dans un fonds, eosio.names, qui sera utilisé pour financer des projets d'intérêt général ou brûlé. Cela crée une forme de pression déflationniste sur EOS, tout en favorisant le bien commun.

Pour enchérir sur les premium names, vous pouvez passer par l'un des outils présentés ci-dessous.

Création d'un compte utilisateur : les différents outils disponibles


Il existe différentes façons de créer un compte EOS. La création d'un compte nécessite de mettre sous séquestre (stake) la quantité de tokens EOS nécessaires pour utiliser les ressources en CPU et en bande passante du réseau. Il faut également prévoir suffisamment d'EOS pour acheter la RAM nécessaire à la création du compte (actuellement 4 ko, mais ce sera revu à la baisse).

La plupart des outils nécessaires pour interagir avec EOS nécessitent l'installation de Scatter. Cette extension permet, à la manière de Metamask sur Ethereum, de gérer vos paires de clefs cryptographiques de manière locale, pour vous permettre de vous identifier sur différentes applications reposant sur le chiffrement asymétrique. En clair, il s'agit d'un outil très efficace pour protéger vos clefs privées sans sacrifier le confort d'utilisation.

Attention : il faut télécharger l’extension Scatter depuis une source sûre (le Chrome Store) et vérifier l’identifiant de l’extension une fois qu’elle est installée !

Rendez-vous sur : https://chrome.google.com/webstore/detail/ammjpmhgckkpcamddpolhchgomcojkle

  • Une fois l’extension installée, copiez-collez l’adresse suivante dans Chrome pour accéder aux extensions et activez le mode développeur (en haut à droite) : chrome://extensions/
  • Retrouvez Scatter dans la liste des extensions et affichez son identifiant complet. Il doit être exactement celui-ci : ammjpmhgckkpcamddpolhchgomcojkle
Première configuration :

Le mot de passe servira à accéder à vos données stockées et chiffrées localement. La phrase mnémonique correspondante vous sera communiquée :

Bien évidemment, les précautions habituelles s'imposent : assurez-vous que votre environnement de travail n'est pas corrompu, conservez ces informations en lieu sûr, etc, etc...

Génération d'un couple de clefs avec Scatter :

Il n'y a rien de plus simple ! Lancez l'extension puis rendez-vous dans l'onglet "Key pairs". Sélectionnez la blockchain EOS, donnez un nom à ce couple de clefs, et cliquez sur le bouton "Generate key pair" : un couple clef privée/publique apparaîtra. La clef privée sera masquée (remplacée par des astérisques) mais en cliquant sur "Copy" vous pourrez copier/coller le couple de clefs dans un fichier (de préférence stocké grâce à une solution sécurisée, comme Keybase, ou sur un support physique externe). Cliquez ensuite sur "Save".

Répétez la manœuvre afin d'avoir deux couples de clefs, afin que l'owner key de votre futur compte soit différente de l'active key.

Une fois ces couples de clefs cryptographiques générés, il faut passer à la création d'un compte EOS à proprement parler. La manière la plus aisée de procéder passe par l'un des nombreux outils disponibles online.

EOS Account Creator par EOSVibes


EOSVibes, candidat à la production de blocs, a créé un service de création de compte EOS en ligne :

Le service est simple comme bonjour à utiliser. Cliquez sur le bouton bleu "GET STARTED". L'écran suivant apparaîtra :

Il vous faut tout d'abord choisir un nom de compte. Sa disponibilité sera vérifiée automatiquement. Attention, un nom de compte EOS standard est composé d'exactement 12 caractères alphanumériques. Une fois que vous avez trouvé un nom valide, passez à l'étape suivante.

Ici, il vous faut fournir les clefs publiques (owner et active) qui correspondront à votre compte. Vous pouvez les générer en utilisant Scatter (voir les explications ci-dessus), ou vous pouvez utiliser tout outil à votre convenance.

Étape 3 : le paiement !


EOS Account Creator vous permet de payer par carte de crédit, via BTC/BCH/ETH/LTC, ou bien directement avec vos EOS, s'ils sont stockés pour le moment sur une plateforme de change. Sélectionnez la méthode désirée, procédez au paiement : ça y est, vous avez un compte EOS !

ZEOS - un service gratuit pour la communauté (seuls les frais correspondant à l'achat de RAM sont nécessaires)


ZEOS est un service en ligne gratuit, sécurisé et open-source permettant de créer très facilement un compte EOS :

Nous ne décrirons pas ici les étapes menant à la création d'un compte, qui sont sensiblement les mêmes que pour l'outil d'EOS Tribe : EOS Actu a déjà réalisé un tutoriel pas-à-pas en français, avec de nombreuses captures d'écran, disponible à cette adresse : Le youtuber Crypto MaAk a réalisé une vidéo explicative (en anglais) :


Créer facilement un nouveau compte EOS à partir de l'un de vos comptes existants : EOSToolkit par GenerEOS


GenerEOS (un des producteurs de blocs en stand-by) a créé un outil extrêmement ergonomique permettant d'interagir avec la blockchain d'EOS :

Cet outil, très complet, vous permet de créer et gérer vos comptes EOS, mais également de voter, de rechercher des comptes sur la blockchain, etc. Avant d'utiliser EOSToolkit, assurez-vous d'avoir Scatter correctement installé et configuré. Il est nécessaire d'avoir déjà un compte sur EOS afin d'en créer un nouveau via EOS Toolkit : l'outil ne permet pas pour l'instant de créer de compte from scratch, en revanche, le processus de création et de gestion est agréable grâce à son interface graphique. Il vous suffit d'avoir généré vos clefs owner et active, et de disposer des fonds nécessaires à l'achat de la RAM et à l'allocation de CPU et de bande passante.

Une vidéo explicative en anglais et disponible sur la chaîne YouTube de GenerEOS :


Créer un portefeuille et un compte en ligne de commande via cleos


Si les lignes de code ne vous effraient pas et que vous souhaitez créer vos comptes EOS de la manière la plus brute et la plus sécurisée possible, il vous faut passer par l'interface en ligne de commande d'EOS, cleos : ce CLI vous permet d'interagir avec l'API REST de nodeos. Afin de connaître les procédures pour installer EOSIO sur votre ordinateur en fonction de votre système d'exploitation (il est fortement recommandé d'utiliser Docker), reportez-vous au tutoriel dédié sur franceos ou sur le portail de développement d'EOSIO.

Créer un wallet EOS dans keosd :


Avant de créer un compte, il faut créer et configurer le wallet par défaut du nœud EOS local. Pour cela, la commande wallet create sera utilisée avec cleos.

$ cleos wallet create
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"A MASTER PASSWORD"
Ce wallet par défaut sera chiffré grâce à ce mot de passe : conservez-le précieusement, bla bla bla...

Le fichier correspondant sera nommé default.wallet et stocké dans le dossier ~/eosio-wallet. Ce chemin d'accès peut être spécifié en utilisant l'argument --wallet-dir dans la ligne de commande.

Créer plusieurs wallets :


Il faut utiliser l'argument -n afin de créer des wallets multiples, qui seront protégés par des mots de passes différents :

$ cleos wallet create -n wallet2
Creating wallet: wallet2
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"A MASTER PASSWORD"
Pour confirmer que le wallet a bien été créé et correspond au nom choisi :
$ cleos wallet list
Wallets:
[
  "default *",
  "wallet2 *"
]
L'astérisque signifie que chaque wallet listé est déverrouillé (c'est le cas, par défaut, à chaque création). Pour verrouiller un wallet, il faut utiliser la commande wallet lock :
$ cleos wallet lock -n wallet2
Locked: 'wallet2'
En exécutant la commande wallet list à nouveau, l'astérisque aura disparu, notifiant le verrouillage du wallet.
$ cleos wallet list
Wallets:
[
  "default *",
  "wallet2"
]
Pour déverrouiller un wallet donné, il faut utiliser la commande wallet unlock suivie du nom du wallet, puis entrer le mot de passe correspondant :
$ cleos wallet unlock -n wallet2
Unlocked: 'wallet2'
Il faut désormais stopper keosd et revenir au terminal dans lequel cleos a été lancé afin d'ouvrir le ou les wallets à utiliser (c'est nécessaire afin d'interagir avec) :
$ cleos wallet open
$ cleos wallet list
Wallets:
[
  "default"
]
Pour ouvrir un wallet donné, il faut utiliser la commande : $ cleos wallet open -n walletàouvrir

Une fois le wallet ouvert, il faut également le déverrouiller :

$ cleos wallet unlock
Unlocked: 'default'
Désormais, il faut créer et importer des clefs cryptographiques EOS dans le wallet utilisé.

Générer et importer les clefs publiques EOS :

Rien de plus simple avec la commande create key :
$ cleos create key --to-console
Private key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public key: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$ cleos create key --to-console
Private key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public key: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Voici donc deux paires de clefs privées/publiques à utiliser pour le compte.

L'ajout de --file nomdufichier à la place de --to-console vous permet d'écrire vos clefs dans un fichier stocké localement.

Une fois ces étapes effectuées, vous disposez de paires de clefs (qui n'ont aucune autorité pour l'instant), et votre wallet est ouvert et déverrouillé.

La prochaine étape consiste à importer ces clefs privées dans le wallet. Ici encore, il faut effectuer cette manœuvre deux fois, pour chaque clef privée générée :

$ cleos wallet import CLEF_PRIVÉE_1
Avec la deuxième clef privée :
$ cleos wallet import CLEF_PRIVÉE_2
La console répondra avec la clef publique correspondant à la clef privée importée :
$ cleos wallet import XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
imported private key for: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Il est possible de vérifier quelles clefs ont été importées en utilisant wallet keys (clefs publiques) ou wallet private_keys (clefs privées et publiques) :
$ cleos wallet keys
[
        "EOS....",
        "EOS...."
]
$ cleos wallet private_keys --password VOTREMOTDEPASSE
password:
[[
    "EOS....",
    "XXX..."
  ],
  [
    "EOS3....",
    "XXX..."
  ]
]
Le fichier correspondant au wallet est chiffré, c'est pourquoi il est nécessaire d'entrer votre mot de passe pour accéder aux clefs.

Sauvegarde du wallet :

Comme pour n'importe quel crypto-wallet, il est recommandé de sauvegarder le fichier correspondant sur un support sécurisé. Les fichiers sont stockés par défaut dans le répertoire ~/eosio-wallet, ou dans le dossier data-dir que vous avez spécifié.
$ cd ~/eosio-wallet && ls
blockchain blocks config.ini default.wallet wallet2.wallet
Il est bien sûr recommandé de sauvegarder ces deux fichiers dans un espace de stockage sécurisé !

Création du compte :

Nous entrons dans le vif du sujet ! Afin de créer un nouveau compte via cleos, il faut que nodeos et keosd soient exécutés simultanément sur votre machine.

Il faut commencer par différencier les ports de nodeos et keosd (par défaut : 8888). Ici, le port attribué à keosd sera 8899.

Dans le fichier config.ini situé dans le répertoire ~/eosio-wallet, modifier http-server-address en :

http-server-address = 127.0.0.1:8899
Lancer keosd avec cet argument :
$ keosd --http-server-address=localhost:8899
Déverrouiller le wallet par défaut de keosd :
cleos --wallet-url=http://localhost:8899 wallet unlock
Entrer alors le mot de passe généré lors de la création du wallet.

Démarrer alors nodeos en parallèle : ouvrir un deuxième terminal en lignes de commandes, aller dans le répertoire où est installé nodeos, et entrer la commande suivante :

$ cd eos/build/programs/nodeos
$ nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin
Ici, le compte qui sera utilisé pour créer le nouveau compte sera eosio, le compte compte spécial utilisé pour bootstrap les nœuds EOS. La clef correspondante se trouve dans le répertoire ~/nodeos/config/config.ini
$ cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
Il est désormais possible de créer un nouveau compte avec la commande cleos create account, selon la structure suivante :
$ cleos create account eosio NOUVEAU_COMPTE CLÉ_PROPRIÉTAIRE CLÉ_ACTIVE
Les différents arguments :
  • authorizing_account : il s'agit du nom du compte qui financera la création du nouveau compte ;
  • nouveau_compte : nom du compte à créer ;
  • clé_propriétaire : clef publique qui donnera autorité et propriété sur le nouveau compte ;
  • clé_active : clé publique qui aura l'autorisation pour utiliser les fonds du compte.
Les noms de comptes devront suivre la structure suivante :
  • Ils doivent comporter moins de 13 caractères ;
  • Ils ne peuvent comporter que les caractères suivants : .12345abcdefghijklmnopqrstuvwxyz
Le nom "moncompte" sera utilisé pour le nouveau compte dans notre exemple.

Les clefs publiques générées et importées dans le wallet précédemment seront utilisées. Il faut bien sûr se rappeler des autorisations assignées à chaque clef : la clef propriétaire donne le contrôle complet du compte, et la clef active donne accès aux fonds que comporte le compte.

La ligne de commande pour générer le nouveau compte est alors la suivante :

$ cleos --wallet-url=http://localhost:8899 create account eosio moncompte CLEF_PROPRIÉTAIRE CLEF_ACTIVE
Pour finir ce tutoriel, voici quelques précisions sur les fonds nécessaires à la création d'un compte EOS.

Ressources nécessaires : les métriques

À l'heure actuelle, un compte EOS nécessite d'acheter 4 ko de RAM pour y stocker les informations nécessaires. Les ressources en bande passante et CPU sont allouées au prorata des tokens EOS mis en jeu (staked) par l'utilisateur. Un minimum de 0,1 EOS pour l'usage CPU et de 0,1 EOS pour l'utilisation de la bande passante sont conseillés (cela vous permet d'effectuer environ une transaction toutes les dix minutes). Ainsi, à l'heure d'écriture, avec un prix de 0,178 EOS/ko, la création d'un compte coûte au minimum 0,712 EOS + 0,2 EOS : 1 EOS dédié à la création du compte est suffisant.

Afin de connaître le cours de la RAM, déterminé par l'algorithme de Bancor, ainsi que le prix par ko et par jour de l'usage CPU et de la bande passante, rendez-vous sur EOS Resource Planner, un outil développé par EOS New York. Pour des informations beaucoup plus complètes au sujet de la RAM et pour accéder à ce marché, rendez-vous sur FeeXplorer.

Ça y est, vous savez tout sur la création de wallets et de comptes EOS, que ce soit de la façon la plus simple et intuitive grâce aux outils développés par les BPs EOS, ou en utilisant l'interface en ligne de commande cleos ! N'hésitez pas à commenter cet article s'il manque de clarté ou de précisions.

Amusez-vous bien sur EOS !

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @franceos! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:
SteemitBoard and the Veterans on Steemit - The First Community Badge.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!