A distributed ecosystem for hosting containers (apps) without AWS, Google, Facebook.
Overview
NOTE: Content here are my personal opinions, and not intended to represent any employer (past or present). “PROTIP:” here highlight information I haven’t seen elsewhere on the internet because it is hard-won, little-know but significant facts based on my personal research and experience.
Internet Computer via DFINITY’s dfx to ic0.app
The “Internet Computer” (public cyberspace) extends the internet with compute to host “humanity’s logic and data”. It is the third major blockchain innovation:
- Bitcoin cryptocurrency (“digital gold”)
- Etherium smart contracts, which made programmable to power “DiFi” (Distributed Finance)
- Infinite blockchain with seamless capacity of special nodes run by independent data centers
VIDEO: Its competitor is Polkadot
DFINITY progressed from Copper 2019 to Bronze 2020 to Tungsten to Sodium to VIDEO: “Mercury Genesis” launched May 10, 2021. That’s when ICP token began trading on Coinbase with 469,213,710 tokens for $105 million. Initial rounds went to Andressen Horowitz
Social
https://www.reddit.com/r/dfinity/
Hands-on
-
Install DFX
sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"
Response:
info: Executing dfx install script, commit: 866752d66cfe26c92fe075028fff6c7c52a2aeb1 warn: Not forcing TLS v1.2, this is potentially less secure info: Version found: 0.8.1 info: Creating uninstall script in ~/.cache/dfinity info: uninstall path=/Users/wilsonmar/.cache/dfinity/uninstall.sh info: Checking for latest release... warn: Not forcing TLS v1.2, this is potentially less secure Will install in: /usr/local/bin info: Installed /usr/local/bin/dfx
VIDEO: Dominic Williams, in 2016 founded the DFINITY.org foundation (headquarted in Switzerland) (@dfinity)
The foundation’s code at https://github.com/deckgo/deckdeckgo is Apache 2.0 licensed, with some components NOT open source, under their “Internet Computer Community Source License”. See https://medium.com/geekculture/bye-bye-amazon-google-hello-web-3-0-b01bfe8f8783
-
Verify:
dfx --version
At time of writing, it was:
dfx 0.8.1
-
The sample def.json file at the root Gatsby static site sample
https://github.com/wilsonmar/dapp-samples/tree/main cd dapp-samples
It contains a minimal index.html
-
Deploy to the Internet Computer ledger (instead of to web servers) to generate a canister id (the equivalent of an IP address on TCP/IP):
dfx deploy --network=ic
This adds a “dfx” folder in the current project folder and a
canister_ids.json folder and displays a canister id (GUID), such as “w2tya-5qaaa-aaaab-abasa-cai”.The “Internet Computer” hosts “canisters” (smart contracts in the Internet Computer blockchain) are a bundle of Web Assembly bytecode created by Rust or Motoko language. VIDEO
-
Visit your site by constructing its URL from your canister id:
https://w2tya-5qaaa-aaaab-abasa-cai.ic0.app
Canisters serve internet content (HTML pages, videos, etc.) directly to end-users (internet browsers) instead of CDN, firewalls, VPNs, load balancers, databases, etc. now used by central “Big Tech” systems such as Google, Facebook, Instagram, Twitter, etc..
Canisters run inside hypervisors (4K memory pages).
Motoko supports IC canisters as “actors” (objects that encapsulate their state and communicate through atomic async messages) – no waiting for reply.
DFINITY is working on a mobile operating sytem called “Endorphin”.
Instead of TCP/IP ports, there are functions such as getProfile(userId: String) which calls other computers directly.
A variable declared as “stable” is persisted across software upgrades.
Network
It’s a peer-to-peer (P2P) network.
Each canister runs as part of a subnet, which replicates nodes who use a concensus protocol to process messages in the order agreed.
The subnet types:
- NNS (Network Nervous System) the ICP has an in-protocol open governance system
- Data (BigMap)
- System
- Fiduciary
Standardized Node hardware run within independent Data Centers.
VIDEO: “Token economics” ICPT
VIDEO: The Internet Computer is created by the ICP (Internet Computer Protocol) on top of the Internet Protocol widely used today.
- Block Making: Propose blocks to extend the block chain
- Notarization: Ensure valid blocks are published (because some block proposals may be invalid)
- Random Beacon: Agree on randomness
- Finalization: Know when a block is agreed upon
Dealings are homomorphic: public keys and secret key shares from different dealings can be combined into a single public key and corresponding shares.
Wallet (Money)
Unlike Etherium and others, IC does not charge a fee (“gas”) for processing transactions.
Those who create an app must buy ICPT (ICP tokens) and convert them to “cycles”. Each SDR buys 1 trillion cycles. SDR being a basket of fiat currencies defined by the IMF, so it’s a type of “stablecoin” like Tether, Paxos, Gemini, etc.
-
dfx ledger --network ic0 balance
-
Wallet
dfx wallet --network ic1 balance
LinkedUp social network identity
VIDEO: https://www.reddit.com/r/dfinity/comments/etdx8j/introducing_linkedup/ as a “self-soverign” identity. https://www.youtube.com/watch?v=m4xiRlJdhh8
Follow https://github.com/dfinity/linkedup to install the front-end canister to interact with LinkedUp.
https://smartcontracts.org/
CONCERNS is “that DFINITY seeks to replace Big Tech with themselves”.
Internet Identity on Safari
https://sdk.dfinity.org/docs/ic-identity-guide/what-is-ic-identity.html
To securely access dapps on the Internet Computer and use Internet Identity for authentication, create an Identity Anchor, then add devices to it.
A different pseudonym is created for each dapp that you access by creating new Identity Anchors.
Windows Hello authentication is supported in Chrome, Edge, and Firefox.
On iOS, authentication works across Safari browsers with registered WebAuthn keys.
However, on OS X, All currently supported authentication methods follow the WebAuthn standard. The following restrictions apply, however: On OS X, authentication using Safari is coupled to your browser profile. If you want to authenticate to a dapp in a different browser, or if you use multiple Safari browser profiles, you have to add the combination of your authentication method and the new browser as a new device.
VIDEO: Devices use Ubikey No passwords.
CAUTION: If indeed DFINITY is to take over the internet, then each person would only have a single identity, which means possible total exclusion. In that scenario, the current situation of competing tech giants is actually more diverse.
Database
https://medium.com/geekculture/internet-computer-web-app-decentralized-database-architecture-8647d1a437b8