Migrar la aplicación Etereum desde un nodo independiente a INFURA

Tengo mi propio nodo implementado en Amazon y backend/frontend para trabajar con él y funciona bien: transacción ejecutada, eventos capturados. Ahora quiero usar INFURA en lugar de mantener mi propio nodo y confundido sobre cómo resolver la siguiente situación:

Tengo un par de funciones en contrato que están disponibles solo para el propietario y están protegidas por modificador. En mi propio nodo, funciona de esta manera: primero desbloqueó la cuenta del creador del contrato (el formulario de la interfaz de usuario contiene el campo de contraseña de la billetera), luego, si tiene éxito, ejecutó la función protegida. Solo es posible cuando tengo un archivo de claves en el nodo.

Pero cuando migre a INFURA, no tendré acceso a esta billetera y, por lo tanto, no podré desbloquearla. Solo veo una forma: solicitar la clave privada del creador en lugar de la contraseña, luego crear una transacción sin procesar, firmarla y enviarla a la red.

Pregunta: ¿es la única forma de ejecutar funciones protegidas o me perdí algo más simple que esto?

Mi pila es: Solidity, Node, Truffle, Web3, etc.

No estoy seguro de cuál es el caso de uso para su aplicación, pero si es de grado de producción, dudaría en usar Infura. Usamos Infura por un tiempo, pero encontramos varios problemas con ellos que devolvían datos inconsistentes debido a la forma en que está diseñado su sistema (equilibrador de carga frente a muchos nodos diferentes). Cambiamos a Alchemy ( alchemyapi.io ) y hemos tenido respuestas más consistentes.

Respuestas (1)

Puede enviar una transacción firmada, entonces no necesita el archivo de claves en el nodo. Consulte la respuesta a esta pregunta sobre cómo firmar transacciones. Utilice eth.sendRawTransaction para enviar la transacción firmada.

Sé cómo hacer una transacción sin procesar y firmarla. Mi pregunta es si es solo camino o no.
Muy bien, solo quería asegurarme de que está claro que firmar una transacción y enviarla como transacción sin procesar es definitivamente un enfoque diferente al que describiste en tu pregunta. Y sí, creo que en este caso es la única forma, y ​​la forma adecuada y segura.