-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Remove/split out account management #9997
Comments
To be coordinated with Fether, who will take care of account management: openethereum/fether#148 |
also: hardware-wallet support is unused: #9622 |
What? Why remove what is working for million services without proper alternative first and proper migration guide? If you really want to remove it please make 3.x version of parity as it's super breaking change and I'm sure not many will want to update. |
@gituser @lazaridiscom please follow the general discussion that is being had around this topic within the community for more information. A quick recap is; a node should not manage private keys and it shouldn't be within the responsibility of a node to do so. There are many reasons for why this is bad, first is security, many peoples private keys have been stolen and funds have been stolen because of stupid mistakes like opening a port when they shouldn't have. This is something that has plagued blockchain nodes since before Parity existed and since before even Ethereum existed. Account management should be handled by a separate program, that you can run in a controlled environment, maybe even in a secure enclave itself, but regardless it should probably not be connected to the internet and not be remotely accessible. Designing the system this way is just better. Geth has already gone down this path.
Obviously the RPC API endpoints are still needed somewhere, just not in the client. If we went down this path we would provide an account management program such as described above that would also provide these endpoints (but perhaps changed so that they're not exposable to the internet). If you have any specific requests that would make your life easier, here and now would be the place to make those requests. Simply saying "No client should ever change" isn't helpful.
Why would you assume that this is the case? |
@folsen, regarding RPC API endpoints you can always disable those before starting parity, I don't see who will benefit if you remove/split those from the client. For example: the UI split resulted in negative impact for parity many users moved out of it because of the complications in the installation and maintenance. Regarding, security - you can always enforce best security default settings for node operators and let them decide what they want to open via settings. I'm not saying I'm against changes - but they should be rolled out slowly and imo there are many other more important bugs out there which needs fixing. Geth still have signing and account management inside the client I believe, at least
|
What is the alternative to personal RPC api endpoint? What should we use? The depreciation message says to look at this issue for alternatives, yet I couldn't see any alternatives here. |
@cemkod The recommended way is to manage the accounts on your own (preferably via secure hardware wallet) and submit signed transactions via That said before removing the methods completely we will most likely provide an alternative via JSON-RPC proxy that would handle signing (for instance using https://github.com/ethereum/go-ethereum/tree/master/cmd/clef) |
As out hotwallet is automated and in a datacenter somewhere, using a hardware wallet is not an option for us. A clef style account management software tool would work though. Please make sure everything is working flawlessly with the new tool before taking this out of parity though as I know many institutions like us depend on it. |
Can you remove the annoying line from logs:
as there is no real alternative at the moment? |
@5chdn @tomusdrw @folsen I am seeing this thread now for the first time because only now do I see the error message in Parity Questions and thoughts:
i. Fether is not stable enough for production ii. Fether is a graphical UI, and that also requires human involvement so is not a solution for automated systems. |
There is no real plan around when we want to deprecate this honestly, it's been shelved a little bit while we work on other stuff.
There are HSM solutions provided on most cloud providers but you can also buy HSMs if you have dedicated machines deployed.
clef would be an example of an existing alternative. |
I don't understand how this is related to the topic?
I will advise the developers. Thank you. But from reading the Readme it looks like clef requres user intervention. That won't work for an automated system. Maybe this is why you mentioned an HSM but at this moment I am not seeing a connection. EDIT: I should be clear. I know what an HSM is but the provider definitely does not offer this (and the app doesn't use a dedicated machine). But also I don't know how I would "tie into" the HSM with a Parity/clef key. Do you know of a doc or API reference? That's more of a clef question I think. Anyway thank you for the information and now it's up to the devs. |
This comment has been minimized.
This comment has been minimized.
Guys, calm down. We are planning to deprecate account management in the core client, but as you can see, no solid dates are mentioned, so it's only going to be removed if and when we make everybody happy with proposed alternatives. The reasons we would rather avoid having account management in the client itself is:
So alternatives we propose:
With (3) the transition would be almost seamless, it just requires running two separate processes. However the development of this solution has stalled a little bit, but as I mentioned earlier no one is really planning to leave you without a proper alternative that does not require substantial changes in your infrastructure. |
Ok |
@tomusdrw I appreciate your comment but no one (well... one person only) is getting excited.
Yes, that's why I'm glad to be in the thread. About your suggestions:
That is a good idea of course but I do not understand the specifics well enough. It is better of course to keep keys and key management away from the node, agreed. But what functionality would the client software use to send the transaction that is different from now? Basically the packaging of the data into a bona fide encrypted, well-formatted transaction has to take place away from Parity right? So where is the ruleset that client-side devs should follow? And to what RPC function should the data be sent?
Yes. This is appropriate for single transactions, only not batched.
Yes this is something I am asking some devs to research and I hope they (and maybe I) can contribute to that development as it continues. I also think my idea is not terrible as a temporary fix (say, 6 months after you do deprecate the function) which is:
|
--i-know-what-im-doing- use current rpc, ok) Use 127.0.0.1 no one has canceled. and if the user does not understand the essence, these are his problems. Imho |
But the news report will be "ETH stolen from Parity nodes" and we can understand the devs do not want this.
Yes this is a good point I think I did not specify. If the node only allows RPC on 127.0.0.1 then the security risk of maintaining the wallet is small. |
127.0.0.1 the most important thing is not to proxy through www and other tools. and everything is perfectly protected.) |
if you still change, do not forget to add the option (--i-know-what-im-doing) to use the current rpc standard. I really do not want to rewrite the mining pool code. Thank you for your answers and have a nice day)) |
@slavserver This is maybe a little un-related but which pool are you using? |
By the way, you may not have noticed, but parity no works with musicoin, callisto, expanse. parity uses the old branch of the blockchain, on these coins was recently hardfork |
Please, fix this error |
@slavserver please keep conversation on topic, make new issues for musicoin and callisto. PRs are also welcome - here's the expanse hard fork tracking issue: #10570 |
Simple Requires some docs though. |
In my case, I'm happy that you guys are looking for new alternatives however for some reason the nodes I have are stopping sync because the use of this 2. when i check the log the only thing keeps repeating is the following:
I have to stop the node and start again to continue sync. Hope you can provide some feedback about this. |
@mpirrongelli There is a new beta that might fix this. |
How should we keep the signer account for PoA (aura) authority nodes? |
Ideally, an Ethereum client should not contain account management and keystore.
Keys and transactions should be managed by external applications. Now that we removed the wallet from the client, this is a breaking, but easy to implement change. Maybe we double down our efforts on
ethstore
andethkey
.The text was updated successfully, but these errors were encountered: