ethereum troubleshooting

This post is meant to be skimmed.Read the bold text and if you run into problems, the rest of the text will help you troubleshoot.Ethereum is an incredible platform.It enables anyone and everyone the power to play with programmable money like never before.Thus far the project has been relatively inaccessible to users that are not highly technical… Until now.Alex van de Sande and Fabian Vogelsteller have recently given us the Ethereum Wallet: probably the coolest wallet in Crypto.With their simple graphical user interface, finally non-developers can work directly with Ethereum, building tokens, DAOs and crowdfunding campaigns without needing to use the command line!I am one of the few people working in the Ethereum space that is not a developer, so I have a surprisingly unique perspective: the “not a hacker genius” perspective.I wrote this tutorial because there were more than a couple steps that were missing in other tutorials that seemed obvious to developers, but weren’t obvious to me.This tutorial assumes you have almost no experience with writing code but you have already had an introduction to Ethereum, maybe you even own some ether, but you have no plans on actually doing anything with it.

The surprising thing is that Ethereum’s programming language, Solidity, is extremely straightforward and easy to read, write and understand.In fact, this tutorial features a smart contract that I created!It is the first program I have written since a Java class I took over a decade ago.The smart contract that we use in this tutorial is a very simple notary-type contract that’s designed to simplify the management of a Will by decentralizing Will verification.The contract’s purpose is to allow its creator to discretely update their Will as they wish, and to allow other users to check to see if they have the most up-to-date version of the Will.Instead of storing the entire Will publicly as text on the blockchain, this contract hashes the text of the Will and stores the hash on the blockchain.It is a very simple contract.The smart contract can be found here and at the end of this tutorial.This tutorial was developed on the #ethereum_study_group channel on the Slock.it Slack (click to request an invite) if you have any questions or complications, that is the best place to ask for help!1.

Download the Ethereum Wallet, this tutorial was written for the 0.3.9 version on a 64-bit Windows OS, but it works just as well on the newer versions of the Ethereum Wallet.Note that any shortcuts that you have on your desktop from previous installs will still bring you back to that older version.2.Extract the zip file and run the Ethereum-Wallet file.Allow time for the browser to sync to the blockchain.Depending on your internet connection, this whole process could take one hour or ten hours.3.The Ethereum Wallet will ask you to make a password for your Etherbase Account (your main account).They recommend a strong password.If you are not going to store real ether on this account I recommend an easy password as you will have to type it many times.After you see how incredible Ethereum is, you will probably want to make a new account with a strong password and go get some ether, but for now, keep it simple.4.Work in the Testnet.Since this is just a fun learning exercise, once the wallet starts up go to Develop > Network > Testnet (Morden).

This will now require you to download the Testnet Ethereum blockchain.This blockchain is used for testing purposes since it is the exact same as the Ethereum blockchain, except it uses a coin that has no value.5.Get Testnet ether by mining or from a faucet.In the crypto world, you need to have currency to interact with the blockchain so you have 2 choices:Now you have the Ethereum Wallet loaded with Testnet ether and you can begin to use the Will Manager smart contract.If you were truly desiring to mange your Will using this smart contract the first step would be of course to write your Will.
linux or windows for bitcoin miningSince this is just a tutorial, you can skip this and create your Will on the spot.
bitcoin hazardsFor example, “Everything gets buried with me!”
buying bitcoin for darknet

or my favorite “asdf”.1.Go back to the Ethereum Wallet and go to CONTRACTS and DEPLOY NEW CONTRACT2.Paste in the code from the WillManager.sol contract which is found at the end of this tutorial and in my GitHub.Delete the default code in the text box first then paste it in.The most common error here is extra text pasted into the text box either at the top or at the bottom of the contract.
bitcoin oakland caOften the Wallet will tell you where the error is; “Error: :50:1” means there is an error on line 50 at character 1.3.
bitcoin greek crisisClick “Pick a contract”, select “Will Manager” then scroll down and click “Deploy.” This selection will appear to the right of the text box.4.
bitcoin dice walletType in your password.
ethereum analyst

A window will pop up asking for the password to the account that is deploying the contract.5.Navigate to the “Will Manager ####” contract.You will be automatically transported to “Wallet Overview” and once the next block has been found, a contract called “Will Manager ####” will appear in your transaction, click that text.6.
litecoin 75Click “Pick A Function” and select “New Will.” It is on the right, under “Write to contract.” This is the area that allows you to interact with the contract and the blockchain.
bitcoin explained in 90 secondsTo the left under “Read From contract” there are variables from the contract on display.The only one with a value from the beginning is “Will owner” which will match the account address that called the smart contract.7.Type out your Will in the box that appears under “Will — string” (in this case the text of the will is simply asdf) and click “Execute”.

A pop-up will appear; put in your password and click “Send Transaction”.8.Notice the change, your Will is now submitted to the blockchain.When the next block is found, the “Hash of will” will appear on the left (It’s the sha3 hash of the Will with 0x added to the beginning) and “Will created” will say Yes.9.Send the Will to your friends so they can check it.If this program was truly being implemented, at this point the writer of the Will would want to email all of their chosen verifiers of their Will 3 things:10.Your friends would need to get the Ethereum Wallet and add your “Will Manager ####” contract to it.The recipient of this information (effectively one of the executors of the estate) would download the Ethereum Wallet and follow the same steps above, but instead of deploying a new contract in step 9, they would click the WATCH CONTRACT icon and use the information from the previous step to find this contract on the blockchain and use the text in the simple .txt file to verify the Will.

If you have a friend to help you try this out, it is something worth practicing; it can be a little tricky.11.Set up a new account to test the contract works on your own.If you just want to create a second account to test the contract, go to WALLET and click the ADD ACCOUNT icon, after typing a new password twice ACCOUNT 2 will appear, click the icon for your new account.Then on this screen you can rename your account and copy your account’s address (starts with “0x”).Then use your Etherbase account to send some Testnet ether to it.12.Verify the Will with the new account.Now go back to CONTRACTS and get back into your Will Manager contract.Call the “Check Will” function as one of the verifiers of the Will would.Enter the text of Will if its not already there, use the “Execute From” drop down to select your second account, and click “Execute”, and type in your password to that account.Again when the next block comes, the area to the left will change, but this time “Will is correct” will change to “Yes”, “Hash of will being checked” will have the hash added, and “Last will checker” will have the address that was used to check the Will.

You will notice that the “Will Owner” and the “Last will checker” are different, and the “Hash of will being checked” and “Hash of will” are the same.13.Test the contract and notice the changes that occur.Feel free to play around by selecting “New Will” and “Check Will” and using different accounts to execute the function.Change the Will to something else when executing the function.You will see that the values to the left will vary accordingly.If an account that did not originally deploy the contract tries to call the “New Will” function, “Will created” will become “No” and The “Hash of will” will not change.If a user tries to verify a Will that doesn’t match the most current version of the Will then “Will is correct” will become “No” and the “Hash of will being checked” will not match the “Hash of will”.14.Now it’s your turn!Write your own smart contract!If I can do it so can you.Once you have it working.Join the #ethereum_study_group channel on the Slock.it Slack (click here to request an invite) and let’s test it out together!

See you on the Slack!Note that I started with Notareth as a base to start working, but the only thing that really survived was the empty() function and the formatting style (both of which I never would have come up with on my own, thank you Maran).Below is the code that can be pasted into the Ethereum Wallet, if you want to make changes to it or any other Ethereum contract code, I suggest using @chriseth’s Solidity Compiler as a work space.That is my first smart contract, WillManager.sol, but it was a little inefficient so Alex van de Sande was kind enough to simplify it.It is important in practice to be concise like this because every computational step costs gas (which is valued in ether, which is money!)You can see in my screenshots my wallet is decreasing as I execute the above contract.With the following contract the user would use a lot less ether.Thank you to @avsa, @lefteris, @zandy, @stephan and the many other contributors to this write up on the #ethereum_study_group channel on the Slock.it Slack.