Ethereum for Drupal + PHP
- Ethereum-PHP library
- Drupal Ethereum module
- UX challenges
Why care about Web 2.0?
But that's not decentralised!
Ya. Goal is semi-decentralized (for now).
Many Dapps add a database
- cache for faster queries
- optional app metadata
- UI loading response time
- triggers / watching contracts
- user profiles
Client signs using Transaction-signers
Server just pulls data
(no private key on Server)
- Create standards, EIPs
and enable many to adopt them easily
- Many applications can't be build on Ethereum/Client JS only. They require searching, caching, geo searches....
- Global standards, local markets
road to a decentralized economy
a PHP library
Similar Ethereum Integration Libraries
and many more...
The goal is not a full client, but a toolset to easily build services connecting the web 2.0 to Ethereum
Abstract & simplify Ethereum JSON RPC API
Provide keccak hash, EC-Verify in PHP
Call SmartContract like in web3
Lots of tests, ability to test against smart contracts
API documentation: http://ethereum-php.org
connector for server pulls
a Drupal module
Mapping Ethereum to Drupal
List Servers, gather information (Server Entity)
Map Accounts to Drupal Accounts
➡ Identity for known user group
Read (own contracts/known ABI)
Log TX based on Contract interaction
Process Events data in Drupal
Manage deploy as Drupal Admin
Provide ABI to process data in Drupal & frontend
Watch for Blockchain Events triggers by Contracts
- Challenge/response authentication
- No Blockchain interaction - no fee
Ethereum user connector
- Registry contract, which may be changed to a paywall
- Example module for contract interaction
- Manage Networks, Ethereum Nodes, Contracts
- Some frontend interaction experiments
Text + Private Key => Signature
Text + Signature Text => Public Key (--> Ethereum Address)
Ethereum Signup: Challenge-Response account creation + login
Ethereum User Registry
The challenge to reach mainstream users
"Web of wallets"
diagram by Bobby Dresser (uPort)
Stumbling towards mainstream?
- How to help users not lose their key?
- Deal with Identity contracts (no ECverify available)
- Integrate multiple wallets - allow users to chose
- Is the user/wallet on the right network?
- Unlocked account required?
- How to onboard new users, which have no wallet?
⇢ Experiment with UX interactions
⇢ Develop standards for Dapp interaction
(MetaMascara is an experimental zero-install signer)
Mascara & Dapp launcher
everything is an experiment
Visualize TX signer state
Initialize dapplet when requirements are met
Dapp launcher wish list
- Support all major browsers on desktop and mobile
- TX signer supporting major wallets / identity providers
- Does not depend on a centralized service
- Fallback for users who don't have a wallet (Metamask Mascara?)
- Standards for interactions for users
- Learn to chose right network / unlocked account only once
Standards for Developers
- Write once implement all
- Not forced to use any particular front-end tech
Questions & Thank You
- Tweet about #DrupalEthereum
The development of Drupal Ethereum Module
has been sponsored by ConsenSys
Lots of Thanks to early
contributors & testers
and all others I talked to
(Commit stats refer to the various involved projects)
Ethereum for Drupal + PHP
By Thorsten Krug