Skip to content

Remove personal namespace from geth #25948

Closed
@holiman

Description

@holiman

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/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.
    • has no corresponding method

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions