Excellent Inleo KeyStore Onboarding: Introducemyself [ES-EN]

in #hive-16792221 days ago

The option to create an account in HIVE from @inleo @leofinance is quite attractive, especially when the creation of an account with KeyStore and password compatible with BIP39 is something that was needed a long time ago.

La opción de crear una cuenta en HIVE desde @inleo @leofinance es bastante atractiva, más cuando la creación de una cuenta con KeyStore y password compatible con BIP39 es algo que hace mucho era necesario.


🤖 Created with chatgpt_karfly_bot.t.me

ENGLISH VERSION (click here!)

One of the biggest problems with HIVE is precisely creating an account. Crypto users are used to traditional HD wallets, where you generate a mnemonic phrase and choose which wallet you put it in by accessing your funds safely regardless of the software. I applaud the idea of putting a mnemonic phrase as an HIVE password that also when encrypted in a KeyStore file, allows you to use multi-chain options and even securely save your phrase on an offline paper and access all your accounts later.

I am a HIVE user, I am not a novice and I could not miss the opportunity to try the option of creating a new account to access the new features of InLeo and incidentally delve into its operation and potentialities.

From Traditional HIVE to KeyStore

Taking a closer look, I'm sharing a way to turn your common HIVE accounts into KeyStore-compatible accounts. To do this I propose the following codes in Python, if you are knowledgeable in programming it will be easy for you to understand the mechanism, it is enough to change the keys and use an encryption password a mnemonic phrase. Let's see how:

  1. Install hdwallet to generate mnemonic phrases with the BIP39 standard and beem to interact with the HIVE blockchain.
pip install hdwallet beem cryptography
  1. Python script to change the keys. Don't forget to save the mnemonic phrase that will be your HIVE password, useful to generate your KeyStore file in InLeo and also to import your @hive-keychain account.
from beem import Hive
from beem.account import Account
from beemgraphenebase.account import PasswordKey

from hdwallet import HDWallet
from hdwallet.entropies import BIP39Entropy


from hdwallet.cryptocurrencies import Bitcoin as Cryptocurrency
from hdwallet.hds import BIP44HD

from getpass import getpass
import json
from cryptography.fernet import Fernet
import base64
import hashlib

nodes = [
    "https://api.deathwing.me",
    "https://api.openhive.network",
    "https://hive-api.arcange.eu",
    "https://techcoderx.com",
    "https://api.hive.blog"
]

user = input("Introduzca su nombre de usuario: ")
opasswd = getpass('Introduzca su clave privada Owner: ')

hdwallet = HDWallet(cryptocurrency=Cryptocurrency,
                    hd=BIP44HD,).from_entropy(
    entropy=BIP39Entropy(entropy=BIP39Entropy.generate(
        strength=256
    )))

mnemonic = hdwallet.mnemonic()
print("\n\n")
print(
    f"Guarde con seguridad las siguientes {len(mnemonic.split())} palabras:\n")
print(f"Úselas para importar su cuenta en Hive-KeyChain, KeyStore de Inleo y otras billeteras \n")
print(mnemonic)
print("\n\n")
# New Keys
owner_key = PasswordKey(user, mnemonic, role='owner').get_private_key()
active_key = PasswordKey(user, mnemonic, role='active').get_private_key()
posting_key = PasswordKey(user, mnemonic, role='posting').get_private_key()
memo_key = PasswordKey(user, mnemonic, role='memo').get_private_key()


data = {'username': f"{user}",
        'owner': f"{owner_key._wif}",
        'active': f"{active_key._wif}",
        'posting': f"{posting_key._wif}",
        'memo': f"{memo_key._wif}",
        'password': f"{mnemonic}"}

pspass = getpass("Password de cifrado de su archivo keystore: ")


def generar_clave(password: str) -> bytes:
    # Derivar una clave de 32 bytes a partir de la contraseña
    clave = hashlib.sha256(password.encode()).digest()
    return base64.urlsafe_b64encode(clave)


clave = generar_clave(pspass)

fernet = Fernet(clave)

texto_cifrado = fernet.encrypt(str(data).encode())

keystore = {
    "cipher": texto_cifrado.decode()
}

userfile = f"{user}_HIVE_cf.json"
with open(userfile, 'w') as archivo:
    json.dump(keystore, archivo, indent=4)


print(
    f'\n\n PD: Guarde con seguridad el archivo {userfile} y recuerde la contraseña utilizada\n')

hive = Hive(node=nodes,keys=[opasswd])

account = Account(user, blockchain_instance=hive)

account.update_account_keys(new_password=mnemonic)

print("Done.")

See https://github.com/Ertytux/HiveBIP39.git

  1. Go to the signup homepage of InLeo, select KeyStore and select the option to recover your KeyStore file from the mnemonic phrase and intrudesearch the 24 words generated in the key change process.

Now you will have your KeyStore-compatible account and an option to change your account in the future

The work that is being done to facilitate access and possibilities of use to HIVE users is excellent, I congratulate InLeo for such an excellent initiative.

Regards, @ertytuxs

Uno de los mayores problemas de HIVE es precisamente crear una cuenta. Los usuarios cripto estamos acostumbrado a las billeteras tradicionales HD, donde te generas un frase mnemonica y escoges en qué billetera la pones accediendo independientemente del software a tus fondos con seguridad. Aplaudo la idea de poner como password de HIVE una frase mnemonica que además al cifrarse en un archivo KeyStore permite utilizar opciones multicadena e incluso guardar con seguridad tu frase en un papel offline y acceder a todas tus cuentas luego.

Soy usuario de HIVE, no soy un novato y no podía perder la oportunidad de probar la opción de crear una nueva de cuenta para acceder a las nuevas funcionalidades de InLeo y de paso profundizar en su funcionamiento y potencialidades.

De HIVE Tradicional a KeyStore

Observando con detenimiento, les comparto una manera de convertir sus cuentas comunes de HIVE en cuentas compatibles con KeyStore. Para ello les propongo los siguiente códigos en Python, si eres entendido en programación te será fácil entender el mecanismo, basta cambiar las claves y utilizar como passwd de cifrado una frase mnemonica. Veamos como:

  1. Instalar hdwallet para generar frases mnemonicas con el standard BIP39 y beem para interacctuar con la blockchain de HIVE.
pip install hdwallet beem cryptography
  1. Script de python para cambiar las claves. No te olvides de guardar la frase mnemonica que será tu password de HIVE, útil para generar tu archivo KeyStore en InLeo y además para importar tu cuenta en @hive-keychain.
from beem import Hive
from beem.account import Account
from beemgraphenebase.account import PasswordKey

from hdwallet import HDWallet
from hdwallet.entropies import BIP39Entropy


from hdwallet.cryptocurrencies import Bitcoin as Cryptocurrency
from hdwallet.hds import BIP44HD

from getpass import getpass
import json
from cryptography.fernet import Fernet
import base64
import hashlib

nodes = [
    "https://api.deathwing.me",
    "https://api.openhive.network",
    "https://hive-api.arcange.eu",
    "https://techcoderx.com",
    "https://api.hive.blog"
]

user = input("Introduzca su nombre de usuario: ")
opasswd = getpass('Introduzca su clave privada Owner: ')

hdwallet = HDWallet(cryptocurrency=Cryptocurrency,
                    hd=BIP44HD,).from_entropy(
    entropy=BIP39Entropy(entropy=BIP39Entropy.generate(
        strength=256
    )))

mnemonic = hdwallet.mnemonic()
print("\n\n")
print(
    f"Guarde con seguridad las siguientes {len(mnemonic.split())} palabras:\n")
print(f"Úselas para importar su cuenta en Hive-KeyChain, KeyStore de Inleo y otras billeteras \n")
print(mnemonic)
print("\n\n")
# New Keys
owner_key = PasswordKey(user, mnemonic, role='owner').get_private_key()
active_key = PasswordKey(user, mnemonic, role='active').get_private_key()
posting_key = PasswordKey(user, mnemonic, role='posting').get_private_key()
memo_key = PasswordKey(user, mnemonic, role='memo').get_private_key()


data = {'username': f"{user}",
        'owner': f"{owner_key._wif}",
        'active': f"{active_key._wif}",
        'posting': f"{posting_key._wif}",
        'memo': f"{memo_key._wif}",
        'password': f"{mnemonic}"}

pspass = getpass("Password de cifrado de su archivo keystore: ")


def generar_clave(password: str) -> bytes:
    # Derivar una clave de 32 bytes a partir de la contraseña
    clave = hashlib.sha256(password.encode()).digest()
    return base64.urlsafe_b64encode(clave)


clave = generar_clave(pspass)

fernet = Fernet(clave)

texto_cifrado = fernet.encrypt(str(data).encode())

keystore = {
    "cipher": texto_cifrado.decode()
}

userfile = f"{user}_HIVE_cf.json"
with open(userfile, 'w') as archivo:
    json.dump(keystore, archivo, indent=4)


print(
    f'\n\n PD: Guarde con seguridad el archivo {userfile} y recuerde la contraseña utilizada\n')

hive = Hive(node=nodes,keys=[opasswd])

account = Account(user, blockchain_instance=hive)

account.update_account_keys(new_password=mnemonic)

print("Done.")

Más detalles en https://github.com/Ertytux/HiveBIP39.git

  1. Entre a la página de inicio de signup de InLeo, seleccione KeyStore y seleccione la opción de recupear su archivo KeyStore desde la frase mnemonica e intrudusca las 24 palabras generadas en el proceso de cambio de claves.

Ahora tendrás tu cuenta compatible con KeyStore y una opción para cambiar en un futuro su cuenta

Es excelente el trabajo que se está haciendo para facilitar el acceso y posibilidades de uso a los usuarios de HIVE, Felicito a InLeo por tan excelente iniciativa.

Sin más @ertytuxs

Posted Using InLeo Alpha

Sort:  

Congratulations @ertytuxs! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 10 upvotes.
Your next target is to reach 50 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP