Despliegue de un contrato
Después de compilar un contrato inteligente, puede desplegarlo en un entorno de Oracle Blockchain Platform Besu.
El proceso de despliegue crea las bibliotecas auxiliares y los proxies del UUPS necesarios, enlaza los contextos de token y cuenta y define el contexto de gobernanza. El token y la cuenta se despliegan en un estado inactivo. Solo se activan mediante el proceso de intención de despliegue.
Para desplegar un contrato compilado, obtenga la dirección del contrato de gobernanza anterior y su UUID de política del administrador de token de activos digitales. Obtenga una cuenta con permiso para desplegar y, cuando proceda, enviar la intención de despliegue. El formulario de despliegue requiere un contrato, un entorno, un ID de despliegue y metadatos de registro: ID de contrato inteligente, versión, descripción y autor. El ID de despliegue identifica un estado de despliegue que se puede reanudar; utilice un valor único y estable al reintentar el mismo despliegue.
Ciclo de vida del despliegue
- Compile el proyecto.
- Despliegue la pila de activos digitales de Oracle Blockchain Platform.
- Definir contextos de cuenta/token y gobernanza. (Los proxy están inactivos).
- Revise y ejecute la intención de despliegue para ambos componentes de proxy.
- Gobernanza sin opción: la propuesta tiene éxito y luego se activan los componentes.
- Gobernado: se completan las aprobaciones de políticas necesarias y, a continuación, se activan los componentes.
Nota:
Los proxies están inactivos inmediatamente después del despliegue. El despliegue correcto del contrato no significa que el token esté activo. La activación se controla mediante el contrato de gobernanza configurado para el despliegue, no mediante una actualización del UUPS.Crear un entorno Besu de Oracle Blockchain Platform
Un entorno de Oracle Blockchain Platform Besu almacena el host RPC de Oracle Blockchain Platform, no un punto final completo de JSON-RPC. La extensión deriva las rutas de Besu y gobernanza necesarias de este host.
- Abra la vista Entornos y, a continuación, seleccione Agregar entorno.
- Introduzca un nombre de entorno descriptivo. Por ejemplo, introduzca obp-test.
- Seleccione Oracle Blockchain Platform Besu para Tipo de entorno.
- Introduzca el host URL de RPC. Por ejemplo, introduzca https://rpcproxy.example.com:443.
El host de URL de RPC debe ser solo un origen
httpohttps, no una ruta de acceso de punto final, una cadena de consulta, un fragmento, un nombre de usuario o una contraseña. Por ejemplo, introduzcahttps://rpcproxy.example.com:443, nohttps://rpcproxy.example.com:443/v1/besu/proxy. - Introduzca el ID de cadena de la red.
- Introduzca el token de autorización que requiere el proxy RPC.
- De manera opcional, defina Gas Price Wei, Allow Self Signed y una CA Certificate Path para una autoridad de certificación privada. Deje Cuentas BESU vacías a menos que el modelo de despliegue requiera específicamente la firma sin custodia. Los despliegues del servicio de cartera de Oracle Blockchain Platform recopilan los detalles de firma por despliegue.
- Seleccione Crear.
Para el host almacenado de Oracle Blockchain Platform, la extensión deriva el punto final de proxy de Besu y utiliza el punto final de intención de gobernanza de Oracle Blockchain Platform. Esto mantiene el entorno portátil entre las operaciones de despliegue, ejecución y gobernanza.
El entorno Hardhat Local Node integrado está disponible para el desarrollo local y no es necesario guardarlo. No es un entorno de Oracle Blockchain Platform.
Despliegue en un entorno Besu de Oracle Blockchain Platform
- En el panel Contratos, abra el formulario Desplegar/Ejecutar del proyecto y seleccione el separador Desplegar.
- Seleccione el paquete de contrato y el entorno de Besu.
- Introduzca un ID de despliegue o mantenga el ID de despliegue mostrado.
- Complete los metadatos de registro necesarios. El nombre del token de tiempo de despliegue, el símbolo, la descripción, el URI y los ID de administrador son opcionales. Los valores vacíos utilizan los valores por defecto del script de despliegue.
- Introduzca la información de firma del servicio de cartera que se muestra para el entorno de Oracle Blockchain Platform.
- URL de signo de servicio de cartera
- Cuentas de servicio de cartera, una matriz JSON de objetos de dirección/ID de cartera
- Token de autenticación de servicio de cartera
- Seleccione Next (Siguiente).
- En Opciones de despliegue, introduzca la Dirección de contrato de gobernanza y el UUID de política y, a continuación, seleccione Desplegar.
Blockchain App Builder ejecuta el script de despliegue de Hardhat generado a través de la red Oracle Blockchain Platform Besu, utilizando los valores de servicio de cartera solo para ese despliegue. Despliega o reutiliza los componentes necesarios, define sus contextos y devuelve las direcciones de proxy de cuenta y token. Ambos proxies están inactivos.
Envío de la intención de despliegue
Una vez finalizado el despliegue inactivo, la sección de gobernanza se rellena con los valores desplegados Destino de token y Destino de cuenta. Mantener ambos objetivos en la intención. Cada uno es un proxy EIP-1967; la gobernanza activa el proxy en su dirección de implementación resuelta y hash de código de tiempo de ejecución.
- Confirme los destinos de token y cuenta. Sustituirlos sólo si se propone intencionadamente un par de proxy existente.
- Introduzca una fecha límite de propuesta futura.
- Para Oracle Blockchain Platform Besu, introduzca la dirección de origen autorizada por la política seleccionada. El entorno seleccionado debe tener un host de URL de RPC y un token de autorización.
- Para otros entornos de EVM, seleccione una cuenta de emisor de llamada o introduzca la clave privada del emisor de llamada. La aplicación deriva la dirección del remitente de esa clave.
- Seleccione Revisar. La extensión resuelve el hash de código de implementación e implementación de cada proxy y, a continuación, muestra la intención propuesta.
- Verifique el UUID, la fecha límite, los destinos de proxy, las direcciones de implementación y los hashes de código.
- Seleccione Enviar.
En el caso de un entorno de Oracle Blockchain Platform, la extensión envía la intención revisada mediante el punto final de gobernanza del servicio de cartera de Oracle Blockchain Platform. Para otros entornos de EVM, envía una transacción proposeDeployIntent firmada directamente al contrato de gobernanza a través de JSON-RPC.
Si cambia la dirección de gobernanza, el UUID, los destinos de proxy o la fecha límite después de la revisión, la vista previa se invalidará. Revise la propuesta nuevamente antes de enviarla.
Activación de gobernanza
El mismo flujo de trabajo de intención se utiliza para ambos tipos de gobernanza. La diferencia es lo que sucede después de que el contrato de gobernanza acepte la propuesta:
- Sin opción: una llamada
proposeDeployIntentcorrecta activa los componentes incluidos inmediatamente. Confirme la transacción o la respuesta de Oracle Blockchain Platform y, a continuación, verifique el estado activo del token. - Gobernado: la intención enviada permanece sujeta a la política configurada. El token y la cuenta se activan solo después de que las aprobaciones necesarias se hayan recibido antes de la fecha límite.
La extensión envía la intención; no suplanta ni omite aprobadores de gobernanza. Para una política gobernada, utilice el proceso de aprobación de la organización y espere a que se active el contrato de gobernanza. Si la política rechaza o caduca la intención, corrija la causa y, a continuación, envíe una nueva intención válida. El despliegue por sí solo no activará los proxies.
Nota:
Después de desplegar un contrato, los archivos de manifiesto se generan en la carpeta.openzeppelin en la raíz del proyecto. Para las redes de producción (no las redes de desarrollo), confirme estos archivos en el control de origen. Para obtener más información, consulte Network Files en la documentación de OpenZeppelin.
Solución de errores de despliegue
| Condición | Resolución |
|---|---|
| No se puede guardar el entorno de Oracle Blockchain Platform | Introduzca un origen HTTP o HTTPS sin una ruta de acceso de punto final. El campo Oracle Blockchain Platform solo espera el host. |
| La revisión de gobernanza indica que el entorno de Oracle Blockchain Platform necesita un host de URL de RPC y un token de autorización | Actualice el entorno guardado de Oracle Blockchain Platform con ambos valores y, a continuación, ábralo o selecciónelo de nuevo. |
| Faltan códigos de byte de tiempo de ejecución en los informes de revisión de gobernanza | Verifique las direcciones de red y proxy/implementación seleccionadas. No envíe una intención a un destino que no esté desplegado. |
| El despliegue se realiza correctamente, pero el token está inactivo | Envíe la intención de despliegue. Para una gobernanza gobernada, espere a todas las aprobaciones de políticas; para una gobernanza sin operaciones, confirme que la transacción de la propuesta tuvo éxito. |
| La propuesta no se puede enviar después de cambiar los campos | Vuelva a seleccionar Revisar. La aplicación invalida deliberadamente una vista previa obsoleta. |