SydEthereum development workshop
Details
A hands-on workshop to help people learning to design, develop and test smart contracts on the Ethereum platform. This is a free, unsponsored event to build knowledge in the Sydney Ethereum community. The trainers and helpers are volunteering their time to help grow the community.
Attendees will need their own laptop to follow what the trainers are doing as well as do tutorial exercises. Node.js should be installed on the laptop as it is a prerequisite for a number of tools that will be used during the day. https://nodejs.org/en/download/
Attendees will have to be registered to access the secure building. Please complete the following register form before the day http://goo.gl/forms/dt08Sl77oAnvg1hH3
Ideally attendees will have some basic knowledge of programming but it’s not essential. Attendees can still follow along if they have never programmed before and there will be assistants helping people who have fallen behind or are stuck. Attendees who have experience with smart contracts before can break out into seperate rooms to work collaboratively with others. The idea, though, is people will learn some new stills from instructor lead sessions and then practice those skills with tutorial exercises. These will be 30 minutes instructor lead, 30 minutes tutorial exercises.
The day covers a lot of topics at a shallow level. The idea is to give attendees a general understanding of how to develop smart contracts on Ethereum. They can then go back over topics afterwards without being overwhelmed with what technology or tool they should use.
This is an unsponsored, free event so there will not be any catering of food or drink. Please bring along your own food and drink to survive from 10am to 4pm.
Schedule for the day
10.00am - 10.20am - Registration and setup
10.20am - 10.30am - Welcome and introductions - Nick Addison
10.30am - 11.00am - Installing and using geth and Mist - Luke Anderson
- Installing and securing geth
 - installing and using mist
 - Creating an account
 - Transferring Ether
 - Invoking a smart contract
 - Exploring the blockchain
 
11.00am - 11.30am - Break/Tutorial exercises
11.30am - 12.00pm - Solidity 101 - Nick Addison
- Structure of a contract
 - Types: value types, arrays, structs, mappings
 - Special variables and functions
 - Control structures
 - Function calls
 - Events
 
12.00pm - 12.30pm - Break/Tutorial exercises
12.30pm - 1.00pm - Build, deploy and test using Truffle - Vojdan [Voi-dan] Kardalev
- Installing Truffle
 - Building solidity code using Truffle
 - Installing testrpc
 - Deploying contracts to testrpc
 - Writing truffle tests
 - Executing Truffle tests
 
1.00pm - 1.30pm - Break/Tutorial exercises
1.30pm - 2.00pm - JavaScript API - Emma Poposka
- Installing web3
 - asynchronous callbacks
 - get transaction data
 - invoke a transaction
 - listening for events
 - Integration with Meteor
 
2.00pm - 1.30pm - Break/Tutorial exercises
2.30pm - 3.00pm
Contract design patterns - Hugo O'Connor
- access control
 - error handling
 - data storage (mapping, arrays and struct)
 - upgrade strategies
 
3.00pm - 3.30pm - Break/Tutorial exercises
3.30pm - 4.00pm
Open to presentations from individuals or teams on what they learnt or produced on the day
4.00pm closing
Technologies that will be covered on the day will be
- Ethereum http://ethereum.org/
> geth https://github.com/ethereum/go-ethereum/wiki/Geth
> Mist https://github.com/ethereum/mist
> Solidity https://solidity.readthedocs.org/en/latest/
> Browser Solidity https://ethereum.github.io/browser-solidity/
> web3 https://github.com/ethereum/wiki/wiki/JavaScript-API - Node.js https://nodejs.org/en/
 - npm https://www.npmjs.com/
 - Truffle https://github.com/ConsenSys/truffle
 - Meteor https://www.meteor.com/
 
