Devcon 4 report: Day 1 - core tool updates
The first day of Devcon started at midday, but still had 12 talks. It was a bit of an “updates” session. The main event kicks off tomorrow morning with the keynote by Vitalik.
- Universal Ethereum Logins was the show stealer for me. The demo blew me away, and there is a full SDK available now to use.
- Lots of research into switching from Devp2p to libp2p (the networking stack IPFS uses)
EF Grants update
Ken Ng giving an overview of how EF grants foundation has been going since the launch this year.
So far has given out $11,000,000 to 75 projects over 4 waves!
Grants program is to fundamentally empower the Ethereum community and open source development. About creating up the core Ethereum platform, for others to build upon.
Want to help people build their passion projects that will help the Eth community. There will be more waves of funding, be sure to apply.
Everton Fraga from Brazil
Submitting transactions looks scary at the moment.
Currently revamping the transaction window with a lot more details
Syncing improvements. Instead of a full sync, do it in stages.
Ethereum Name Service
Making it easy to attach friendly names to Ethereum addresses.
Rolled out with the .eth support with traditional DNS.
Rolling out 2 new domains .xyz & .luxe
Permissionless integration via DNSSEC
Can claim now via https://dnssec.ens.domains/ or you can use EasyDNS
More researching is ongoing for the registrar. They found that a lot of the names are being owned by just a few people.
Moving to a "yearly rent" style model to prevent squatting. Also help pay for ongoing development
There will be a migration process over to the new domain registrar. If you do it within the first year then you get a year renewal.
Otherwise if you don't migrate it after a year, the name will be released.
Adding support to into client libraries like Web3.js 1.0, ethers.js. And other projects like Gitcoin.
They are developing a new Dapp interface. It is much slicker and easier to use.
EthereumJS - Our roadmap for 2019
Is an implementation of most of the base Ethereum technologies, implemented in JS (EthVM, merkle trees, etc.)
Used by Truffle, Metamask, Embark, etc.
Ethereum JS virtual machine.
Is a "web first" library, embedded in Remix and Metamask. Captures Ethereum's state transition rules.
Looking at integration with ewasm, but there are difficulties in EthereumJS being completely async, but the current specification for ewasm is synchronous.
Ethereum JS client
It isn't meant to be a R&D platform for new features and research efforts. An educational tool.
The architecture is inspired by bcoin https://github.com/bcoin-org/bcoin
It can currently sync to the main net (fast & light syncing).
In browser can sync via libp2p.
Ethereum JS Sharding (ShasperJS)
For the phase 2 Ewasm research, is taking a list of ordered transactions and executing them.
Why Shasper in JS? Because it'll need to be written and supported so the other tools can use it.
Not much real info in this session.
There are lots of EthereumJS that is written Sync, and lots written async. Want to take the learnings from the last 2 years and implement them.
They started by using Typescript to help find bugs by pointing out type issues
*cheers from the crowd for using Typescript*
Will be using more Typescript in the future.
Zlex Beregszaszi, Solidity co-lead.
It is a "Language for language developers"
Last year he did a talk on Julia, but there was a naming conflict, so now it is Yul.
Easier to just show the slides for this bit. They are helping compilers build better code.
Is currently being used by Solidity, Flint, LLL
Making ICOs fair (Reversible ICO)
He has helped build a few important things, like Ethereum wallet, mist browser, web3, ERC-20 standard, ERC-725.
Tokens allow you to own them, and transfer them.
Just a smart contract with an internal list of account balances.
What triggered the ICO explosion was the way that smart contracts could call and integrate with each other. Could creating funding contracts, token issuance, etc.
But people greedy. Were collecting a LOT of money, but maybe without having a solid basis for the proposed project.
So how can we make this more fair, what makes a Fair ICO?
Vitalik wrote an article on "DAICO" as one possible solution, was based on voting on the funding flow from the pool to the developers. Problem is people don't vote.
Funds are given over time based on a "tap".
Everybody can send his tokens back and get the "not yet given" funds out.
1. allocation phase. Committing funds to the project.
2. distribution phase. Funds are released slowly over time.
2.1 if at some point you think the project has gone off course, you can withdraw your tokens and get back your (not yet given) funding.
3. Swap phase. Swap out for utility tokens to use the final project, or final shares, etc.
He is going to try it out with his own ICO for https://www.lukso.io/
SWARM Team update
Decentralised file storage.
Session is a collection of team updates
Warning: <My yearly rant as they never make any real progress>
I still do not understand why they don't just embrace IPFS as the base decentralised file store layer, and then build Ethereum specific extensions on top of this. It would help ensure there is a critical mass of decentralised file nodes, faster connection times, resolution, etc. Not only that, the community has been building on IPFS for the last 2 years.
The ONE interesting part they were doing was the SWAP/SWEAR/SWINDLE incentive layer. That would have been a great research project to put on top of IPFS, and leveraged what is already built. But this year they didn't even speak of the incentive layer!
They are just reinventing the wheel, and have delayed their own progress by YEARS.
New release process. It is now in the same repo as geth. Whenever there is a geth release, there is a swarm release.
Whenever there is a swarm release, the nodes at swarm-gaeways.net are updated to newest version.
It is easier to install now. Can get via apt-get, docker images, binaries.
Is a pub/sub system.
Is a key/value store.
Each user can only update their own key space, but can read other key spaces..
Could be used for IoT data feeds.
Rolled their own encryption algorithm.
Took an existing crypto algorithm and "tweaked it".
Missed a screenshot of their variation.
I'm sure nothing has EVER gone wrong with writing your own encryption algorithm.
Does it by encypring the data, and giving keys to just the people that should be able to access it.
Accessing content which is "access controlled" is enabled ONLY when using a local node.
Don't use a public node, as they could read anything you have access to.
Metric logging for swarm nodes. CPU, memory, number of peers, etc.
"yet another messaging system", why this over Whisper?
Focuses on efficiency over secrecy.
On by default, can't disable.
Only briefly connected clients that spin up, let a user do something, and then usually disappear
Universal Ethereum logins
The bad UX experience of signing up first time to Ethereum is terrible. Requring taking selfies with your passport to sign up for an exchange, to get buy Ether, etc etc etc.
The UX is so bad, that there were more ICOs this year than daily average Ethereum users ;-)
Showed an awesome demo of onboarding a new user, completely in browser. No keys or ether. Really watch this session for inspiration.
After Devcon 3, Implemented a libp2p version as an experiment.
It works, but the GO implementation of libp2p isn't very modular and brings in a LOT of dependencies. This needs to be resolved before it is rolled in.
Devp2p was the Ethereum team created protocol.
Libp2p is the one used by IPFS.
Currently they have implemented libp2p next to existing devp2p implementation. Will slowly migrate it across to libp2p and remove the devp2p stuff.
The are working on the Moon project (This was my #1 thing from last year).
Moon browser: Instead of traditional accounts and passwords, uses crypto signatures.
What if you could fork an entire web application. (not just the front end, but the eth contracts as well).
To enable this, Dapps need a formal specification. A spec of everything this Dapp promises to do.
So to enable moon browser to do something like this they needed to solve this problem.
They looked at a bunch of existing formal spec languages, but non fit. And all were slooooow.
So they created their own called "Formality"
Devp2p development update
Felix Lange, Maintainer of the devp2p specification.
It’s a p2p networking stack.
Doing experiments on running devp2p apps on libp2p. Have an idea how to integrate libp2p into devp2p.
He seemed a bit defeatist. "yeah there are a bunch of implementations. Pretty much all Ethereum blockchain implementations"
State of live network. "Well we're still alive".
Development update. "This is where we usually talk of what we did in 2018. We finalised writing up the spec! And we have a test suite now"
Geth p2p changes. They implemented mitigations to a responsibly disclosed denial vector.
Sharding research is mostly being done on libp2p at the moment. Peers need to switch quickly for sharding, which doesn't work too well in devp2p right now.
Dr. Virgil Griffith
Is a grab bag of links to cool projects.
- Moving nash equilibriums.
Prisoner's dilemma is non-cooperative. But can change to cooperative if they both pony up a deposit.
- Created a new frontend for EF grants
- Created a new wiki http://ethereum.wiki
- https://ether.cards/ ethereum gift cards
- peaceBridge. ETH-ETC bridge.
- They just gave Ethereum Classic a $150k grant.
- http://woracle.virgil.gr/ can help you create wolframe code. Can use it as an oracle to calculate big numbers
- Using Intel SGX on desktops, allows you to use any desktop PC as a hardware wallet.
- http://neverslash.com/ helps protect your staking machines in future.
- http://crypto.pr/ The Crypto Paradise of the Caribbean