Firmante de paridad personalizado: desbloquee cuentas mediante programación durante un tiempo determinado

Firmante de paridad predeterminado

¿Cómo puedo implementar un firmante de transacciones personalizado (que desbloqueará las cuentas sobre la marcha) y decirle al cliente de paridad que lo use?

No quiero desbloquear todas las cuentas al inicio (y mantenerlas siempre desbloqueadas). En su lugar, quiero establecer alguna lógica para el desbloqueo de cuentas en cada transacción, digamos:

if (isDay && accountAddress in [addr1, addr2, addr3])
    unlockAccount and signTransaction
else
    rejectTransaction

Estoy buscando en el módulo de firma JSONRPC como una posible opción, pero no puedo conectarme a la interfaz de usuario de Parity Signer usando websockets

Connect Error: Error: Server responded with a non-101 status: 403
Response Headers Follow:
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
server: Parity/SignerUI
content-length: 524
content-type: text/html
connection: close

Respuestas (2)

Parity toma una opción de línea de comando para mantener ciertas cuentas desbloqueadas:

Ejemplo:

   --unlock 0x001fc7d7e506866aeab82c11da515e9dd6d32c25 --password password.txt
No quiero desbloquear todas las cuentas al inicio.
@EdwardRuchevits, aclare lo que está buscando.
--unlockdesbloquea solo las cuentas enumeradas
@ 5chdn actualizó mi pregunta.
@MikkoOhtamaa Y los mantiene desbloqueados todo el tiempo. no lo quiero Por favor, vea mi pregunta actualizada.
@5chdn -> Usar web3.personal.unlockAccount()con un tiempo de espera. Consulte ethereum.stackexchange.com/a/12188/620 pero @5chdn necesita aclarar si Parity puede desbloquear la cuenta sin la interfaz de usuario web. Geth lo hace, pero no estoy seguro acerca de Parity.
La paridad puede hacer eso, .
Parece que necesito usar github.com/paritytech/parity/wiki/JSONRPC-signer-module para esto. El flujo esperado es: se envía tx y está pendiente de confirmación (se puede obtener usando signer_requestsToConfirm?), signer_confirmRequesto signer_rejectRequestse ejecuta automáticamente. No estoy seguro de cómo usarlo aunque (actualicé mi respuesta nuevamente).

Puede desbloquear una cuenta a través de RPC.

curl --data '{"method":"personal_unlockAccount","params":["0x8f0227d45853a50eefd48dd4fec25d5b3fd2295e","hunter2",null],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Para obtener más información, consulte https://wiki.parity.io/JSONRPC-personal-module#personal_unlockaccount