[Ethereum] Ethereum Wallet vs. Mist (vs. Testnet vs. Mainnet)

ethereum-wallet-dappmisttestnetswallets

I'm having a bit of trouble completely understanding the inner workings of ETH and the Ethereum wallet UI vs Mist (when having used testnet), and I need to ask some rather stupid questions to understand the history and reasoning. If this is not the place, I apologize.

  • Generally i don't understand the difference between Mist and Etherum Wallet applications? What is the history of each ?

  • What I also not completely understand, is that a Wallet Contract and some tokens I believe I created on testnet seems to be visible in Ehereum Wallet even when having switched back to mainnet? If i transfer funds when in mainnet, to the above mentioned Wallet Contract, wouldn't they be lost?

I understand that an address can exist in both nets, and that if I have the pk for a particular address, I can retrieve the funds in any net, – but when it's a wallet contract that only exist on testnet, and not just an account, what happens?

  • How do I generally know if i "own" a Wallet Contract, and if I am able to access it and send funds from it? It is "attached" to my Etherbase address or how does that work?

  • Now if i open "Mist" application, everything is as I would probably expect, – I can see my main account, and none of the testnet stuff. Is all my troubles actually what Mist fixes ?

Thank you

Best Answer

Ethereum Wallet and Mist share the same source repository (https://github.com/ethereum/mist). Mist is a wallet enabled browser, and "Ethereum Wallet" is Mist but with the browser capability disabled, so you can use it as a wallet. I don't know about recent version but at some point you were able to switch between them with a command line option.

Mainnet y testnet are two independent blockchains. They use the same type or private keys, so you can use the same "address" in both, but you cannot exchange funds or tokens between the blockchains, each blockchain has its own independent state.

Ownership of a contract can mean different things. There's the address that has deployed the contract, but it has no other special properties over the contract, unless it is coded in the source code.

Ownable is common pattern used where there contract declares an special owner. Initially assigned to the deploying address, but it can be changed later. It provides a modifier to restrict access to critical methods only to the owner of the contract.

I'm no sure but I think Ethereum Wallet/Mist has a separate storage for mainnet/testnet, so you can switch between them without problem. But in any case proper care should be taken, make sure to backup your keys when switching because some operations cannot be reversed in case of a mistake.

Thanks to Thomas Jay Rush for confirming the separate storage for mainnet and testnet in Mist/Ethereum Wallet.

Related Topic