Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A veces es necesario actualizar las opciones en tiempo de ejecución del intérprete de JavaScript ccF para ampliar la duración de la ejecución de la solicitud o actualizar el tamaño de asignación del montón o pila. En esta guía de procedimientos, aprenderá a actualizar la configuración del entorno de ejecución. Este tutorial se basa en el recurso CCF administrado (CCF administrado) de Azure creado en el tutorial Inicio rápido: Creación de un recurso CCF administrado de Azure mediante Azure Portal .
Prerrequisitos
- Python 3+.
- La versión más reciente del paquete de Python ccF.
Descarga de la identidad del servicio
Un recurso CCF administrado de Azure tiene una identidad única denominada identidad de servicio, representada por un certificado y creada durante la creación del recurso. Cada nodo individual que forma parte del recurso CCF administrado de Azure tiene su certificado autofirmado, aprobado por la identidad de servicio, que establece la confianza en él.
Se recomienda a los clientes descargar el certificado de identidad de servicio y usarlo para establecer una conexión TLS al interactuar con el servicio. El siguiente comando descarga el certificado y lo guarda en service_cert.pem.
curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem
Actualización de las opciones en tiempo de ejecución
Nota:
Al ejecutar los comandos en un equipo Mac, reemplace por date -Isdate +%FT%T%z.
- Prepare un archivo set_js_runtime_options.json y envíelo mediante este comando:
$ cat set_js_runtime_options.json { "actions": [ { "name": "set_js_runtime_options", "args": { "max_heap_bytes": 1024, "max_stack_bytes": 1024, "max_execution_time_ms": 5000, // increase the request execution time "log_exception_details": false, "return_exception_details": false } } ] } $ proposal_id=$( (ccf_cose_sign1 --content set_js_runtime_options.json --signing-cert member0_cert.pem --signing-key member0_privk.pem --ccf-gov-msg-type proposal --ccf-gov-msg-created_at `date -Is` | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem | jq -r ‘.proposal_id’) ) - El siguiente paso es aceptar la propuesta mediante el envío de un voto.
cat vote_accept.json { "ballot": "export function vote (proposal, proposerId) { return true }" } ccf_cose_sign1 --content vote_accept.json --signing-cert member0_cert.pem --signing-key member0_privk.pem --ccf-gov-msg-type ballot --ccf-gov-msg-created_at `date -Is` --ccf-gov-msg-proposal_id $proposal_id | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals/$proposal_id/ballots -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem - Repita el paso anterior para cada miembro del recurso CCF administrado.
- Una vez aceptada la propuesta, las opciones en tiempo de ejecución se aplicarán a las solicitudes posteriores.