MENU

Raspberry Pi 3, Node and Ethereum

March 6, 2018
0
2819
0
Ever wanted to receive payment with a cryptocurrency and then enable an action such as open a door or turn on a light? Here is a quick overview of how this can be done with Ethereum, a Raspberry Pi and Nodejs. Summary The idea is to display a QR code on a tablet where payments can be made with crypto and upon receipt of payment an LED is turned on. The webpage is running on a Raspberry Pi which is also running geth which is the Ethereum blockchain client. The neat thing is that there is an experimental “light” sync mode that only obtains the current blockchain state and only requires ~400Mb of disk space. See it in action In the video above I use Metamask to make the test ether payment. It takes about 30 seconds for the transaction to be acknowledge and the LED to light up. Html Payment Page The payment page basically consists of a QR code for the user to make a crypto payment and in the background, it connects to the local Ethereum blockchain to get the current balance and to listen for the next block to arrive. When it does, it queries the […]
Read More ›

How to run Ethereum on a Raspberry Pi 2

March 2, 2018
0
2489
0
Interested in getting Ethereum running on a Raspberry Pi 2? Here are some simple steps: Step 1: You get, I get, We get >> wget https://gethstore.blob.core.windows.net/builds/geth-linux-arm7-1.8.1-1e67410e.tar.gz Of course this means you know what wget is (a way to download files using cmd) and you have already ssh’d into your raspberry pi with something like ssh pi@192.168.x.x Where did this link come from? It came from https://geth.ethereum.org/downloads/ Search for Linux -> armv7 for the Raspberry Pi 2 and you’ll find the link. This is important to know because you’ll want to change the link to retrieve the latest binary. Step 2: Lay down the tar-seal and zip it up >> tar -xvf geth-linux-arm7-1.8.1-1e67410e.tar.gz The file downloaded is a tar or a “Tape Archive” in reference to the good old days when files would be put on “tapes” and then archived for storage. It is also known as a tarball. It stores multiple files together as a single file. gz  stands for GNU zip which compresses it. This is the equivalent of Winzip in the windows world. The x flag extracts it, v stands for verbose output, telling the user what is happening in more details and f tells tar to use the file […]
Read More ›

CustomContracts is not defined at

February 20, 2018
0
2773
0
Trying to delete a contract in Mist and getting this error? VM659:1 Uncaught ReferenceError: CustomContracts is not defined at <anonymous>:1:1 There is a work around you’ll find useful. Right click in the Contracts window and click Open developers tools. It should have an autocomplete and you should be able to run CustomContracts.find().fetch(). Expand an object, grab the _id and run CustomContracts.remove(“put_id_here”)  
Read More ›

Connecting Geth to MetaMask and Mist

February 8, 2018
0
3064
0
If you have geth, the Go Ethereum client running and you want to connect Mist or MetaMask to you get a nice front end, here is how you do it. Start geth with: > geth --datadir ./chaindata init ./myGenesisFile.json Note: If you don’t have a genesis file, one is provided at the end. The run > geth --datadir ./chaindata --networkid 1994 to spin up the private Ethereum blockchain Mist The easiest way to connect Mist to this private blockchain is to start it via command line and passing in the location of the ipc file with the rpc flag. > ./Mist --rpc /Users/cloudnthings/privatechain/chaindata/geth.ipc You should get the word PRIVATE-NET at the top. Click Launch Application and you should be away. If you get this error: NCAUGHT EXCEPTION { Error: connect ENOENT Users/cloudnthings/privatechain/chaindata/geth.ipc Then it means you have your syntax wrong. The most common mistake is not having a double dash before rpc (- – rpc) MetaMask To connect to MetaMask, you need to start the private Ethereum blockchain with an extra rpc flag. > geth --datadir ./chaindata --networkid 1994 --rpc You can connect to the blockchain as per normal via geth attach like so: > geth attach http://127.0.0.1:8545 or in MetaMask, simple choose localhost […]
Read More ›

What is Geth?

January 23, 2018
0
4463
0
Understanding how to download and interact with the Ethereum blockchain is a crucial part for anyone learning Ethereum. There are several popular clients to work with the Ethereum blockchain. They are: eth – a client written in C++ geth – a client written in Go pyethapp – a client written in python There’s also Haskell and Java. There is a more detailed description here. Here we will focus on Geth. What is Geth? Geth is a multipurpose command line tool that runs a full Ethereum node implemented in Go. It offers three interfaces: the command line subcommands and options, a Json-rpc server and an interactive console. Downloading Geth There are several ways to download Geth. One is to visit https://geth.ethereum.org/downloads/ and download the latest version suitable for your OS. Another option is to use brew for OSX users. Follow the instructions here. With brew, the steps are essentially: brew tap ethereum/ethereum brew install ethereum What this does is install the geth client at /usr/local/Cellar/ethereum/1.7.3/bin Then you can go to your terminal and run >> geth When you run this command, geth will start downloading the entire blockchain onto your laptop. The location of the chaindata will be shown in the terminal window. […]
Read More ›

Smart contract workshop #2: Remix and MetaMask

January 14, 2018
0
3452
0
It was great to see the dedicated ones turned up yesterday on a beautiful Saturday morning to learn about MetaMask and Remix and deploy a hello world smart contract. We went through the following topics: Install MetaMask Get some test ether Mixing it up with Remix Hello World Compile and deploy captain! Interactive with your smart contract Understanding the code Bonus code It really was about downloading and installing MetaMask, getting some test ether, opening Remix and deploying 4 lines of code and seeing the contract on the Etherscan. It was great to see some new faces and hopefully the learning by doing is helping those who actually want to get a better understanding of what this technology can do. Next week we’ll be looking at MyEtherWallet (MEW) and also creating professional paper wallets on photographic paper with holographic stickers as souvenirs or gifts or just if you want something physical to tuck under your mattress. There will be a catch up meetup on Tuesday 5:30pm for the city folks. Details of that can be found at: https://www.meetup.com/smartcontracts/events/246629747/ If you missed the meetup but want to check out the topics, visit: https://blockchains.learndot.com/ and connect with us on Telegram: https://t.me/joinchat/G84KThDRZaXOJsxa7oQHmw Catch everyone next week.
Read More ›

Hello World Ethereum Smart Contract

January 4, 2018
0
3371
0
Introduction There are lots of simple Ethereum Hello World tutorials around to cater for everyone’s level. This tutorial builds on a 2016 version by Karl Floersh and attempts to keep things very simple. All that is required to be installed is Meta Mask which is currently a Chrome only plugin and is essentially an Ethereum light client browser plugin. More formally: “MetaMask is a bridge that allows you to visit the distributed web of tomorrow in your browser today. It allows you to run Ethereum dApps right in your browser without running a full Ethereum node.“ Outcome To deploy a hello world smart contract on the Ethereum network. Here is the code. It’s 1 contract consisting of 1 function and 1 event. contract HelloWorld { event log_string(bytes32 log); // Event function () { // Fallback Function log_string("Hello World!"); } } This guide should only take about 10 minutes to follow. Step 1: Install MetaMask In Chrome, search for MetaMask and install it as a plugin. Then create an account and change the network to Ropsten. This is the test network. In order to get some test ether, click “BUY” and click “Ropsten test Faucet”. This will take you to https://faucet.metamask.io/ […]
Read More ›

Smart Contract Workshop #1 – Mist

December 30, 2017
0
3196
0
It was great to see bunch of dedicated people gather at 1st Assembly in Lower Hutt to learn Mist, an Ethereum browser and wallet. The tasks were: Downloading Mist Syncing Mist Saving space Mining test ether Creating new accounts Sending ether between accounts The main challenge was downloading the 8Gb Ropsten testnet blockchain. We had some USB’s to pass around with the testnet blockchain on it, but copying that amount of data took a bit of time. For those interested in the workshop content, you can see what we went through at https://blockchains.learndot.com. Register an account, go through the notes and exercises. The process of doing the task created lots of questions such as: What is the difference between Mist and Ethereum Wallet? How do I change networks? How do I know if it is mining test ether? Where do I put the chaindata file? and many more In the end most managed to sync Mist, mine some test ether and send them between accounts which was great to see. In the coming workshops we’ll be building a Hello World smart contract, learning about tokens and eventually building an EIP20 token. There is no pre-requisite knowledge required because we’ll all end […]
Read More ›

Ethereum Smart Contract Revamp

December 28, 2017
0
3115
0
I’ve been meaning to jump back into smart contracts for a while now and thought what better time than now with so many experts around me. Here is one of the most simplest contracts you can write in Remix, which is an amazing online Solidity IDE written by some Russian Einstein like kid. pragma solidity ^0.4.17; contract light { event TurnLightOn(string thing); function () public { TurnLightOn("We should turn the light on"); } } It should be self explanatory but just in case, all smart contracts need to start with the pragma first line otherwise you’ll get a compilation error. The contract is given a name called light, it generates an event and has a public fall back function. A fall back function is how The DAO hack happened. It is a default function that gets called when no function is specified. Officially “Fallback functions are triggered when the function signature does not match any of the available functions in a Solidity contract.” This was for the hackathon so don’t use this code for real. In remix click the details button and you’ll the commands to deploy the code. Now comes the tricky part! You can’t just copy and paste […]
Read More ›

Symlink Mist data directory to save 52Gb

December 25, 2017
0
2953
0
When you download Mist and try to sync the Ethereum blockchain, your Ethereum folder will be in the following location: Mac: ~/Library/Ethereum Linux: ~/.ethereum Windows: %APPDATA%/Ethereum To save space, you can put your chaindata folder in another location such as a removable USB drive. Above you can see my chaindata folder is actually a symbolic link. To create a symbolic link run this command: > ln -s /Volumes/myUSBdrive/Ethereum/chaindata ~/Library/Ethereum/chaindata What I’ve done is I’ve put my 39Gb chaindata folder on a thumb drive and I’m linking to it. The reason why it’s 8.43Gb is because I haven’t removed test net yet. Testnet is 8.24Gb. Once this is removed, even more space will be saved. The other option is to create a symbolic link to the entire Ethereum folder but this results in an error where Mist is looking for a geth.ipc file which is created upon startup but it can’t because of the symbolic link. This is the easiest and quickest way to have the data directory located in a non default location. This is different to bitcoin-qt where the location can be specified in the configuration file. Ref: https://ethereum.stackexchange.com/questions/3307/in-mist-browser-how-can-i-move-the-data-blockchain-to-another-drive-on-mac-osx    
Read More ›

Sydney Tyro FinTech Hub Ethereum Workshop

November 18, 2017
0
2588
0
It’s Friday night and a bunch of us gather at the Tyro FinTech Hub in the heart of Sydney to talk Ethereum, Hackthons and Crypto. The Tyro FinTechHub opened in March 2015 to act as an exchange for ideas and to provide a place for the country’s most ambitious fintech entrepreneurs to meet and work. It’s basically a shared co-working space in the day time and a place for meetups in the evenings. Bokky is the main driver sharing his experience on Ethereum and on this occasion others contributed by sharing ideas for the Hackathon being held next weekend. There was wine, beer, snacks and of course pizza. The neat thing is that if you have any questions, it’s a good place to come and ask and learn from others more experienced than you. There is another session coming up on Monday where Bokky will be talking about Ethereum wallets and signing and possible a BTT audit.
Read More ›

SydETH: Plasma and Programmable Money

October 30, 2017
0
2882
0
The Sydney Ethereum meetup is bordering on a being a full on event. The meetups are scheduled but RSVPs are closed until 3 days before and when it opens at 6pm, the slots fill up fast. It was held at Optiver this time around which is a trading house with an amazing atrium!    The meetup was capped at 150 with 74 people on the waitlist. Everyone had to sign in and take an elevator to the 7th floor. There were drinks and pizzas that were sponsored and a mix and mingle session prior to the start.    There were two talks at this meetup.  Jeremy Lam, product lead from OmiseGO gave a great non-technical explanation on plasma. He spoke slowly and clearly and gave great analogies. One example was an explanation of sharding which is a way of splitting up data so that different computers can process them in parallel. This is like taking a dictionary and splitting it into 26 dictionaries dedicated for each letter of the alphabet. Nick Addison, co-organiser of the meetup and CTO of AgriDigital gave an overview of programmable money and has written a neat smart contract that distributes 1000 SydEth token to each member. Nick […]
Read More ›

A Webpage for Selling Energy to your Neighbour

May 4, 2017
0
3253
0
It may seem like not a big deal but it’s the little things that count. I decided to build a simple webpage that displayed the same figures that could be seen on the command line but there was just something about the familiarity with seeing a webpage versus seeing a terminal screen.   As you can see the values are the same but it added a bit more work. It was worthwhile though. The trick with getting a webpage to talk to the blockchain and display the information is to use javascript to create a connection to testrpc on port 8545 in this case and to contract address and update this each time you deploy the contract. The source code is available at https://github.com/seandotau/mpower where it should be self explanatory if you have some basic javascript skills.
Read More ›

An Ethereum Hello World Smart Contract for Beginners part 2

April 22, 2017
0
3861
0
If you followed part 1 of creating smart contracts on Ethereum and you got the contract running successfully then congratulations. Here in part 2, I’ll go through how you can get the same smart contract working on a real blockchain. The Ethereum testnet blockchain instead of testrpc which is like an in memory private blockchain simulator. Step 1: Download geth The first step is to download geth (basically Ethereum that is written in Go). This is the Ethereum client that is going to run the Ethereum blockchain. Here are the instructions for OSX > brew tap ethereum/ethereum > brew install ethereum (From: https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Mac) Then run it with: > geth --testnet and leave this terminal open. If you forget the testnet flag, you’ll end up downloading the real chain. ie THE Ethereum blockchain. Step 2: Download Mist (optional) I found downloading Mist convoluted but it gave me a chance to really learn how things worked. Mist is a graphical application that contains geth and an Ethereum wallet. This was confusing at first because you can also download an Ethereum wallet by itself. The advantage of Mist is that you can see the accounts, create new accounts and practice transferring ether all […]
Read More ›

An Ethereum Hello World Smart Contract for Beginners part 1

April 17, 2017
0
4954
0
Venturing into the world of building smart contracts on Ethereum can very daunting at first. Where do you start? https://www.ethereum.org/greeter is not a great place to start because it doesn’t give any context or start with the basics. Once you’ve built your first smart contract, the greeter makes a lot more sense. https://medium.com/@ConsenSys/a-101-noob-intro-to-programming-smart-contracts-on-ethereum-695d15c1dab4 is pretty good. What I wanted was more simple and basic though. I continued searching and plucked bits and pieces from all over the place and this is what I’ve come up with. A super simple smart contract on Ethereum In this article, I’m going to demonstrate how to build a very simple smart contract. This smart contract allows the user to deposit tokens and allows the user to query for the balance. Two simple functions. Step 1: The code The comments should explain what the code does. // A simple bank smart contract where the user // can deposit and query funds. // by @seandotau 16 April 2017 // This needs to be the first line. pragma solidity ^0.4.0; // give your contract a name contract aBank {          // this declares a key/value array called balanceAccount.     // the key is address and […]
Read More ›

geth attach on testnet error

April 9, 2017
0
3467
0
If you are trying to run the command geth attach and you get this error > Fatal: Unable to attach to remote geth: dial unix /Users/<username>/Library/Ethereum/geth.ipc: connect: no such file or directory it is because geth cannot find the file geth.ipc. This typically happens when you have run geth –testnet. This file gets generated at run time. To fix this, run geth attach with the additional ipc command. ie > geth attach ipc:/Users/<username>/Library/Ethereum/testnet/geth.ipc and that should do the trick! Installing Solidity on OSX If you are trying to install Solidity on OSX these are the commands you need to run. brew update brew upgrade brew tap ethereum/ethereum brew install solidity brew linkapps solidity If you get this error: ==> Installing solidity from ethereum/ethereum Error: You must `brew link cmake` before ethereum/ethereum/solidity can be installed it means you need to run “brew link cmake” as instructed. If you run brew doctor you will find a similar reason. Warning: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built. Run `brew link` on these:   cmake The tricky part is that when you […]
Read More ›

Don’t forget what self sovereign identity system uPort doesn’t claim to do

February 19, 2017
0
3792
0
Introduction uPort is a neat concept of self sovereign identity but there is one thing to keep in mind. uPort is a neat concept of self sovereign identity but there is one thing to keep in mind. It doesn’t remove the need for trust in 3rd parties but instead users choose the 3rd parties they want to trust. Firstly, lets do a quick recap on the basic concepts. Firstly, lets do a quick recap on the basic concepts Basic concepts Self sovereignty can be thought of as having self authority or for yourself to be in control of something. Self Sovereign Identity is the ability to own and control your identity. Another neat definition is: “Self-sovereign identity is a concept where the individual has ultimate control over their identity and is the final arbiter of who can access and use their data and personal information” – John Lilic ( ConsenSys). This is an interesting concept because have you ever stopped to think if you actually own your identity? Your name, your date of birth (D.O.B), or your work experience that you display on LinkedIn, who owns that? Your hobbies, the places you have visited, your martial status on Facebook, who owns that? […]
Read More ›

Ethereum Mist flag provided but not defined

December 26, 2016
0
5084
0
I downloaded Mist-win64-0-8-7.exe and had Mist 0.8.7 running on Windows 64 bit 8.1. Then a few days later I tried opening it and got this message: Couldn’t connect to node? See the logs for more: Node type: geth Network: main Platform: win32 (Architecture x64) … flag provided but not defined: -support-dao-fork I was at a loss. Googling actually didn’t turn up anything useful at all which was even more surprising. The way I eventually resolved this was to download the latest version (0.8.8) which loaded up correctly and re-sync. No funds were lost things are back to normal again!
Read More ›

Ethereum reference links

December 18, 2016
0
4687
0
Here is a neat site with lots of Ethereum related links: http://cryptocentral.info/topic/11/ethereum-eth-pow-pos-ethash Replicated here in case that link breaks. Website: https://www.ethereum.org/ http://wiki.ethdev.com Documentation: https://www.cryptocompare.com/mining/guides/how-to… https://github.com/ethereum/go-ethereum/wiki/Minin… https://ethereum.gitbooks.io/frontier-guide/conten… https://github.com/ethereum/wiki/wiki https://blog.ethereum.org Stats: https://stats.ethdev.com/ https://eth-status.org/ Forums: https://forum.ethereum.org/ https://www.reddit.com/r/ethereum Developers: http://ethdev.com/ Wallets: https://github.com/ethereum/mist/releases/download… Online wallet: https://ethereumwallet.com/ The following full-node implementations of Ethereum are available: Geth, written in Go Eth, written in C++ Ethereum J, written in Java pyethapp, written in Python ethereumjs, written in JavaScript ethereumH, written in Haskell Ethereum Blockchain As a Service On Azure: https://azure.microsoft.com/en-in/blog/ethereum-bl… Block Explorer: https://live.ether.camp/ https://etherscan.io/ https://www.etherchain.org/ http://ether.fund/explorer https://explorer.etherapps.info/ https://tradeblock.com/ethereum/ https://github.com/etherparty/explorer (Git Source) https://ethereumblocks.info/ Exchanges: https://poloniex.com/exchange/btc_eth https://www.gatecoin.com/public/markets https://www.kraken.com/ https://www.cryptsy.com/markets/view/ETH_BTC https://bittrex.com/Market/Index?MarketName=BTC-ET… https://hitbtc.com/ https://bleutrade.com/exchange/ETH/BTC https://coinsquare.io/ https://metaexchange.info/markets/ETH/BTC https://alcurex.org/index.php/crypto/index https://yunbi.com/markets/ethcny https://www.cryptocompare.com/coins/eth/markets/BT… Tools: http://ether.fund/tool/contract http://ether.fund/tool/etherface http://ether.fund/tool/terminal http://ether.fund/peers http://ether.fund/tool/converter http://ether.fund/tool/calculator http://ether.fund/tool/gas-fees http://ether.fund/tool/gas-price http://ether.fund/tool/blockcast Contracts: http://ether.fund/contracts/ Cloud Mining: http://www.ethercloud.info/ Mining Pools: http://ethereumpool.co/ http://eth.nanopool.org/ https://eth.suprnova.cc/ http://ethpool.org/ https://eurohash.net/#/ http://www.talkether.org/ https://www2.coinmine.pl/eth/index.php?page=statistics&action=blocks https://eth.pp.ua/stats/ Social: https://twitter.com/ethereumproject https://plus.google.com/+EthereumOrgOfficial https://www.facebook.com/ethereumproject/ IRC Chat: bitly.com/irc_ethereum #ethereum: for general discussion #ethereum-dev: for development specific questions and discussions ##ethereum: for offtopic and banter #ethereum-mining: for mining only conversations #ethereum-markets: for discussions about markets
Read More ›

When was Mist introduced?

December 14, 2016
0
4341
0
Mist was introduced on July 9th 2016. It was labelled not as version 1.0 or 0.1 but as 0.8. This is because it continued using the version number of the Ethereum Wallet. https://github.com/ethereum/mist/releases/tag/0.8.0 links to the release and also explains the thinking behind the Mist/browser concept. You can think of Mist as the browser for decentralized apps. Like what Firefox or Google Chrome are for the Web 2.0, the Mist Browser will be for the Web 3.0. What is interesting is that in November 17 2015 in v0.3.6 there was a secret open source release of Mist (https://github.com/ethereum/mist/releases/tag/0.3.6) that essentially served as an early access programme.
Read More ›