We have long been wanting to remove account management from geth. This proposal is a step towards that, by removing the personal namespace from geth.
With the upcoming 1.11 release, I think this would be a good time to do it.
UX affected
I think the most blatant PITA for users would be in scenarios where geth is used to sign clique blocks. However, it's a one-time effort to switch to use clef instead. Docs here: https://geth.ethereum.org/docs/clef/cliquesigning
Methods affected
Methods which have other alternatives
personal.listAccounts
personal.listAccounts is identical to eth.accounts
personal.deriveAccount
personal.deriveAccount is identical to clef_deriveAccount (not externally exposed)
personal.openWallet
personal.openWallet corresponds to clef_openWallet (not externally exposed)
personal.sign
personal.sign prefixes data with eip-191 string, and signs.
Has corresponding clef-method.
personal.listWallets
opposed to listAccounts, this method lists full details, e.g. usb path or keystore-file paths
corresponds to clef_listWallets (not externally exposed)
personal.ecRecover
returns the address for the account that was used to create the signature.
corresponds to EcRecover on clef extapi
personal.sendTransaction
SetDefaults
Sign
Submit
personal.signTransaction
Does not do SetDefaults, but requires all args set
Sign, return RLP
personal.newAccount
Exists in clef (not externally exposed)
also geth account new
personal.importRawKey
personal.importRawKey corresponds to clef_importRawKey (not externally exposed)
personal.importRawKey corresponds to geth account import
Methods that do not have other (direct) alternatives
personal.unpair
Unpair deletes a pairing between wallet and geth.
No corresponding method
personal.unlockAccount
replaced by rules in clef
personal.lockAccount
replaced by rules in clef
personal.initializeWallet
InitializeWallet initializes a new wallet at the provided URL, by generating and returning a new private key.
Rationale
We have long been wanting to remove account management from geth. This proposal is a step towards that, by removing the
personal
namespace from geth.With the upcoming
1.11
release, I think this would be a good time to do it.UX affected
I think the most blatant PITA for users would be in scenarios where geth is used to sign clique blocks. However, it's a one-time effort to switch to use
clef
instead. Docs here: https://geth.ethereum.org/docs/clef/cliquesigningMethods affected
Methods which have other alternatives
personal.listAccounts
personal.listAccounts
is identical toeth.accounts
personal.deriveAccount
personal.deriveAccount
is identical toclef_deriveAccount
(not externally exposed)personal.openWallet
personal.openWallet
corresponds toclef_openWallet
(not externally exposed)personal.sign
personal.sign
prefixes data with eip-191 string, and signs.personal.listWallets
clef_listWallets
(not externally exposed)personal.ecRecover
EcRecover
on clef extapipersonal.sendTransaction
personal.signTransaction
personal.newAccount
geth account new
personal.importRawKey
personal.importRawKey
corresponds toclef_importRawKey
(not externally exposed)personal.importRawKey
corresponds togeth account import
Methods that do not have other (direct) alternatives
personal.unpair
personal.unlockAccount
personal.lockAccount
personal.initializeWallet