Certified Blockchain Professional - Module 13: Blockchain Project Implementation
As previously discussed, I'm doing the Certified Blockchain Professional course. It is self-directed learning, so I'm going through it at my own pace. In order to consolidate my learning, and help organise my thoughts, I'm blogging about my reflections on each module.
These are mostly notes to myself - but I hope if you find something interesting (or incorrect) that you'll leave a comment.
The first semi-practical module! Including how to write a smart contract on Ethereum.
A variety of "testnets" to play on before deploying to main. Also possible to use a private net.
Use of the geth
client from https://geth.ethereum.org/downloads/
*sigh*
On to Solidity. The language of "Smart" contracts. The book says "Its syntax is closer to both JavaScript and C."
Nooooo! Why would you write anything contractual in either of those languages?
Solidity is statically typed so its syntax is checked at compile time.
Data types include bool
and int
(signed integer) and uint
(unsigned).
address
is a 160bit value.
balance
the balance of the address in Wei.
send
a method.
address to = 0x6414cc08d148dce9ebf5a2d0b7c2201234567890;
address from = this
if (to.balance < 10 && from.balance > 50)
to.send(20);
Usual range of arrays, loops, etc. Functions and Libraries also available. Libraries can't have state or use inheritance, nor can their receive Ether.
Events can be written to the chain, which is useful for notifying a change of state, or the occurrence of an event.
Functions can be internal to the current contract - or they can be external; calling other contracts.
The throw
allows a contract to be rolled back.
Can use Web3.js to communicate with Ethereum nodes via RPC using JS.
Metamask is a Dapp browser which lets people run Ethereum Dapps in the browser. Injects a Web3 object into FF & Chrome.
Then lots of tedious copy and pasting with no explanations - and lots of outdated commandline examples.
Oracles
Data feeds which enter data from the real world into smart contracts.
Use TLS Notary to "prove" provenance of the data. But essentially just saying that website X said Y at Z time.
IPFS
Use of decentralise storage, addressed by hash.
Andy Piper says:
Given the copious number of errors in the book, I’m curious how you rate the value of the course to this point?
@edent says:
The value is in understanding that even die-hard proponents can't explain things properly. The tricks they use to obfuscate the contradictions. And the metrics through which they define their nebulous "successes".
There is some really nifty maths and some hard-core computer science bits which are genuinely interesting - and a bit beyond my grasp.
But the CBP course is an utter dud.
More comments on Mastodon.