Let’s talk about DX (Developer Experience) in Point Network the newest web3 framework we’re developing on Solana and The Arweave Project
Recap: You can use Point to develop dapps such as decentralized social media, e2e email etc. No more cheating, storing things on AWS and GoDaddy. Everything is decentralized and uncensorable: domains, storage, identities, and this is just the start.
Read on to learn more:
Every user is referenced on web3 not by a public key, but by their own identity handle, which is their email, wallet address, social media handle, domain space, etc. Log in once, and you’re logged in everywhere. Dapps would auto-convert your public key to identity handle in UI
Every website update is an on-chain transaction mounting a new merkle hash for the ‘/’ folder of your website, which resides on decentralized storage. When you go to hello.point, proxy looks up the hash, downloads the website, and serves the content in the browser.
You get a web3 browser (firefox) configured to put everything through local proxy (ZProxy), where the web3 backend magic happens. The browser would only let you visit decentralized websites (.point, .sol, .eth, etc) and only download files from decentralized storage (@ArweaveTeam)
You don’t have to worry about your files being censored or maliciously modified by centralized servers/gateways: proxy ensures file hashes match exactly the ones you put into the update transaction. You also don’t have to worry about availability like on IPFS — it’s always online.
You do have to worry about securing your dev keys, but even here there’s room for improvement with M-of-N multisig website updates, where one of the signatories can be auditors your DAO hired on-chain (it will make more sense later), notifs from ZProxy to users, and social recovery.
Beyond /css and /js files, there is a routes.json where, like in other frameworks, you can say which ZHTML script gets executed when e.g. https://social.point/feed/:user_id route is hit. ZHTML is our powerful web3 backend language executed on ZProxy before it hits the browser.
You don’t have to learn Rust!
@neonlabsorg ‘s awesome Ethereum compatibility layer allows you to use your Solidity skills right away to deploy web3 apps on
When you deploy a website, your contracts get auto compiled and deployed by truffle, their addresses+abi attached to the domain by their names, so you don’t have to load it by address. ZProxy understands which contract needs to load since it knows which domain you’re calling from.
Now you can send HTML forms directly to your smart contract method! Just specify action=”/_ /ContractName.method()”. All inputs become arguments to it, and smart contract does the validation.
Obviously, you cannot upload large posts and images on the blockchain. In that case, wrap the input name in storage, like this: <input name=”storage[tweet]”>. Point will automatically upload the contents to Arweave, take the hash, and put it in your contract’s ‘tweet’ argument.
And the reverse: you can call your contract getters from ZHTML (or our PointSDK for ajax SPA websites), and if it’s a Solidity struct you will get a js object to iterate over/output. If a field is storage-enabled, the browser will seamlessly download it first from storage first.
Want private encrypted data? It’s easy! Use zhtml encryption function, which will AES256-encrypt data with a derivation of user’s seed before uploading, salted with the current domain (so your Notes dapp can decrypt and show a note but can’t decrypt mail even from the same user).
This functionality would also allow sharing things privately. Just share the file key with another person or a group (every file has its own key, and divulging one key doesn’t expose the others). This would allow for private chat groups, private d-Discord (with membership) etc.
Want private communication with someone you haven’t talked to yet? Use their public key to encrypt your message, before uploading it to storage, and persisting the hash in the smart contract, which sends a notification. That’s how Point Email, our end-to-end encrypted email works.
Solidity Notifications will not just be machine-to-machine talk. When you emit a Notification, e.g. when sending a decentralized email to someone, the recipient will get an actual notification in their browser, with localization, opening the specified route of your app on click.
Just like with Metamask/Phantom, every transaction on an untrusted zapp opens a confirmation window. The stripe color/shape is unique to each user (derived from hashed seed), so if a fake window shows and asks a secret phrase, the user’s subconsciousness would notice a change and pause.
Web3 opens up countless economic opportunities for early adopters, such as freelance work for DAOs. On Point, each DAO would have a decentralized website, forum, treasury, and voting, where you could fire a CEO on-chain if you want to, and DAOs would interoperate w/ each other.
You can also monetize your app/newsletter/service with Subscriptions. After confirmation, you would be able to automatically, even when the user is offline, charge their wallet with a pull payment, just like a credit card, but only the agreed amount and only per agreed period.
This would allow us to have decentralized Substack/Patreon, or even autopay rent/utility with POINT/SOL/BTC one day, and unlike with ancient credit card technology, you would be able to see all your subscriptions in one place in the wallet, and cancel any of them with a click!
And we can’t skip over NFTs in 2021 of course. In Point, there is a broader concept of Badges, on which you can click and verify (in that secure confirmation pop-up, not in fakeable HTML) that it has a valid signature/ownership.
You might want to keep a badge private and only reveal contents to employers, confirming that you really graduated from that university or held that job in a DAO, or you might want to proudly display your NFT publicly on your decentralized social media profile in a sidebar.
So these are just a few details of our vision for web3 future. Point Network builts the prototype and now finalizing their alpha for the hackathon. Please join at https://t.me/pointnetworkchat/…, share this thread around