1654926300
Este artículo proporciona información sobre el desarrollo de contratos inteligentes en C#, validación de contratos, generación de código de bytes en Stratis Blockchain con un ejemplo de HelloWorld Contract. Los principiantes o novatos en el desarrollo de contratos inteligentes obtendrán ideas y pautas completas desde el desarrollo de contratos inteligentes en C# hasta la validación de contratos y la generación de códigos de bytes.
En la serie de artículos anterior, realizamos transacciones usando
En este artículo, nos moveremos para el desarrollo de contratos inteligentes en C#.
Este artículo incluye:
requisitos previos
Stratis ha proporcionado una plantilla de contrato inteligente de Stratis para aquellos que desean crear un contrato inteligente utilizando C# y .NET en Visual Studio. Para configurar la plantilla de contrato inteligente de Stratis, ejecute el siguiente comando en su terminal de comandos de Visual Studio.
dotnet nuevo --instalar Stratis.SmartContracts.Templates.CLI
Una vez que el comando es exitoso, puede ver la plantilla de contrato inteligente de Stratis en la lista como se muestra a continuación.
Puede ejecutar el siguiente comando para ver la lista de nuevas plantillas instaladas en Visual Studio.
dotnet nueva --lista
Paso 1: crear un proyecto de contrato inteligente
Cree un nuevo proyecto en Visual Studio y busque la plantilla Stratis Smart Contract escribiendo Stratis en el cuadro de texto de búsqueda. Puede ver la plantilla en la lista. Seleccione la plantilla de contrato inteligente de Stratis (Stratis Group Ltd) y haga clic en Siguiente.
Si no puede ver la plantilla de contrato inteligente mientras crea el proyecto en el paso anterior, puede solucionarlo rápidamente siguiendo los pasos a continuación:
2. Luego, en Entorno, vaya a Características de vista previa y seleccione "Mostrar todas las plantillas de .NET Core en el cuadro de diálogo Nuevo proyecto (requiere reiniciar)" y haga clic en Aceptar.
3. Una vez que habilite esto, reinicie su Visual Studio.
Paso 2: proporcione el nombre del proyecto
Una vez que seleccione la plantilla de contrato inteligente de Stratis mientras crea el proyecto, proporcione el nombre del proyecto, la ubicación de la carpeta y el nombre de la solución y haga clic en Crear para crear su primer proyecto de contrato inteligente de Stratis.
Cuando se crea el proyecto, puede ver Mi clase de contrato como se muestra a continuación.
En esta sección, tomaremos un ejemplo del contrato Hello world. Cambiemos el nombre de MyContract a HelloWorld. Haga clic derecho en MyContract.cs y cámbiele el nombre a HelloWorld.cs
La implementación de un contrato implica llamar al constructor de la clase de contrato inteligente.
Es por eso que cualquier inicialización del contrato inteligente debe estar en el constructor. Si necesitamos algún parámetro en el contrato inteligente, podemos pasar el constructor.
Todos los contratos inteligentes en C# se heredan de SmartContract. Es posible que haya notado que la primera línea del contrato HelloWorld.cs contiene:
using Stratis.SmartContracts;
Nota: Cuando se declara más de una clase/contrato, debe usar el atributo [Implementar] encima de la clase. Sin embargo, especificar está bien incluso en una sola clase.
[Deploy]
public class HelloWorld : SmartContract
{
…
}
public HelloWorld(ISmartContractState smartContractState)
: base(smartContractState)
{
}
En este ejemplo de Hello World, iniciaremos la propiedad Greeting como se muestra a continuación.
private string Greeting
{
get
{
return this.PersistentState.GetString("Greeting");
}
set
{
this.PersistentState.SetString("Greeting", value);
}
}
Ahora, inicializaremos la propiedad Saludo dentro del constructor HelloWorld con el valor de cadena: "¡Hola mundo!".
this.Greeting = "Hello World!";
Escribiremos un método simple SayHello(), que devuelve el saludo: "¡Hola mundo!" valor de cadena.
public string SayHello()
{
return this.Greeting;
}
El código completo se puede encontrar aquí .
La herramienta de contrato inteligente funciona con la plataforma Stratis, que se utiliza para validar y generar el código de bytes del contrato inteligente.
Después de completar el código de contrato inteligente según el requisito, debemos validarlo. Stratis ha proporcionado una herramienta Sct para validar el contrato inteligente si es correcto. El proceso de validación es obligatorio para verificar las restricciones válidas utilizadas en el contrato. Valida el determinismo y las restricciones utilizadas en el contrato inteligente, es decir, valida el formato y el elemento determinista del contrato. Las reglas de determinismo y validación de formato se pueden encontrar en la Academia Startis . Puede descargar la herramienta Sct desde aquí .
O clone el repositorio Stratis.SmartContracts.Tools.Sct ejecutando el siguiente comando.
clon de git https://github.com/stratisproject/Stratis.SmartContracts.Tools.Sct.git
Nota: si está utilizando una versión previamente clonada o descargada de Sct Tool del repositorio, asegúrese de estar utilizando la última versión antes de validar y compilar el contrato.
Abra la solución Sct Tools en Visual Studio, verá dos proyectos, uno es el proyecto principal y otro es el proyecto de prueba, como se ilustra a continuación.
Haga clic derecho en "Stratis.SmartContracts.Tools.Sct" y vaya a la terminal y luego ejecute el siguiente comando.
ejecutar dotnet -- validar [Contract_PATH]
p.ej
dotnet run -- validar "F:\Blockchain\Demo Stratis Contract\Demo Stratis Contract\MyContract.cs"
Alternativamente, desde CLI puede ejecutar los siguientes comandos
cd src/Stratis.SmartContracts.Tools.Sct
ejecutar dotnet -- validar [Contract_PATH]
Una vez que ejecuta el comando, puede ver el éxito o el error de la validación. En el éxito de la validación, obtendrá la siguiente información en la terminal.
Si obtiene un error en el paso de validación, en función del mensaje de error, puede corregir su código de contrato inteligente o verificar las reglas de validación y luego volver a realizar la validación como se indicó anteriormente.
Una vez que se valida el contrato, después de eso, tenemos que compilar el código del contrato inteligente y generar el código de bytes. Este código de bytes de contrato inteligente es el código que necesitamos implementar en Blockchain.
Para compilar el código, ejecute el siguiente comando.
ejecutar dotnet -- validar [RUTA_DE_CONTRATO] -sb
ejemplo:
dotnet run -- validar "F:\Blockchain\Demo Stratis Contract\Demo Stratis Contract\MyContract.cs" -sb
El comando anterior primero valida el contrato inteligente y luego compila el código. Si su compilación tiene éxito, obtendrá un código hash y de bytes en su terminal, como se ilustra a continuación. Necesitaremos el código hash y byte mientras implementamos el contrato en la cadena de bloques. Por lo tanto, copie y conserve el hash y el código Byte de contrato que usaremos en la siguiente parte de esta serie de artículos.
Puede ver más información usando el siguiente comando.
ejecutar dotnet -- validar –ayuda
Por lo tanto, en esta parte de la serie de artículos, aprendimos a configurar una plantilla de contrato inteligente en Visual Studio, creamos el primer proyecto de contrato inteligente usando la plantilla y nos familiarizamos con el contrato Hello World en C#. Además, validamos y generamos Byte Code.
En la siguiente parte de la serie, implementaremos e interactuaremos con este contrato utilizando Cirrus Core Private Net Wallet. Para que la siguiente parte se implemente e interactúe con el contrato, puede obtener la serie de artículos aquí.
Puede consultar la serie de artículos anteriores siguiendo los enlaces a continuación.
Del mismo modo, puede consultar la siguiente parte a continuación.
Esta historia se publicó originalmente en https://www.c-sharpcorner.com/article/obtain-bytecode-and-hash-of-smart-contract-on-stratis-blockchain/
#smartcontract #stratis #blockchain
1654926300
Este artículo proporciona información sobre el desarrollo de contratos inteligentes en C#, validación de contratos, generación de código de bytes en Stratis Blockchain con un ejemplo de HelloWorld Contract. Los principiantes o novatos en el desarrollo de contratos inteligentes obtendrán ideas y pautas completas desde el desarrollo de contratos inteligentes en C# hasta la validación de contratos y la generación de códigos de bytes.
En la serie de artículos anterior, realizamos transacciones usando
En este artículo, nos moveremos para el desarrollo de contratos inteligentes en C#.
Este artículo incluye:
requisitos previos
Stratis ha proporcionado una plantilla de contrato inteligente de Stratis para aquellos que desean crear un contrato inteligente utilizando C# y .NET en Visual Studio. Para configurar la plantilla de contrato inteligente de Stratis, ejecute el siguiente comando en su terminal de comandos de Visual Studio.
dotnet nuevo --instalar Stratis.SmartContracts.Templates.CLI
Una vez que el comando es exitoso, puede ver la plantilla de contrato inteligente de Stratis en la lista como se muestra a continuación.
Puede ejecutar el siguiente comando para ver la lista de nuevas plantillas instaladas en Visual Studio.
dotnet nueva --lista
Paso 1: crear un proyecto de contrato inteligente
Cree un nuevo proyecto en Visual Studio y busque la plantilla Stratis Smart Contract escribiendo Stratis en el cuadro de texto de búsqueda. Puede ver la plantilla en la lista. Seleccione la plantilla de contrato inteligente de Stratis (Stratis Group Ltd) y haga clic en Siguiente.
Si no puede ver la plantilla de contrato inteligente mientras crea el proyecto en el paso anterior, puede solucionarlo rápidamente siguiendo los pasos a continuación:
2. Luego, en Entorno, vaya a Características de vista previa y seleccione "Mostrar todas las plantillas de .NET Core en el cuadro de diálogo Nuevo proyecto (requiere reiniciar)" y haga clic en Aceptar.
3. Una vez que habilite esto, reinicie su Visual Studio.
Paso 2: proporcione el nombre del proyecto
Una vez que seleccione la plantilla de contrato inteligente de Stratis mientras crea el proyecto, proporcione el nombre del proyecto, la ubicación de la carpeta y el nombre de la solución y haga clic en Crear para crear su primer proyecto de contrato inteligente de Stratis.
Cuando se crea el proyecto, puede ver Mi clase de contrato como se muestra a continuación.
En esta sección, tomaremos un ejemplo del contrato Hello world. Cambiemos el nombre de MyContract a HelloWorld. Haga clic derecho en MyContract.cs y cámbiele el nombre a HelloWorld.cs
La implementación de un contrato implica llamar al constructor de la clase de contrato inteligente.
Es por eso que cualquier inicialización del contrato inteligente debe estar en el constructor. Si necesitamos algún parámetro en el contrato inteligente, podemos pasar el constructor.
Todos los contratos inteligentes en C# se heredan de SmartContract. Es posible que haya notado que la primera línea del contrato HelloWorld.cs contiene:
using Stratis.SmartContracts;
Nota: Cuando se declara más de una clase/contrato, debe usar el atributo [Implementar] encima de la clase. Sin embargo, especificar está bien incluso en una sola clase.
[Deploy]
public class HelloWorld : SmartContract
{
…
}
public HelloWorld(ISmartContractState smartContractState)
: base(smartContractState)
{
}
En este ejemplo de Hello World, iniciaremos la propiedad Greeting como se muestra a continuación.
private string Greeting
{
get
{
return this.PersistentState.GetString("Greeting");
}
set
{
this.PersistentState.SetString("Greeting", value);
}
}
Ahora, inicializaremos la propiedad Saludo dentro del constructor HelloWorld con el valor de cadena: "¡Hola mundo!".
this.Greeting = "Hello World!";
Escribiremos un método simple SayHello(), que devuelve el saludo: "¡Hola mundo!" valor de cadena.
public string SayHello()
{
return this.Greeting;
}
El código completo se puede encontrar aquí .
La herramienta de contrato inteligente funciona con la plataforma Stratis, que se utiliza para validar y generar el código de bytes del contrato inteligente.
Después de completar el código de contrato inteligente según el requisito, debemos validarlo. Stratis ha proporcionado una herramienta Sct para validar el contrato inteligente si es correcto. El proceso de validación es obligatorio para verificar las restricciones válidas utilizadas en el contrato. Valida el determinismo y las restricciones utilizadas en el contrato inteligente, es decir, valida el formato y el elemento determinista del contrato. Las reglas de determinismo y validación de formato se pueden encontrar en la Academia Startis . Puede descargar la herramienta Sct desde aquí .
O clone el repositorio Stratis.SmartContracts.Tools.Sct ejecutando el siguiente comando.
clon de git https://github.com/stratisproject/Stratis.SmartContracts.Tools.Sct.git
Nota: si está utilizando una versión previamente clonada o descargada de Sct Tool del repositorio, asegúrese de estar utilizando la última versión antes de validar y compilar el contrato.
Abra la solución Sct Tools en Visual Studio, verá dos proyectos, uno es el proyecto principal y otro es el proyecto de prueba, como se ilustra a continuación.
Haga clic derecho en "Stratis.SmartContracts.Tools.Sct" y vaya a la terminal y luego ejecute el siguiente comando.
ejecutar dotnet -- validar [Contract_PATH]
p.ej
dotnet run -- validar "F:\Blockchain\Demo Stratis Contract\Demo Stratis Contract\MyContract.cs"
Alternativamente, desde CLI puede ejecutar los siguientes comandos
cd src/Stratis.SmartContracts.Tools.Sct
ejecutar dotnet -- validar [Contract_PATH]
Una vez que ejecuta el comando, puede ver el éxito o el error de la validación. En el éxito de la validación, obtendrá la siguiente información en la terminal.
Si obtiene un error en el paso de validación, en función del mensaje de error, puede corregir su código de contrato inteligente o verificar las reglas de validación y luego volver a realizar la validación como se indicó anteriormente.
Una vez que se valida el contrato, después de eso, tenemos que compilar el código del contrato inteligente y generar el código de bytes. Este código de bytes de contrato inteligente es el código que necesitamos implementar en Blockchain.
Para compilar el código, ejecute el siguiente comando.
ejecutar dotnet -- validar [RUTA_DE_CONTRATO] -sb
ejemplo:
dotnet run -- validar "F:\Blockchain\Demo Stratis Contract\Demo Stratis Contract\MyContract.cs" -sb
El comando anterior primero valida el contrato inteligente y luego compila el código. Si su compilación tiene éxito, obtendrá un código hash y de bytes en su terminal, como se ilustra a continuación. Necesitaremos el código hash y byte mientras implementamos el contrato en la cadena de bloques. Por lo tanto, copie y conserve el hash y el código Byte de contrato que usaremos en la siguiente parte de esta serie de artículos.
Puede ver más información usando el siguiente comando.
ejecutar dotnet -- validar –ayuda
Por lo tanto, en esta parte de la serie de artículos, aprendimos a configurar una plantilla de contrato inteligente en Visual Studio, creamos el primer proyecto de contrato inteligente usando la plantilla y nos familiarizamos con el contrato Hello World en C#. Además, validamos y generamos Byte Code.
En la siguiente parte de la serie, implementaremos e interactuaremos con este contrato utilizando Cirrus Core Private Net Wallet. Para que la siguiente parte se implemente e interactúe con el contrato, puede obtener la serie de artículos aquí.
Puede consultar la serie de artículos anteriores siguiendo los enlaces a continuación.
Del mismo modo, puede consultar la siguiente parte a continuación.
Esta historia se publicó originalmente en https://www.c-sharpcorner.com/article/obtain-bytecode-and-hash-of-smart-contract-on-stratis-blockchain/
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
1617255938
Si tiene problemas para migrar los buzones de correo de Exchange a Office 365, debe leer este artículo para saber cómo migrar los buzones de correo de Exchange EDB a Office 365. Al migrar a Office 365, los usuarios pueden acceder a sus buzones de correo desde cualquier lugar y desde cualquier dispositivo.
En esta publicación, explicaremos las razones detrás de esta migración y una solución profesional para migrar de Exchange a Office 365.
Office 365 apareció por primera vez en 2011 y, dado que se considera la mejor plataforma para aquellas organizaciones que desean administrar todo su sistema de correo electrónico en la nube. Estas son las características clave de Office 365:
Hay varias formas manuales de migrar los buzones de correo de Exchange EDB a Office 365, pero para evitar estos complicados y prolongados procedimientos, presentamos una solución de terceros, es decir, la herramienta de migración de Exchange, que es automatizada y directa para la migración de Exchange a Office 365. La herramienta funciona rápidamente y migra todos los elementos del buzón de Exchange Server a Office 365.
La herramienta de migración de Datavare Exchange es demasiado fácil de usar y ofrece pasos sencillos para migrar EDB a Office 365:
Por lo tanto, todos sus buzones de correo de Exchange EDB ahora se migran a Office 365.
Nota: puede usar filtros para migrar los elementos de datos deseados de la cuenta de Exchange a la de Office 365
Este blog le indica una solución profesional para la migración de buzones de correo de Exchange a la cuenta de Office 365. Dado que las soluciones manuales son complicadas, sugerimos la herramienta de migración de Exchange, que es demasiado simple de usar. Los usuarios no se enfrentan a problemas al operar el programa. La mejor parte de este software es que no necesita habilidades técnicas para realizar la migración. Se puede comprender el funcionamiento del software descargando la versión de demostración que permite la migración de los primeros 50 elementos por carpeta.
Más información:- https://www.datavare.com/software/edb-migration.html
#herramienta de migración de intercambio #migración de intercambio #migrar buzones de correo de exchange
1623436503
En Equipos este punto debes conocer toda la información necesaria sobre tus futuros pedales. Lo más probable es que su elección ahora se reduzca a una determinada alineación y es posible que ya tenga algunos favoritos. Desafortunadamente, es imposible pensar en todo de antemano, y es importante probar los modelos antes de comprarlos. Visitar tu tienda de música local y probar los modelos que te gustaron en línea eliminará algunos de los San Sebastian, instrumentos eléctricos, mezcladoras, guitarra en venta, equipos de grabación en venta, teclado en venta, amplificadores en venta, batería en venta pedales de tu lista y te dejará con uno o incluso varios modelos con los que te sientes cómodo. La última etapa para realizar una compra adecuada es aprender sobre el mantenimiento. Recomendamos hacer esto después de la prueba de manejo para ahorrar algo de tiempo en aprender todo eso en línea. Simplemente preguntar a los trabajadores de su tienda de música local es mucho más fácil que buscar docenas de guías en video.
Para obtener más información, visite BedPage: https://sansebastian.bedpage.es/
#san sebastian, instrumentos eléctricos, mezcladoras, guitarra en venta, equipos de grabación en venta, teclado en venta, amplificadores en venta, batería en venta
1648930740
La plataforma Stratis es una plataforma de cadena de bloques para desarrolladores y arquitectos de software que desean crear nuevas aplicaciones de cadena de bloques o desean integrar la cadena de bloques de Stratis en sus aplicaciones existentes.
La cadena de bloques de Stratis es de código abierto y admite plantillas de Visual Studio para crear soluciones de cadena de bloques con C# y .NET. Stratis ofrece diferentes productos como Full Node, Smart Contract, Sidechains, Identity, etc. Si desea obtener más información sobre Stratis blockchain, diríjase a Introducción a Stratis Platform .
En este artículo, aprenderá a configurar las herramientas necesarias para iniciar el desarrollo con la cadena de bloques de Stratis, escribir un contrato inteligente simple en C# e implementar y ejecutar su primer contrato inteligente en la cadena de bloques de Stratis.
Para completar este artículo, debe tener conocimientos básicos de C# y .NET. Si es nuevo en la programación de C#, aprenda C# aquí - Programación de C# para principiantes . También debe tener conocimientos básicos de Blockchain y su funcionamiento. Si no tiene una comprensión básica de Blockchain, lea esto ¿Qué es Blockchain ?
requisitos previos
Estos son los requisitos previos para completar este tutorial:
Vamos a usar Visual Studio 2019 en este tutorial. La edición de Visual Studio Community 2019 se puede descargar gratis. Puede usar cualquier otra edición de Visual Studio 2019 o posterior.
Si desea instalar Visual Studio 2019, descárguelo e instálelo desde aquí .
La plantilla de contrato inteligente de Stratis es una plantilla de proyecto de Visual Studio que crea un proyecto de contrato inteligente de Stratis de muestra en Visual Studio. Puede instalar la plantilla usando el siguiente comando en su terminal de comandos de Visual Studio.
dotnet nuevo --instalar Stratis.SmartContracts.Templates.CLI
Una vez que el comando anterior tenga éxito, instalará la plantilla de proyecto Stratis Smart Contracts Visual Studio.
Una vez que se haya instalado correctamente, debería aparecer en la lista de plantillas disponibles.
También puede encontrar esta plantilla en las plantillas disponibles de Visual Studio. Esta plantilla estará disponible cuando cree un nuevo proyecto en Visual Studio. Para encontrarlo, simplemente escriba "Stratis" en el cuadro de búsqueda. Veremos cómo crear un proyecto de contratos inteligentes de Visual Studio utilizando esta plantilla más adelante en este tutorial.
Arreglo rapido
Si no puede encontrar la plantilla en la lista, habilite la opción desde Herramientas > Opciones y busque la casilla de verificación "Mostrar todas las plantillas de .NET Core en el cuadro de diálogo Nuevo proyecto" y márquela.
Haga clic en el botón Aceptar.
Después de habilitar, debe reiniciar la instancia de Visual Studio. Luego intente crear un nuevo proyecto, debería ver la Plantilla de contrato inteligente de Stratis en la lista. Como dije anteriormente, usaremos esto para el desarrollo de contratos inteligentes más adelante en este artículo.
Cuando creamos contratos inteligentes de Stratis, debemos validar que el contrato inteligente sea correcto. El proceso de validación de Smart Contract se completa utilizando la herramienta sct proporcionada por Stratis.
Descargue ese proyecto sct desde aquí y guárdelo en el directorio donde pueda acceder fácilmente. Veremos más sobre el proceso de validación más adelante en este artículo.
Ahora, aquí viene la parte más importante. Necesitamos instalar Stratis Blockchain en la máquina de desarrollo local, Stratis Blockchain es Stratis Full Node. Si desea obtener más información sobre Stratis Full Node, consulte aquí .
tenga en cuenta
Para el desarrollo, es preferible utilizar una red blockchain local para implementar y probar los contratos inteligentes. Una vez que implemente y pruebe y tenga una comprensión clara de los contratos inteligentes y Stratis, puede seguir adelante e implementar sus contratos inteligentes en la cadena de bloques pública de Live Stratis. La cadena de bloques pública de Stratis tiene dos cadenas vivas, "testnet" y "mainnet". La "red de prueba" se utiliza para implementar sus contratos inteligentes con fines de prueba y la "red principal" es la cadena de bloques pública en vivo que es donde implementará sus contratos inteligentes de productos de trabajo real. Sin embargo, para implementar en la cadena de bloques de la red principal, habrá una pequeña tarifa en forma de $STRAX. Discutiremos estas dos cadenas más adelante en esta serie.
Una red de cadena de bloques local es un clon de la cadena de bloques real (también conocida como red principal), pero utiliza un mecanismo de consenso diferente. Para facilitar el desarrollo y el aprendizaje, proporciona la flexibilidad de una simple ejecución y prueba de contratos inteligentes en la máquina de desarrollo sin necesidad de mineros o validadores externos.
Para ejecutar la cadena de bloques en una máquina local para el desarrollo, descargue la rama maestra de nodo completo de Stratis desde aquí .
Y ejecute el proyecto Stratis.CirrusMinerD con el parámetro -devmode como se muestra a continuación,
cd StratisFullNode\src\Stratis.CirrusMinerD
dotnet ejecutar -devmode=minero
Esto ejecuta un solo nodo de producción de bloques que utiliza el algoritmo de consenso PoA (Prueba de autoridad). Abra http://localhost:38223/swagger en su máquina y la lista de API debería estar visible. Usando estos puntos finales de API, podemos interactuar con la cadena de bloques.
Todos los registros de la cadena aparecerían en la terminal. Puede encontrar información de cuenta y saldo allí.
Como puede ver en la pantalla anterior, inicialmente su billetera Stratis tiene un saldo de 100,000 tokens.
Postman es un cliente de API popular que se utiliza para llamar a puntos finales de API.
Descargue e instale Postman desde aquí .
Para usar Postman, debe crear una cuenta. Usaremos Postman para implementar nuestro contrato y ejecutar métodos de contrato.
Para obtener todos los métodos disponibles en la página de Swagger para Postman, vaya a http://localhost:38223/swagger/v1/swagger.json , guárdelo como un archivo JSON e impórtelo en Postman.
Esto creará una nueva colección "Stratis Node API" en su espacio de trabajo.
Cambie el valor de la variable URL base a http://localhost:38223
Hemos configurado todas las herramientas requeridas, ahora creemos nuestro primer contrato inteligente.
Paso 1 - Desarrollo
Abra Visual Studio, seleccione Plantilla de contrato inteligente de Stratis y cree un proyecto.
Haga clic en el botón Crear.
Una vez que se crea un proyecto, aterrizará en la página a continuación. MyContract es un contrato simple. Puedes personalizarlo según tus necesidades.
Un contrato inteligente almacena la información en pares clave-valor. Usando PersistentState podemos almacenar la información en un contrato inteligente.
Para nuestro contrato simple, crearemos un contrato inteligente que modificará el contrato predeterminado para almacenar la información del propietario del contrato. Luego, después de la implementación, recuperaremos la información del propietario del contrato inteligente.
Aquí está la versión modificada de MyContract.
public class MyContract : SmartContract
{
public MyContract(ISmartContractState smartContractState)
: base(smartContractState)
{
SetOwner(Message.Sender);
}
private void SetOwner(Address owner)
{
PersistentState.SetAddress("owner", owner);
}
public Address GetOwner()
{
return PersistentState.GetAddress("owner");
}
}
C#
El contrato anterior tiene dos métodos, SetOwner y GetOwner para establecer y obtener el propietario del contrato.
Cosas para notar,
Paso 2 - Validación de un contrato inteligente
El proceso de validación es imprescindible para verificar las restricciones válidas utilizadas en un contrato inteligente. El proceso garantiza que un contrato inteligente esté libre de elementos no deterministas y que se cumplan las restricciones adicionales en torno al formato del contrato.
Ya hemos descargado la herramienta sct anteriormente. Abra una terminal, acceda al proyecto sct y ejecute los siguientes comandos.
cd src/Stratis.SmartContracts.Tools.Sct
ejecutar dotnet -- validar [Contract_PATH]
Ejemplo
dotnet run -- validar "D:\Project Repository\StratisSmartContract\MyContract.cs".
Si hay algún problema con un contrato, aparecerá en la respuesta. Modifique la base del contrato en errores e intente validarlo nuevamente. Si todo se ve bien, estamos listos para ir al siguiente paso.
Paso 3 - Compilar un contrato
Una vez que se valida un contrato inteligente, el siguiente paso es compilar un contrato inteligente y generar un código de bytes. El código de bytes del contrato inteligente es el código que se implementa en una cadena.
Se puede compilar un contrato usando la herramienta sct usando el siguiente comando,
dotnet ejecutar -- validar [CONTRACT_PATH_HERE] -sb
Si la compilación es exitosa, la salida será el código de bytes compilado que se parece a lo siguiente,
Paso 4: implementación del contrato
Ahora, vamos a implementar nuestro contrato inteligente en la cadena.
La implementación del contrato se puede realizar mediante puntos finales de API. Para implementar su contrato, abra la colección Postman y siga la ejecución de la API.
La billetera es necesaria para todo lo que hacemos en blockchain, ya sea para enviar criptomonedas a alguien o implementar un contrato. Stratis proporciona una billetera predefinida para el desarrollo. Usaremos esa billetera para implementar nuestro contrato, pero primero, necesitamos cargar esa billetera.
Vaya a la API de carga de billetera, proporcione el nombre y la contraseña de la billetera.
Si recibe un error en la respuesta, espere un momento y vuelva a intentarlo. La API debería devolver un código de estado 200.
Se requiere una dirección para interactuar con una cadena de bloques. Una cuenta puede tener varias direcciones. Esta cadena privada tiene algunas direcciones de billetera preconfiguradas con saldo que podemos usar para crear transacciones.
Para obtener direcciones con saldo en la billetera, use la API de direcciones de billetera. Proporcione el nombre de la billetera y el nombre de la cuenta.
Aquí la dirección “PEpYnf7Zv5u4pTDGmvYPT2vktpop2VeCqj” tiene cierto equilibrio. Usaremos esta dirección para enviar transacciones siempre que sea necesario en nuestro caso.
Se puede implementar un contrato utilizando este extremo. Aquí tenemos que pasar bytecodes generados usando la herramienta sct previamente.
Vaya a SmartContract Wallet > seleccione el punto final /api/SmartContractWallet/create. Proporcione la información requerida de la siguiente manera,
Parámetro | Valor | Descripción |
Monto | 0 | Importe STRAX enviado al contrato. |
contratoCódigo | Código de bytes generado con la herramienta sct | |
clave | clave | Contraseña de billetera |
remitente | PEpYnf7Zv5u4pTDGmvYPT2vktpop2VeCqj | Dirección de la billetera del remitente |
billeteraNombre | cirrusdev | Nombre de la billetera |
nombre de la cuenta | cuenta 0 | Nombre de la cuenta |
puntos fuera | nulo | |
importe de la cuota | 0.001 | Importe de la cuota |
precio del gas | 100 | precio de la gasolina |
límite de gas | 100000 | límite de gas |
parámetros | nulo | Parámetros a pasar al método de contrato. Nuestro método de contrato no tiene ninguno, por lo tanto, pasa nulo. |
Devolverá un hash de transacción en la respuesta de la siguiente manera:
"89e7092c75e866566b6a9ff25bd63360d77c7e3bc0fb460a2ad2389c75e59e05"
Al utilizar el hash de la transacción, puede obtener el recibo de la transacción que incluye el gas utilizado en la transacción, las direcciones de origen y destino, los valores de devolución, los registros, etc.
Encuentre la API de recibo de la carpeta Smart Contracts en la colección. Proporcione el hash de la transacción en el parámetro de consulta.
Respuesta de muestra
{
"transactionHash": "89e7092c75e866566b6a9ff25bd63360d77c7e3bc0fb460a2ad2389c75e59e05",
"blockHash": "46409439dea5b9f30a80401e34432c90de07ee621c1df90d4a2bcb72be720141",
"postState": "49a66770d7702c31d57c9c3c46e20e104b1f682d64dd4fab1f9e6cd7535157e4",
"gasUsed": 12540,
"from": "PEpYnf7Zv5u4pTDGmvYPT2vktpop2VeCqj",
"to": null,
"newContractAddress": "PFHuKUFBYRYjoAfQ5aamqpzuETrd9hNAuE",
"success": true,
"returnValue": null,
"bloom": "000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000",
"error": null,
"logs": []
}
Anote esta dirección de contrato, la usará mientras interactúa con el contrato inteligente implementado.
Paso 5: interactuar con el contrato inteligente
Hay dos formas de interactuar con un contrato.
De la documentación de Stratis,
“Una llamada de contrato utiliza una transacción regular que se transmite a la red. Los parámetros de la llamada se encapsulan en la transacción y la red los maneja de la misma manera que cualquier otra transacción. Cada nodo en la red ejecutará una llamada de contrato. Si una llamada de contrato modifica la base de datos de estado, se cambia el estado global.
Una llamada local no requiere una transacción. En cambio, pasa los datos de la llamada directamente al nodo local y los ejecuta solo en la máquina local. Una llamada local se ejecuta contra una copia de la base de datos estatal. Si la llamada local realiza cambios en el estado, estos cambios se descartan después de la ejecución.
Las llamadas locales se pueden utilizar para leer el estado del contrato sin gastar gasolina (para consultar el valor de una propiedad, por ejemplo). Una llamada local también puede ayudar a estimar los costos de gas sin necesidad de transmitir transacciones a la red principal”.
En nuestro contrato, ya hemos establecido el valor de Propietario cuando se implementa. Ahora, usaremos una llamada local para leer el valor del Propietario.
Parámetros | Valor | Descripción |
dirección del contrato | PFHuKUFBYRYjoAfQ5aamqpzuETrd9hNAuE | Dirección recibida en respuesta a la API de recepción |
métodoNombre | ObtenerPropietario | Nombre del método de contrato |
Monto | 0 | Cantidad STRAX enviar al contrato. |
precio del gas | 100 | precio de la gasolina |
límite de gas | 100000 | límite de gas |
remitente | PEpYnf7Zv5u4pTDGmvYPT2vktpop2VeCqj | Dirección del remitente |
parámetros | nulo | Parámetros del método |
La Respuesta debe contener el valor de retorno de la dirección del propietario.
{
"internalTransfers": [],
"gasConsumed": {
"value": 10040
},
"revert": false,
"errorMessage": null,
"return": "PEpYnf7Zv5u4pTDGmvYPT2vktpop2VeCqj",
"logs": []
}
Eso es todo.
¡Felicidades! Acaba de completar el primer paso para crear e implementar sus contratos inteligentes sobre la cadena de bloques de Stratis.
Autores:
Gracias, Divyang Desai y Rohit Gupta por crear y probar el documento inicial.
Stratis Platform es un producto de blockchain que ofrece un conjunto de herramientas para crear aplicaciones distribuidas basadas en blockchain (dApps). En este tutorial, aprendimos cómo instalar y configurar nuestra máquina de desarrollo local para ejecutar Stratis Blockchain localmente y crear, implementar y probar un contrato inteligente sobre la cadena de bloques local.
En la siguiente parte de este tutorial, ampliaremos esta aplicación de contrato inteligente para crear un caso de uso real de contratos inteligentes.
Fuente: https://www.c-sharpcorner.com/article/write-your-first-smart-contract-on-stratis-blockchain/