1660645800
Tezos es una de las cadenas de bloques de contratos inteligentes más antiguas, siendo Ethereum la primera.
Si bien Ethereum es una opción popular entre los desarrolladores para desarrollar e implementar contratos inteligentes, sus aplicaciones no son muy escalables debido a las altas tarifas y las transacciones lentas. Por el contrario, las aplicaciones de Tezos son muy eficientes y económicas de configurar.
En esta guía, aprenderá a desarrollar e implementar contratos inteligentes en Tezos con SmartPy CLI.
Puede obtener el código del proyecto final en este repositorio de GitHub .
Para seguir este artículo, debe estar familiarizado con la cadena de bloques de Tezos. Tu conocimiento no tiene que ser profundo.
No se requiere conocimiento de la cadena de bloques de Ethereum, pero ayuda mucho.
Tezos es una red de cadena de bloques y una plataforma de contrato inteligente que está diseñada para ser adaptable a través de su modelo de gobierno y capacidad de autoactualización.
Si bien Tezos y Ethereum son cadenas de bloques similares que admiten contratos inteligentes y desarrollo de DApp, son diferentes en varios aspectos. La siguiente tabla de Tezos vs. Ethereum muestra algunas de las diferencias entre las dos redes.
Tezos | Etéreo |
Los desarrolladores hacen propuestas para actualizar el protocolo blockchain en la red | Los desarrolladores usan un hardfork para actualizar el protocolo blockchain |
Las partes interesadas controlan las actualizaciones del protocolo blockchain votando para aceptar o rechazar propuestas | Los creadores de la red blockchain gobiernan las actualizaciones del protocolo blockchain |
Utiliza verificación formal para ejecutar contratos inteligentes | Utiliza EVM para almacenar y ejecutar contratos inteligentes en la red |
Los participantes (nodos) tienen la opción de proporcionar recursos informáticos o delegar sus tokens para participar en la validación de transacciones | Todos los participantes (nodos) deben proporcionar recursos informáticos y apostar sus monedas para participar en la validación de transacciones. |
Las tarifas de gas son bajas, lo que lo hace muy escalable | Las tarifas de gas son realmente altas, lo que lo hace inescalable |
SmartPy es una herramienta que le permite crear contratos inteligentes fácilmente en la cadena de bloques de Tezos.
Escribes contratos en SmartPy usando Python. Si ya está familiarizado con Python, no tiene que aprender un nuevo lenguaje de programación de contratos inteligentes .
SmartPy viene en otras dos variantes que usan otras sintaxis: SmartTS, que usa TypeScript, y SmartML, que usa OCaml.
SmartPy compila scripts de Python para Michelson. Michelson es un lenguaje de programación de bajo nivel para contratos inteligentes en Tezos. SmartTS y SmartML también se pueden compilar con la herramienta SmartPy.
Los contratos inteligentes son programas que puede crear, implementar y ejecutar en una red de cadena de bloques. No necesita poseer un nodo en la red antes de implementar su contrato inteligente.
Con los contratos inteligentes, puede crear aplicaciones accesibles para todos los dispositivos sin tener ni mantener un servidor. Estas aplicaciones totalmente descentralizadas requieren poco o ningún mantenimiento.
Los contratos inteligentes utilizan todo el potencial de las cadenas de bloques, lo que le permite ejecutar programas en la cadena e interactuar con la cadena misma. Puede retener o transferir tokens y acceder a funciones especializadas en la cadena de bloques con un contrato inteligente.
Para instalar SmartPy CLI, ejecute el siguiente comando:
$ bash <(curl -s https://smartpy.io/cli/install.sh)
Este comando crea un smartpy-cli
directorio home
con esta estructura de árbol:
smartpy-cli
├── browser.py
├── node_modules/
├── originator.js
├── package.json
├── package-lock.json
├── __pycache__/
├── smart.css
├── smart.js
├── smartpyc.js
├── smartpyc.py
├── smartpyio.py
├── smartpy.py
├── SmartPy.sh
├── smarttop/
├── smart-ts-cli.js
├── templates/
├── theme.js
└── typography.css
Para confirmar la instalación, ejecute lo siguiente:
$ ~/smartpy-cli/SmartPy.sh --version
Como un paso adicional para facilitar el SmartPy.sh
acceso, cree un alias copiando lo siguiente en su .bashrc
archivo o archivo de perfil relacionado:
$ alias smartpy="$HOME/smartpy-cli/SmartPy.sh"
Ahora puedes usar:
$ smartpy --version
En vez de:
$ ~/smartpy-cli/SmartPy.sh --version
tezos-client
Esta guía se utiliza tezos-client
para interactuar con un contrato inteligente implementado. Para instalar tezos-client,
, ejecute uno de los siguientes comandos, dependiendo de si está utilizando un sistema operativo Mac o Linux:
# Mac
$ brew tap serokell/tezos-packaging-stable https://github.com/serokell/tezos-packaging-stable.git
$ brew install tezos-client
# Linux
$ wget https://github.com/serokell/tezos-packaging/releases/latest/download/tezos-client
$ chmod +x tezos-client
$ mkdir -p $HOME/.local/bin
$ mv tezos-client $HOME/.local/bin
$ echo 'export PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc
$ source $HOME/.bashrc
Tenga en cuenta que si está utilizando Windows, debe instalar una distribución de Linux con wsl y ejecutar la instalación de Linux.
Después de la instalación tezos-client
, debe configurarlo. Comience ejecutando el siguiente comando:
$ tezos-client --endpoint https://jakartanet.ecadinfra.com config update
Esta guía utiliza la red de prueba Jarkatanet para implementar e interactuar con un contrato inteligente. El comando anterior se conecta tezos-client
a la red de prueba de Jakartanet a través del nodo https://jakartanet.ecadinfra.com
en la red.
Antes de realizar cualquier operación con tezos-client
, debe conectar una cuenta. Tezos proporciona cuentas Faucet que le permiten interactuar con la red de forma gratuita.
Debe visitar el sitio web de Jakartanet Faucet y descargar el archivo Faucet. Después de hacer eso, abra la carpeta de descarga en su terminal y ejecute este comando:
$ tezos-client activate account faucet with ./jakartanet.json
El comando activa la cuenta de Faucet en tu cuenta tezos-client
y le otorga un alias faucet
. Para verificar el saldo de esta cuenta, abra el jakartanet.json
archivo, copie el valor de pkh
y luego ejecute este comando:
$ tezos-client get balance for <address>
Reemplace <address>
con el pkh
valor que copió.
Tenga en cuenta que las cuentas de Tezos Faucet están disponibles públicamente para todos y tienen una cantidad limitada de tokens Tez, por lo que debe regular su uso.
Para comenzar a crear nuestro contrato inteligente de ejemplo, cree un nuevo store_text.py
archivo y copie lo siguiente en él:
import smartpy as sp
class StoreText(sp.Contract):
def __init__(self, value):
self.init(text = value)
@sp.entry_point
def replace(self, params):
self.data.text = params.text
@sp.entry_point # Note: the spaces before "@"
def append(self, params):
self.data.text += params.text
Así es como funciona el contrato anterior, pieza por pieza:
Primero, importamos la smartpy
biblioteca:
import smartpy as sp
Luego, definimos una clase que se extiende sp.Contract
:
class StoreText(sp.Contract):
Por último, definimos algunos elementos dentro del contrato inteligente; primero, un constructor para inicializar text
:
def __init__(self, value): # Note: the spaces before "def"
self.init(text = value)
En segundo lugar, un punto de entrada para reemplazar el valor de text
:
@sp.entry_point # Note: the spaces before "@"
def replace(self, params):
self.data.text = params.text
En tercer lugar, un punto de entrada para agregar una cadena a text
:
@sp.entry_point # Note: the spaces before "@"
def append(self, params):
self.data.text += params.text
A continuación, echemos un vistazo a cómo probar el contrato inteligente.
Los contratos inteligentes que se implementan en Tezos no se pueden cambiar ni eliminar. Esto puede ser un problema porque podría haber errores en el contrato, y los errores podrían conducir a errores costosos y la pérdida de fondos.
SmartPy le brinda la capacidad de probar fácilmente su contrato antes de implementarlo. Probar el contrato no requiere ningún token o una cuenta de billetera para ejecutarse. Todo lo que necesita hacer es abrir el store_text.py
archivo y copiar lo siguiente debajo de él:
@sp.add_test(name = "StoreText")
def test():
scenario = sp.test_scenario()
contract = StoreText("Hello")
scenario += contract
scenario.verify(contract.data.text == "Hello")
contract.replace(text = "Hi")
contract.append(text = ", there!")
scenario.verify(contract.data.text == "Hi, there!")
Así es como funciona el fragmento. Primero, registramos la test
función como script de prueba:
@sp.add_test(name = "StoreText")
Luego, definimos la test
función:
def test():
En las líneas restantes, creamos un escenario de prueba:
scenario = sp.test_scenario()
Inicializó el contrato con "Hello"
:
contract = StoreText("Hello")
Se agregó la instancia del contrato al escenario:
scenario += contract
Verificado que el text
valor del contrato es "Hello"
:
scenario.verify(contract.data.text == "Hello")
Llamado los puntos de entrada replace
y append
:
contract.replace(text = "Hi")
contract.append(text = ", there!")
Y finalmente, verificado que el text
valor del contrato ahora es "Hi, there"
:
scenario.verify(contract.data.text == "Hi, there!")
Después de agregar la prueba, guarde el archivo y ejecute este comando:
$ ~/smartpy-cli/SmartPy.sh test store_text.py ./test-output
Si la prueba es exitosa, el compilador no arrojará un mensaje de error.
Antes de implementar su contrato inteligente, debe compilarlo en Michelson. Como se mencionó anteriormente, Michelson es un lenguaje de programación de bajo nivel utilizado para contratos inteligentes en la cadena de bloques de Tezos.
Para compilar store_text.py
, ejecute lo siguiente:
$ ~/smartpy-cli/SmartPy.sh compile message.py ./output
Si se compiló con éxito, debería ver una output
carpeta como la siguiente:
output/
├── scenario.json
├── script_init.py
├── script_pure.py
└── storeMessage/
├── log.txt
├── step_000_cont_0_contract.json
├── step_000_cont_0_contract.py
├── step_000_cont_0_contract.tz
├── step_000_cont_0_sizes.csv
├── step_000_cont_0_storage.json
├── step_000_cont_0_storage.py
├── step_000_cont_0_storage.tz
└── step_000_cont_0_types.py
El output
directorio contiene todos los archivos necesarios para implementar el contrato inteligente.
Para implementar store_text.py
, abra la output/storeMessage
carpeta en la terminal y ejecute el siguiente comando:
$ ~/smartpy-cli/SmartPy.sh originate-contract --code step_000_cont_0_contract.json --storage step_000_cont_0_storage.json --rpc https://jakartanet.ecadinfra.com
[INFO] - Using RPC https://jakartanet.ecadinfra.com/...
[INFO] - Contract KT1………………CAjjW originated!!!
Así es como funciona el comando:
originate-contract
le dice tezos-client
a implementar ("originar") un contrato--code step_000_cont_0_contract.json
apunta al archivo de contrato compilado--storage step_000_cont_0_storage.json
apunta al archivo de almacenamiento compilado--rpc
https://jakartanet.ecadinfra.com
apunta a un nodo RPC en la red en la que está implementandoLos contratos inteligentes de Tezos generalmente involucran dos componentes: el almacenamiento y el contrato. El almacenamiento contiene los datos que almacena el contrato, y el contrato contiene la lógica del contrato inteligente.
Tenga en cuenta que puede implementar el contrato con cualquiera de las compilaciones de contrato o almacenamiento. Solo tienen que tener la misma extensión de archivo cuando usa el comando.
De manera predeterminada, si está implementando en una red de prueba, el compilador usará una cuenta de Faucet. Si está implementando en la red principal o desea usar su cuenta de billetera, agregue la --private-key
bandera seguida de la clave privada de la cuenta.
Antes de interactuar con el contrato inteligente implementado, debe saber cómo se ve actualmente el contrato. Para hacer eso, abra SmartPy Explorer en su navegador y siga estos pasos:
mainnet
ajakartanet
https://jakartanet.ecadinfra.com
en el cuadro de textoCuando aparezcan los datos del contrato, el almacenamiento de texto debería mostrarse como "¡Hola, allí!"
Ahora que conoce el texto del contrato, puede cambiarlo a "¡Hola, allí!" llamando al replace
punto de entrada con este comando:
$ tezos-client transfer 0 from faucet to <contract-address> --entrypoint replace --arg '"Hi, There!"'
Si el comando fue exitoso, cuando actualice el explorador, el almacenamiento ahora debería mostrar "¡Hola, allí!"
Tenga en cuenta que debe reemplazar <contract-address>
con la dirección del contrato implementado antes de ejecutar el comando.
Este artículo cubre el proceso de creación de contratos inteligentes en Tezos con SmartPy. La creación de contratos inteligentes le permite aprovechar al máximo la red blockchain para crear aplicaciones y organizaciones descentralizadas.
Espero que este artículo te haya ayudado a comprender el proceso de creación de contratos inteligentes en Tezos. Si desea leer más sobre los contratos inteligentes, consulte este artículo sobre los errores de contratos inteligentes que debe evitar.
¡Gracias por leer! Y ten un buen día. Desarrollo e implementación de contratos inteligentes de Tezos
Fuente: https://blog.logrocket.com/developing-deploying-tezos-smart-contracts/
1660645800
Tezos es una de las cadenas de bloques de contratos inteligentes más antiguas, siendo Ethereum la primera.
Si bien Ethereum es una opción popular entre los desarrolladores para desarrollar e implementar contratos inteligentes, sus aplicaciones no son muy escalables debido a las altas tarifas y las transacciones lentas. Por el contrario, las aplicaciones de Tezos son muy eficientes y económicas de configurar.
En esta guía, aprenderá a desarrollar e implementar contratos inteligentes en Tezos con SmartPy CLI.
Puede obtener el código del proyecto final en este repositorio de GitHub .
Para seguir este artículo, debe estar familiarizado con la cadena de bloques de Tezos. Tu conocimiento no tiene que ser profundo.
No se requiere conocimiento de la cadena de bloques de Ethereum, pero ayuda mucho.
Tezos es una red de cadena de bloques y una plataforma de contrato inteligente que está diseñada para ser adaptable a través de su modelo de gobierno y capacidad de autoactualización.
Si bien Tezos y Ethereum son cadenas de bloques similares que admiten contratos inteligentes y desarrollo de DApp, son diferentes en varios aspectos. La siguiente tabla de Tezos vs. Ethereum muestra algunas de las diferencias entre las dos redes.
Tezos | Etéreo |
Los desarrolladores hacen propuestas para actualizar el protocolo blockchain en la red | Los desarrolladores usan un hardfork para actualizar el protocolo blockchain |
Las partes interesadas controlan las actualizaciones del protocolo blockchain votando para aceptar o rechazar propuestas | Los creadores de la red blockchain gobiernan las actualizaciones del protocolo blockchain |
Utiliza verificación formal para ejecutar contratos inteligentes | Utiliza EVM para almacenar y ejecutar contratos inteligentes en la red |
Los participantes (nodos) tienen la opción de proporcionar recursos informáticos o delegar sus tokens para participar en la validación de transacciones | Todos los participantes (nodos) deben proporcionar recursos informáticos y apostar sus monedas para participar en la validación de transacciones. |
Las tarifas de gas son bajas, lo que lo hace muy escalable | Las tarifas de gas son realmente altas, lo que lo hace inescalable |
SmartPy es una herramienta que le permite crear contratos inteligentes fácilmente en la cadena de bloques de Tezos.
Escribes contratos en SmartPy usando Python. Si ya está familiarizado con Python, no tiene que aprender un nuevo lenguaje de programación de contratos inteligentes .
SmartPy viene en otras dos variantes que usan otras sintaxis: SmartTS, que usa TypeScript, y SmartML, que usa OCaml.
SmartPy compila scripts de Python para Michelson. Michelson es un lenguaje de programación de bajo nivel para contratos inteligentes en Tezos. SmartTS y SmartML también se pueden compilar con la herramienta SmartPy.
Los contratos inteligentes son programas que puede crear, implementar y ejecutar en una red de cadena de bloques. No necesita poseer un nodo en la red antes de implementar su contrato inteligente.
Con los contratos inteligentes, puede crear aplicaciones accesibles para todos los dispositivos sin tener ni mantener un servidor. Estas aplicaciones totalmente descentralizadas requieren poco o ningún mantenimiento.
Los contratos inteligentes utilizan todo el potencial de las cadenas de bloques, lo que le permite ejecutar programas en la cadena e interactuar con la cadena misma. Puede retener o transferir tokens y acceder a funciones especializadas en la cadena de bloques con un contrato inteligente.
Para instalar SmartPy CLI, ejecute el siguiente comando:
$ bash <(curl -s https://smartpy.io/cli/install.sh)
Este comando crea un smartpy-cli
directorio home
con esta estructura de árbol:
smartpy-cli
├── browser.py
├── node_modules/
├── originator.js
├── package.json
├── package-lock.json
├── __pycache__/
├── smart.css
├── smart.js
├── smartpyc.js
├── smartpyc.py
├── smartpyio.py
├── smartpy.py
├── SmartPy.sh
├── smarttop/
├── smart-ts-cli.js
├── templates/
├── theme.js
└── typography.css
Para confirmar la instalación, ejecute lo siguiente:
$ ~/smartpy-cli/SmartPy.sh --version
Como un paso adicional para facilitar el SmartPy.sh
acceso, cree un alias copiando lo siguiente en su .bashrc
archivo o archivo de perfil relacionado:
$ alias smartpy="$HOME/smartpy-cli/SmartPy.sh"
Ahora puedes usar:
$ smartpy --version
En vez de:
$ ~/smartpy-cli/SmartPy.sh --version
tezos-client
Esta guía se utiliza tezos-client
para interactuar con un contrato inteligente implementado. Para instalar tezos-client,
, ejecute uno de los siguientes comandos, dependiendo de si está utilizando un sistema operativo Mac o Linux:
# Mac
$ brew tap serokell/tezos-packaging-stable https://github.com/serokell/tezos-packaging-stable.git
$ brew install tezos-client
# Linux
$ wget https://github.com/serokell/tezos-packaging/releases/latest/download/tezos-client
$ chmod +x tezos-client
$ mkdir -p $HOME/.local/bin
$ mv tezos-client $HOME/.local/bin
$ echo 'export PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc
$ source $HOME/.bashrc
Tenga en cuenta que si está utilizando Windows, debe instalar una distribución de Linux con wsl y ejecutar la instalación de Linux.
Después de la instalación tezos-client
, debe configurarlo. Comience ejecutando el siguiente comando:
$ tezos-client --endpoint https://jakartanet.ecadinfra.com config update
Esta guía utiliza la red de prueba Jarkatanet para implementar e interactuar con un contrato inteligente. El comando anterior se conecta tezos-client
a la red de prueba de Jakartanet a través del nodo https://jakartanet.ecadinfra.com
en la red.
Antes de realizar cualquier operación con tezos-client
, debe conectar una cuenta. Tezos proporciona cuentas Faucet que le permiten interactuar con la red de forma gratuita.
Debe visitar el sitio web de Jakartanet Faucet y descargar el archivo Faucet. Después de hacer eso, abra la carpeta de descarga en su terminal y ejecute este comando:
$ tezos-client activate account faucet with ./jakartanet.json
El comando activa la cuenta de Faucet en tu cuenta tezos-client
y le otorga un alias faucet
. Para verificar el saldo de esta cuenta, abra el jakartanet.json
archivo, copie el valor de pkh
y luego ejecute este comando:
$ tezos-client get balance for <address>
Reemplace <address>
con el pkh
valor que copió.
Tenga en cuenta que las cuentas de Tezos Faucet están disponibles públicamente para todos y tienen una cantidad limitada de tokens Tez, por lo que debe regular su uso.
Para comenzar a crear nuestro contrato inteligente de ejemplo, cree un nuevo store_text.py
archivo y copie lo siguiente en él:
import smartpy as sp
class StoreText(sp.Contract):
def __init__(self, value):
self.init(text = value)
@sp.entry_point
def replace(self, params):
self.data.text = params.text
@sp.entry_point # Note: the spaces before "@"
def append(self, params):
self.data.text += params.text
Así es como funciona el contrato anterior, pieza por pieza:
Primero, importamos la smartpy
biblioteca:
import smartpy as sp
Luego, definimos una clase que se extiende sp.Contract
:
class StoreText(sp.Contract):
Por último, definimos algunos elementos dentro del contrato inteligente; primero, un constructor para inicializar text
:
def __init__(self, value): # Note: the spaces before "def"
self.init(text = value)
En segundo lugar, un punto de entrada para reemplazar el valor de text
:
@sp.entry_point # Note: the spaces before "@"
def replace(self, params):
self.data.text = params.text
En tercer lugar, un punto de entrada para agregar una cadena a text
:
@sp.entry_point # Note: the spaces before "@"
def append(self, params):
self.data.text += params.text
A continuación, echemos un vistazo a cómo probar el contrato inteligente.
Los contratos inteligentes que se implementan en Tezos no se pueden cambiar ni eliminar. Esto puede ser un problema porque podría haber errores en el contrato, y los errores podrían conducir a errores costosos y la pérdida de fondos.
SmartPy le brinda la capacidad de probar fácilmente su contrato antes de implementarlo. Probar el contrato no requiere ningún token o una cuenta de billetera para ejecutarse. Todo lo que necesita hacer es abrir el store_text.py
archivo y copiar lo siguiente debajo de él:
@sp.add_test(name = "StoreText")
def test():
scenario = sp.test_scenario()
contract = StoreText("Hello")
scenario += contract
scenario.verify(contract.data.text == "Hello")
contract.replace(text = "Hi")
contract.append(text = ", there!")
scenario.verify(contract.data.text == "Hi, there!")
Así es como funciona el fragmento. Primero, registramos la test
función como script de prueba:
@sp.add_test(name = "StoreText")
Luego, definimos la test
función:
def test():
En las líneas restantes, creamos un escenario de prueba:
scenario = sp.test_scenario()
Inicializó el contrato con "Hello"
:
contract = StoreText("Hello")
Se agregó la instancia del contrato al escenario:
scenario += contract
Verificado que el text
valor del contrato es "Hello"
:
scenario.verify(contract.data.text == "Hello")
Llamado los puntos de entrada replace
y append
:
contract.replace(text = "Hi")
contract.append(text = ", there!")
Y finalmente, verificado que el text
valor del contrato ahora es "Hi, there"
:
scenario.verify(contract.data.text == "Hi, there!")
Después de agregar la prueba, guarde el archivo y ejecute este comando:
$ ~/smartpy-cli/SmartPy.sh test store_text.py ./test-output
Si la prueba es exitosa, el compilador no arrojará un mensaje de error.
Antes de implementar su contrato inteligente, debe compilarlo en Michelson. Como se mencionó anteriormente, Michelson es un lenguaje de programación de bajo nivel utilizado para contratos inteligentes en la cadena de bloques de Tezos.
Para compilar store_text.py
, ejecute lo siguiente:
$ ~/smartpy-cli/SmartPy.sh compile message.py ./output
Si se compiló con éxito, debería ver una output
carpeta como la siguiente:
output/
├── scenario.json
├── script_init.py
├── script_pure.py
└── storeMessage/
├── log.txt
├── step_000_cont_0_contract.json
├── step_000_cont_0_contract.py
├── step_000_cont_0_contract.tz
├── step_000_cont_0_sizes.csv
├── step_000_cont_0_storage.json
├── step_000_cont_0_storage.py
├── step_000_cont_0_storage.tz
└── step_000_cont_0_types.py
El output
directorio contiene todos los archivos necesarios para implementar el contrato inteligente.
Para implementar store_text.py
, abra la output/storeMessage
carpeta en la terminal y ejecute el siguiente comando:
$ ~/smartpy-cli/SmartPy.sh originate-contract --code step_000_cont_0_contract.json --storage step_000_cont_0_storage.json --rpc https://jakartanet.ecadinfra.com
[INFO] - Using RPC https://jakartanet.ecadinfra.com/...
[INFO] - Contract KT1………………CAjjW originated!!!
Así es como funciona el comando:
originate-contract
le dice tezos-client
a implementar ("originar") un contrato--code step_000_cont_0_contract.json
apunta al archivo de contrato compilado--storage step_000_cont_0_storage.json
apunta al archivo de almacenamiento compilado--rpc
https://jakartanet.ecadinfra.com
apunta a un nodo RPC en la red en la que está implementandoLos contratos inteligentes de Tezos generalmente involucran dos componentes: el almacenamiento y el contrato. El almacenamiento contiene los datos que almacena el contrato, y el contrato contiene la lógica del contrato inteligente.
Tenga en cuenta que puede implementar el contrato con cualquiera de las compilaciones de contrato o almacenamiento. Solo tienen que tener la misma extensión de archivo cuando usa el comando.
De manera predeterminada, si está implementando en una red de prueba, el compilador usará una cuenta de Faucet. Si está implementando en la red principal o desea usar su cuenta de billetera, agregue la --private-key
bandera seguida de la clave privada de la cuenta.
Antes de interactuar con el contrato inteligente implementado, debe saber cómo se ve actualmente el contrato. Para hacer eso, abra SmartPy Explorer en su navegador y siga estos pasos:
mainnet
ajakartanet
https://jakartanet.ecadinfra.com
en el cuadro de textoCuando aparezcan los datos del contrato, el almacenamiento de texto debería mostrarse como "¡Hola, allí!"
Ahora que conoce el texto del contrato, puede cambiarlo a "¡Hola, allí!" llamando al replace
punto de entrada con este comando:
$ tezos-client transfer 0 from faucet to <contract-address> --entrypoint replace --arg '"Hi, There!"'
Si el comando fue exitoso, cuando actualice el explorador, el almacenamiento ahora debería mostrar "¡Hola, allí!"
Tenga en cuenta que debe reemplazar <contract-address>
con la dirección del contrato implementado antes de ejecutar el comando.
Este artículo cubre el proceso de creación de contratos inteligentes en Tezos con SmartPy. La creación de contratos inteligentes le permite aprovechar al máximo la red blockchain para crear aplicaciones y organizaciones descentralizadas.
Espero que este artículo te haya ayudado a comprender el proceso de creación de contratos inteligentes en Tezos. Si desea leer más sobre los contratos inteligentes, consulte este artículo sobre los errores de contratos inteligentes que debe evitar.
¡Gracias por leer! Y ten un buen día. Desarrollo e implementación de contratos inteligentes de Tezos
Fuente: https://blog.logrocket.com/developing-deploying-tezos-smart-contracts/
1602569524
E-scooters are becoming more and more familiar. The compactness, coupled with the skill of evading jam-packed traffics, makes the fast-paced world lean towards this micro-mobility innovation. Besides, with COVID-19 propelling the need for safety and privacy, you do not have drivers in an E-scooters ecosystem! With the system being entirely automated, people can smart-lock and unlock E-scooters without any hassle.
Various top manufacturers are spending quality hours exhaustively on their R&D to shift from fuel-led automobiles to electric power-generating vehicles. Although people hesitate to make investments when it comes to buying an e-vehicle, using such vehicles for commuting is no big deal. If you’re an entrepreneur aiming to launch an Uber for E-Scooters app, now is the time to roll up your sleeves as E-scooters are being legalized in numerous countries, including New York.
Now, let’s discuss the remunerative advantages of E-scooters and why entrepreneurs needn’t hesitate to initiate their E-scooter App development.
Lucrative Benefits of E-Scooters
Outplay traffic effortlessly: One of the main concerns of people worldwide is not reaching the destination on time due to prolonged traffic. With four-wheelers becoming more predominant, the situation is steeping towards the worsening phase. With its compact nature, E-scooters can help people sail past traffic without a sweat. This way, people conserve and utilize their time efficiently.
The environmental impact: As simple as it may sound, automobiles pollute the environment on a massive scale. It is high-time people raise their concerns against environmental degradation. E-scooters are the best alternatives from the environmental perspective. These scooters run on a 500W electric motor, eliminating any form of pollution.
Inexpensive in every aspect: The maintenance and fuel costs of automobiles is way too high as vehicles get older. However, with an E-scooter, all it takes is a rechargeable battery with less or no maintenance at all. Moreover, entrepreneurs get to enhance their profits seamlessly, even after providing economical rides to passengers. There’s only an initial investment cost that an entrepreneur needs to take care of.
The 5-Step Workflow of an E-Scooters App
While building a smartphone application, it is essential to focus on the platform’s workflow. An E-scooter app with a user-friendly architecture and immersive workflow can create an instant impact among the audience. Let’s discuss the simple yet intuitive 5-step workflow here,
Users register with the platform and locate E-scooters nearby by enabling their location preferences.
Users choose their best-suited E-scooters based on numerous metrics like pricing, battery capacity, ratings, etc.
Users unlock the vehicle by scanning the QR code. They initiate their trip and drive towards their destination.
Upon reaching the destination, users park the E-scooters securely and smart-lock the vehicle.
The app displays the total fare with a detailed breakdown. Users pay the amount via a multitude of payment gateways and share their experience in the form of ratings & reviews.
Features that make the E-Scooter app stand apart
Apps like Lime, Bird, etc., have already set a benchmark when it comes to the E-Scooter app market. You need USPs to lure customer attention. Some of the unique elements worth-considering include,
QR scanning - To initiate and terminate rides.
In-app wallet - To pay for rides effortlessly.
Multi-lingual support - To access the app in the customers’ preferred language.
Schedule bookings - To book rides well-in-advance.
In-app chat/call - To establish a connection between the support team and users.
VoIP-based Call masking - To mask users’ contact details.
Geofencing - To map virtual boundaries and keep an eye on E-scooters.
Capitalize on the growing market
Establishing your E-Scooters Rental app at the spur of the moment is highly essential if you wish to scale your business in the shortest possible time. Some of the reasons to initiate your app development right away include,
The unexplored market: The E-Scooter market is still in its nascent stages. Rolling out an app with the right feature-set and approach can help you yield unrestricted revenue.
Competitors are experiencing massive growth: Apps like Lime, Bird, etc., witness unprecedented growth in the past few years. Lime was valued at $2.4 billion in 2019. On the other hand, Bird has spread across 100 cities in Europe. With competitors reaping profits, it is high-time entrepreneurs needn’t hesitate to invest in this business opportunity.
The ‘E’ shift among customers: People are gradually moving towards e-vehicles as a measure to conserve time and environment. By rolling out an on-demand app for E-scooters that is economical, people will inevitably turn towards your platform for the daily commute.
Conclusion
In this modern world, saving time and energy is the need of the hour. Add to that the indispensable role of conserving the environment. E-scooters cater to all these aspects comprehensively. Make the most out of the situation and have no second thoughts about initiating your E-Scooter app development.
#uber for e-scooters #e-scooter app development #e-scooter app #e-scooter rental app #uber like app for e-scooters #uber for e-scooters app
1617257581
¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.
Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.
PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.
Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.
No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.
El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.
No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.
Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.
Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.
No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.
Más información:- https://www.datavare.com/software/exchange-restore.html
#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio
1623413850
The growth of the online modes for students has increased since the pandemic. This growth has been possible with the help of E-learning software systems. This software has shown a future with more opportunities, even in this pandemic. This market will grow to a high of 350 billion dollars by 2025. Due to this pandemic, most education organizations have shifted to online modes. So, naturally, this means the need for E-learning software systems will grow. So, do you have a complete idea for your E-learning applications and are planning to develop one for your organization? E-learning product development is not a very difficult process to handle. To make the process easier for you, we have added the types of e-learning apps, its features, benefits, development cost and much more in this blog. To read more click on the link.
#e-learning web portals #e-learning development companies #development of software for e-learning #e-learning web portalsmobile applications for e-learning #e-learning product development #app development
1660636800
Tezos é uma das blockchains de contrato inteligente mais antigas, sendo a Ethereum a primeira.
Embora o Ethereum seja uma escolha popular entre os desenvolvedores para desenvolver e implantar contratos inteligentes, seus aplicativos não são muito escaláveis devido a altas taxas e transações lentas. Em contraste, os aplicativos Tezos são muito eficientes e baratos de configurar.
Neste guia, você aprenderá como desenvolver e implantar contratos inteligentes no Tezos com SmartPy CLI.
Você pode obter o código do projeto final neste repositório do GitHub .
Para acompanhar este artigo, você precisa estar familiarizado com a blockchain Tezos. Seu conhecimento não precisa ser aprofundado.
O conhecimento do blockchain Ethereum não é necessário, mas ajuda muito.
Tezos é uma rede blockchain e uma plataforma de contrato inteligente construída para ser adaptável por meio de seu modelo de governança e capacidade de autoatualização.
Embora Tezos e Ethereum sejam blockchains semelhantes que suportam contratos inteligentes e desenvolvimento de DApp, eles são diferentes de várias maneiras. A tabela Tezos vs. Ethereum abaixo mostra algumas das diferenças entre as duas redes.
Tezos | Ethereum |
Desenvolvedores fazem propostas para atualizar o protocolo blockchain na rede | Os desenvolvedores usam um hardfork para atualizar o protocolo blockchain |
As partes interessadas controlam as atualizações do protocolo blockchain votando para aceitar ou recusar propostas | Os criadores da rede blockchain governam atualizações para o protocolo blockchain |
Usa verificação formal para executar contratos inteligentes | Usa EVM para armazenar e executar contratos inteligentes na rede |
Os participantes (nós) têm a opção de fornecer recursos de computação ou delegar seus tokens para participar da validação de transações | Todos os participantes (nós) devem fornecer recursos de computação e apostar suas moedas para participar da validação de transações |
As taxas de gás são baixas, o que o torna muito escalável | As taxas de gás são muito altas, o que o torna inescalável |
SmartPy é uma ferramenta que permite construir contratos inteligentes facilmente na blockchain Tezos.
Você escreve contratos no SmartPy usando Python. Se você já estiver familiarizado com o Python, não precisará aprender uma nova linguagem de programação de contrato inteligente .
O SmartPy vem em duas outras variantes que usam outras sintaxes: SmartTS, que usa TypeScript, e SmartML, que usa OCaml.
SmartPy compila scripts Python para Michelson. Michelson é uma linguagem de programação de baixo nível para contratos inteligentes em Tezos. SmartTS e SmartML também podem ser compilados usando a ferramenta SmartPy.
Contratos inteligentes são programas que você pode construir, implantar e executar em uma rede blockchain. Você não precisa possuir um nó na rede antes de implantar seu contrato inteligente.
Com contratos inteligentes, você pode criar aplicativos acessíveis a todos os dispositivos sem possuir ou manter um servidor. Esses aplicativos totalmente descentralizados exigem pouca ou nenhuma manutenção.
Contratos inteligentes usam todo o potencial das blockchains, permitindo que você execute programas na cadeia e interaja com a própria cadeia. Você pode manter ou transferir tokens e acessar funcionalidades especializadas no blockchain com um contrato inteligente.
Para instalar o SmartPy CLI, execute o comando abaixo:
$ bash <(curl -s https://smartpy.io/cli/install.sh)
Este comando cria um smartpy-cli
diretório home
com esta estrutura em árvore:
smartpy-cli
├── browser.py
├── node_modules/
├── originator.js
├── package.json
├── package-lock.json
├── __pycache__/
├── smart.css
├── smart.js
├── smartpyc.js
├── smartpyc.py
├── smartpyio.py
├── smartpy.py
├── SmartPy.sh
├── smarttop/
├── smart-ts-cli.js
├── templates/
├── theme.js
└── typography.css
Para confirmar a instalação, execute o seguinte:
$ ~/smartpy-cli/SmartPy.sh --version
Como uma etapa extra para facilitar o SmartPy.sh
acesso, crie um alias copiando o abaixo em seu .bashrc
arquivo ou arquivo de perfil relacionado:
$ alias smartpy="$HOME/smartpy-cli/SmartPy.sh"
Agora você pode usar:
$ smartpy --version
Ao invés de:
$ ~/smartpy-cli/SmartPy.sh --version
tezos-client
Este guia usa tezos-client
para interagir com um contrato inteligente implantado. Para instalar tezos-client,
execute um dos comandos abaixo, dependendo se você estiver usando um sistema operacional Mac ou Linux:
# Mac
$ brew tap serokell/tezos-packaging-stable https://github.com/serokell/tezos-packaging-stable.git
$ brew install tezos-client
# Linux
$ wget https://github.com/serokell/tezos-packaging/releases/latest/download/tezos-client
$ chmod +x tezos-client
$ mkdir -p $HOME/.local/bin
$ mv tezos-client $HOME/.local/bin
$ echo 'export PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc
$ source $HOME/.bashrc
Observe que, se você estiver usando o Windows, precisará instalar uma distribuição do Linux com wsl e executar a instalação do Linux.
Após a instalação tezos-client
, você precisa configurá-lo. Comece executando o comando abaixo:
$ tezos-client --endpoint https://jakartanet.ecadinfra.com config update
Este guia usa a rede de teste Jarkatanet para implantar e interagir com um contrato inteligente. O comando acima se conecta tezos-client
à rede de teste Jakartanet através do nó https://jakartanet.ecadinfra.com
na rede.
Antes de realizar qualquer operação com tezos-client
, você precisa conectar uma conta. A Tezos fornece contas Faucet que permitem interagir com a rede gratuitamente.
Você precisa visitar o site Jakartanet Faucet e baixar o arquivo Faucet. Depois de fazer isso, abra a pasta de download no seu terminal e execute este comando:
$ tezos-client activate account faucet with ./jakartanet.json
O comando ativa a conta Faucet no seu tezos-client
e lhe dá um alias faucet
. Para verificar o saldo desta conta, abra o jakartanet.json
arquivo, copie o valor de pkh
e execute este comando:
$ tezos-client get balance for <address>
Substitua <address>
pelo pkh
valor que você copiou.
Observe que as contas Tezos Faucet estão disponíveis publicamente para todos e têm uma quantidade limitada de tokens Tez, então você deve regular seu uso.
Para começar a criar nosso contrato inteligente de exemplo, crie um novo store_text.py
arquivo e copie o abaixo nele:
import smartpy as sp
class StoreText(sp.Contract):
def __init__(self, value):
self.init(text = value)
@sp.entry_point
def replace(self, params):
self.data.text = params.text
@sp.entry_point # Note: the spaces before "@"
def append(self, params):
self.data.text += params.text
Veja como funciona o contrato acima, peça por peça:
Primeiro, importamos a smartpy
biblioteca:
import smartpy as sp
Então, definimos uma classe que estende sp.Contract
:
class StoreText(sp.Contract):
Por fim, definimos alguns itens dentro do contrato inteligente; primeiro, um construtor para inicializar text
:
def __init__(self, value): # Note: the spaces before "def"
self.init(text = value)
Segundo, um ponto de entrada para substituir o valor de text
:
@sp.entry_point # Note: the spaces before "@"
def replace(self, params):
self.data.text = params.text
Terceiro, um ponto de entrada para anexar uma string a text
:
@sp.entry_point # Note: the spaces before "@"
def append(self, params):
self.data.text += params.text
Em seguida, vamos dar uma olhada em como testar o contrato inteligente.
Os contratos inteligentes implantados no Tezos não podem ser alterados ou removidos. Isso pode ser um problema porque pode haver erros no contrato, e os erros podem levar a erros dispendiosos e à perda de fundos.
O SmartPy oferece a capacidade de testar facilmente seu contrato antes da implantação. Testar o contrato não requer nenhum token ou uma conta de carteira para ser executado. Tudo que você precisa fazer é abrir o store_text.py
arquivo e copiar abaixo dele:
@sp.add_test(name = "StoreText")
def test():
scenario = sp.test_scenario()
contract = StoreText("Hello")
scenario += contract
scenario.verify(contract.data.text == "Hello")
contract.replace(text = "Hi")
contract.append(text = ", there!")
scenario.verify(contract.data.text == "Hi, there!")
Veja como o trecho funciona. Primeiro, registramos a test
função como um script de teste:
@sp.add_test(name = "StoreText")
Então, definimos a test
função:
def test():
Nas linhas restantes, criamos um cenário de teste:
scenario = sp.test_scenario()
Inicializou o contrato com "Hello"
:
contract = StoreText("Hello")
Adicionada a instância do contrato ao cenário:
scenario += contract
Verificado que o text
valor do contrato é "Hello"
:
scenario.verify(contract.data.text == "Hello")
Chamado os pontos de entrada replace
e :append
contract.replace(text = "Hi")
contract.append(text = ", there!")
E por fim, verificou que o text
valor do contrato passou a ser "Hi, there"
:
scenario.verify(contract.data.text == "Hi, there!")
Após adicionar o teste, salve o arquivo e execute este comando:
$ ~/smartpy-cli/SmartPy.sh test store_text.py ./test-output
Se o teste for bem-sucedido, o compilador não lançará uma mensagem de erro.
Antes de implantar seu contrato inteligente, você precisa compilá-lo para Michelson. Como mencionado anteriormente, Michelson é uma linguagem de programação de baixo nível usada para contratos inteligentes na blockchain Tezos.
Para compilar store_text.py
, execute o seguinte:
$ ~/smartpy-cli/SmartPy.sh compile message.py ./output
Se compilado com sucesso, você deverá ver uma output
pasta como a abaixo:
output/
├── scenario.json
├── script_init.py
├── script_pure.py
└── storeMessage/
├── log.txt
├── step_000_cont_0_contract.json
├── step_000_cont_0_contract.py
├── step_000_cont_0_contract.tz
├── step_000_cont_0_sizes.csv
├── step_000_cont_0_storage.json
├── step_000_cont_0_storage.py
├── step_000_cont_0_storage.tz
└── step_000_cont_0_types.py
O output
diretório contém todos os arquivos necessários para implantar o contrato inteligente.
Para deploy store_text.py
, abra a output/storeMessage
pasta no terminal e execute o comando abaixo:
$ ~/smartpy-cli/SmartPy.sh originate-contract --code step_000_cont_0_contract.json --storage step_000_cont_0_storage.json --rpc https://jakartanet.ecadinfra.com
[INFO] - Using RPC https://jakartanet.ecadinfra.com/...
[INFO] - Contract KT1………………CAjjW originated!!!
Veja como o comando funciona:
originate-contract
diz tezos-client
para implantar (“originar”) um contrato--code step_000_cont_0_contract.json
aponta para o arquivo de contrato compilado--storage step_000_cont_0_storage.json
aponta para o arquivo de armazenamento compilado--rpc
https://jakartanet.ecadinfra.com
aponta para um nó RPC na rede que você está implantandoOs contratos inteligentes da Tezos geralmente envolvem dois componentes: o armazenamento e o contrato. O armazenamento contém os dados que o contrato armazena e o contrato contém a lógica do contrato inteligente.
Observe que você pode implantar o contrato com qualquer uma das compilações de contrato ou armazenamento. Eles só precisam ter a mesma extensão de arquivo quando você estiver usando o comando.
Por padrão, se você estiver implantando em uma rede de teste, o compilador usará uma conta Faucet. Se você estiver implantando na rede principal ou quiser usar sua conta de carteira, adicione o --private-key
sinalizador seguido pela chave privada da conta.
Antes de interagir com o contrato inteligente implantado, você precisa saber como o contrato está atualmente. Para fazer isso, abra o SmartPy Explorer no seu navegador e siga estas etapas:
mainnet
parajakartanet
https://jakartanet.ecadinfra.com
na caixa de textoQuando os dados do contrato aparecerem, o armazenamento de texto deverá ser exibido como “Hello, There!”
Agora que você conhece o texto do contrato, pode alterá-lo para "Oi, pronto!" chamando o replace
ponto de entrada com este comando:
$ tezos-client transfer 0 from faucet to <contract-address> --entrypoint replace --arg '"Hi, There!"'
Se o comando foi bem-sucedido, ao atualizar o explorer, o armazenamento agora deve exibir “Oi, pronto!”
Observe que você deve substituir <contract-address>
pelo endereço do contrato implantado antes de executar o comando.
Este artigo aborda o processo de construção de contratos inteligentes no Tezos com SmartPy. A criação de contratos inteligentes permite que você aproveite ao máximo a rede blockchain para criar aplicativos e organizações descentralizadas.
Espero que este artigo tenha ajudado você a entender o processo de construção de contratos inteligentes no Tezos. Se você quiser ler mais sobre contratos inteligentes, confira este artigo sobre erros de contratos inteligentes a serem evitados.
Obrigado por ler! E tenha um ótimo dia. Desenvolvimento e implantação de contratos inteligentes Tezos
Fonte: https://blog.logrocket.com/developing-deploying-tezos-smart-contracts/