Dentro del servicio se utilizan principalmente tres tipos de contratos inteligentes ERC20/ERC721 y cuatro tipos de contratos inteligentes que determinan la recompensa.
PEl token de utilidad (ERC20) implementado en Polygon PoS. Se utiliza para recompensas de juego, restaurar la durabilidad de los picos, subir de nivel los picos y otros.
El límite de suministro es de mil millones de tokens y Brilliantcrypto, el emisor, puede emitirlos a su discreción.
Consulte aquí para obtener información sobre el momento de la emisión discrecional.
Un pico es un NFT (ERC721) implementado en Polygon PoS y es un elemento esencial para jugar. Cuando se compra en el mercado del juego, se almacena en la billetera de Brilliantcrypto con registros fuera de la cadena de propiedad del usuario. Cuando se transfiere fuera del juego, se mueve a la dirección de la billetera del usuario y sus actualizaciones de metadatos para reflejar las actualizaciones y los resultados del juego. Al transferir desde la billetera del juego integrada a la billetera Brilliantcrypto, los usuarios pueden volver a utilizarla dentro del juego (jugabilidad, subida de nivel y ventas en el mercado del juego). Para mercados externos se configura una Tasa de Regalías (ERC2981). También incorpora la funcionalidad del Registro de filtro de operadores proporcionado por OpenSea, lo que permite restricciones a las transacciones dentro de mercados específicos.
Una gema es un NFT (ERC721) implementado en Ethereum. Las gemas obtenidas de las recompensas del juego se pueden acuñar en NFT a discreción del jugador. Una vez acuñado, después de un período de gracia, Brilliantcrypto lo envía a la billetera del usuario. Al ejecutar una quema desde la billetera conectada al juego, los jugadores pueden volver a usar las gemas dentro del juego (como venderlas en el mercado del juego). Para mercados externos se configura una Tasa de Regalías (ERC2981). También incorpora la funcionalidad del Registro de filtro de operadores proporcionado por OpenSea, lo que permite restricciones a las transacciones dentro de mercados específicos.
Este es un contrato en la cadena de bloques Polygon PoS que se utiliza como referencia para permitir la determinación de la descripción general de la recompensa de la mina. Utiliza la identificación de la mina y un hash de bloque de Bitcoin. La descripción general de la recompensa de la mina incluye detalles como la cantidad de gemas y su tamaño aproximado. Este contrato se implementa por región, incorporando la información de probabilidad necesaria para determinar la descripción general de la recompensa de la mina para esa región. Una vez implementado, no se cambiará. Cuando se agreguen regiones, se implementará un nuevo contrato con lógica dedicada para esa región. Para obtener más detalles, consulte la sección "Recompensas mineras y lógica de determinación de gemas".
Este es un contrato en la cadena de bloques Polygon PoS que se utiliza como referencia para permitir la determinación de los detalles de las gemas extraídas en las minas. Utiliza la semilla de determinación de gemas, datos de descripción general de recompensas y un hash de bloque de Bitcoin. Los “detalles de las gemas” se refieren a la calidad, el tamaño y el corte de las gemas que se encuentran en una mina. Este contrato se implementa por región en el juego, incorporando la información de probabilidad necesaria para determinar la descripción general de la recompensa de la mina para esa región. Una vez implementado, no se cambiará. Cuando se agreguen regiones y gemas, se implementará un nuevo contrato con lógica dedicada para esa región. Para obtener más detalles, consulte la sección "Recompensas mineras y lógica de determinación de gemas".
Este es un contrato en la cadena de bloques Polygon PoS para la liberación de sitios de minería y el registro de datos sobre las minas adquiridas por los jugadores. Para obtener más detalles sobre su uso, consulte la sección "Recompensas mineras y lógica de determinación de gemas".
Se trata de un contrato en la cadena de bloques Polygon PoS para registrar el hash del bloque de Bitcoin que formará parte de la semilla. Para obtener más detalles sobre su uso, consulte la sección "Recompensas mineras y lógica de determinación de gemas".
A continuación se explica el proceso para determinar la descripción general de las recompensas de la mina y los detalles de las gemas.
*Dado que el tiempo de bloque de Bitcoin no es un valor definitivo, usaremos un bloque con un número arbitrario de bloques por delante del bloque de referencia para determinar los detalles.
*Si hay un retraso en el registro de la información del sitio minero a publicar, se cancelará la publicación de ese sitio minero. Además, si el hash del bloque de referencia para los detalles de las gemas no se registra antes de que aparezca el hash del bloque de Bitcoin utilizado para determinar los detalles de las gemas, la determinación de los detalles de las gemas se pospondrá hasta la próxima hora programada para la determinación de los detalles de las gemas.
Diagrama cronológico
Los dos componentes anteriores se utilizan como semilla para keccak256. A través de esto, se decide la cantidad de gemas y el tamaño de las mismas. El resultado no cambiará independientemente de cuántas veces se ejecute, ya que no se incluye ningún elemento aleatorio en la generación. El resultado tampoco se ve influenciado por las acciones del jugador.
*Se dejará una cantidad de tiempo suficiente antes de corregir este hash para permitir la finalidad del bloque. (esperando al menos 6 bloques después) Incluso en el caso de una reorganización significativa en Bitcoin, Brilliantcrypto no alterará el hash de bloque fijo registrado en este momento.
Los siguientes datos relacionados con el sitio minero tendrán formato json, estarán codificados y registrados en la cadena de bloques.
Al registrar estos datos en la cadena de bloques, se garantiza que las minas se liberen solo cuando no se determine la descripción general de las gemas.
Los siguientes datos relacionados con la adquisición de minas durante el período de adquisición de minas tendrán formato json, se codificarán y se registrarán en la cadena de bloques.
Al registrar estos datos en la cadena de bloques, se garantiza que las minas solo se puedan adquirir antes de que se determinen los detalles de las gemas.
Los tres componentes anteriores son utilizado como semilla de keccak256. A través de esto, se decide la calidad, el tamaño y el estilo de corte de la gema. El resultado no cambiará independientemente de cuántas veces se ejecute, ya que no se incluye ningún elemento aleatorio en la generación. El resultado tampoco se ve influenciado por las acciones del jugador.
*Se dejará una cantidad de tiempo suficiente antes de corregir este hash para permitir la finalidad del bloque. (esperando al menos 6 bloques después) Incluso en el caso de una reorganización significativa en Bitcoin, Brilliantcrypto no alterará el hash de bloque fijo registrado en este momento.
「Como se explica en "Lógica de determinación de gemas y recompensas mineras", se registran varios datos en la cadena de bloques. Al verificar estos datos, podemos demostrar que la información de la gema no ha sido alterada.
A continuación se explica el proceso de verificación.
Primero, obtenga los "Parámetros de determinación de gemas" necesarios para la verificación desde la aplicación. Abra la base de datos del sitio minero e ingrese el ID del token de la gema que desea verificar en el campo "Gema extraída" y busque. En los resultados de la búsqueda, haga clic en el icono a la derecha del nombre del sitio minero para obtener los "Parámetros de determinación de las gemas adquiridas".
*Solo los sitios mineros descartados se registran en la base de datos del sitio minero.
*No se devolverán datos cuando aún no se hayan determinado los detalles de la gema.
Luego, obtenga “Datos de Adquisición Minera”.
Al acceder a la "URL de la lista de adquisiciones", obtendrá una lista de los sitios mineros adquiridos durante el período objetivo en formato json.
Cada entrada de datos en "jewel_seed_hash" incluye SHA-256 "Semilla de determinación de gemas". Busque dentro del archivo para obtener datos del sitio minero (en adelante, "Evidencia del sitio minero") utilizando SHA-256 "Semilla de determinación de gemas".
Utilizando la información obtenida anteriormente, ejecute el método de contrato para su verificación.
*Consulte la “Información complementaria para la variación” para conocer los pasos para verificar la validez de los “Datos de adquisición del sitio minero”.
Llame al método de contrato para realizar la verificación. Para conocer el contrato que ABI debe llamar, consulte la "Información complementaria para la variación".
Obtenga el hash del bloque de Bitcoin para su verificación.
contract_block_evidence_address en "Mining Evidence" es la dirección del contrato del hash del bloque de Bitcoin registrado. Utilice BlockEvidence.json para ABI. Primero, obtenga el "hash de bloque de Bitcoin para descripción general de gemas". Llame al método getBlockForOverviewAndDetailReference.
Luego, obtenga "Hash de bloque de Bitcoin para detalles de gemas".
Llame al método getBlockForDetail para los siguientes parámetros.
El primer resultado (índice 0) es el "hash de bloque de Bitcoin para los detalles de las gemas".
A continuación se explica cómo verificar la descripción general de las gemas.
La dirección del contrato para determinar la descripción general es contract_jewel_overview_address en "Evidencia minera". Utilice MountainJewelOverview.json para ABI.
Llame al método confirmOverviews.
Cada entrada en la matriz devuelta representa la descripción general de la gema.
Cómo verificar los detalles de la gema según el resultado general de la gema.
La dirección del contrato para determinar los detalles es contract_jewel_detail_address en "Evidencia minera". Utilice MountainJewelOverview.json para ABI.
Llame al método confirmDetail.
El método devuelve datos para un conjunto de detalles de gemas.
Realice esto para todas las gemas devueltas por la verificación general para asegurarse de que estén incluidas en los resultados.
ABI del contrato de variación
Proceso de variación para la validez de los “datos de adquisición del sitio minero”
La dirección del contrato que almacena el archivo hash de “datos de adquisición del sitio minero” es contract_mountain_evidence_hash_address en “Evidencia minera” .” Utilice MountainEvidenceHash.json para ABI.
Llame al método getHash.
Verifique que el resultado obtenido coincida con el archivo SHA-256 “Datos de adquisición de sitio minero”.