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 ?
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.
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 :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.
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
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.
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.
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 !
Une vidéo explicative en anglais et disponible sur la chaîne YouTube de GenerEOS :
$ 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.
$ 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é.
$ cleos create key --to-console Private key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Public key: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $ cleos create key --to-console Private key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Public key: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVoici 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_1Avec la deuxième clef privée :
$ cleos wallet import CLEF_PRIVÉE_2La console répondra avec la clef publique correspondant à la clef privée importée :
$ cleos wallet import XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX imported private key for: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIl 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.
$ cd ~/eosio-wallet && ls blockchain blocks config.ini default.wallet wallet2.walletIl est bien sûr recommandé de sauvegarder ces deux fichiers dans un espace de stockage sécurisé !
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:8899Lancer keosd avec cet argument :
$ keosd --http-server-address=localhost:8899Déverrouiller le wallet par défaut de keosd :
cleos --wallet-url=http://localhost:8899 wallet unlockEntrer 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_pluginIci, 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 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3Il 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É_ACTIVELes différents arguments :
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_ACTIVEPour finir ce tutoriel, voici quelques précisions sur les fonds nécessaires à la création d'un compte EOS.
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 !