1.1. Getting Started with Dfinity & the Internet Computer
The Internet Computer is a new way of hosting applications on the internet that is more secure, more censorship-resistant, and easier to use for developers. There are many technical innovations that bring about these benefits of security, decentralization, and ease of use. The Internet Computer has been under development since 2016 and just released its official main-net in May of 2021. There are now websites running on the Internet Computer in real-time. See Internet Computer Apps for a few examples.
1.2. Getting Started with the Governance System: NNS
The Network Nervous system is autonomous software that is used to govern or control the Internet Computer. In simple terms, NNS is a place where you can make democratic, community-based decisions for the Internet Computer. The NNS acts as an autonomous “master” blockchain with a public key to validate all ICP transactions.
The first thing you should do is create an internet identity.
The internet computer has many different components: subnets, nodes, canisters, the NNS, neurons, proposals, votes, ICP, and cycles.
Find out more by reading this article.
1.3. How to Stake $ICP to Earn Rewards
You can buy ICP tokens on exchanges like Binance or Coinbase. If you have already bought ICP tokens you can earn rewards with NNS staking.
Please follow the next steps:
- Log into the NNS Via the Internet Identity.
- Transfer ICP to the NNS
- Stake ICP in a Neuron to Earn Rewards.
Neurons that have been configured with the maximum dissolve delay of 8 years are receiving up to 28.9% in annualized voting rewards (as of June 8, 2021).
For further details, see “ICP Neuron Calculator”
1.4. How to Join the Internet Computer Fellowship Program
The Internet Computer Fellowship is a 12-month program designed to build a network of computer science educators and advocates, giving them the opportunity to support local ecosystems of educators through knowledge sharing, lesson creation, and community organizing.
The Fellowship program is ideal for educators, graduate students, college-level teaching assistants (TAs), and computer science education advocates interested in gaining practical experience working with emerging technologies and next-generation software development environments.
Please check out the page here for detailed information.
This is a collection of the active usable apps currently running on the Internet Computer. In order to be included in this list, the app needs to be:
- Publicly accessible (alpha, beta, etc. are all OK)
- Users need to be able to log-in and do meaningful things in the app.
Some of the world’s most popular social apps, e-commerce sites, DeFi platforms, and even enterprise systems are all being reimagined as truly open and decentralized services on the Internet Computer.
Build decentralized social media platforms that can be accessed from any device. You can reward and incentivize users through tokenization, as well as foster collective moderation. Blockchain unlocks a new set of features that promote virality and incentivize users to keep coming back.
CanCan is a decentralized video-based social media platform that leverages tokenized governance. CanCan introduces the idea of convertible “reward points” that users can earn in various ways and exchange for governance tokens. CanCan has incentivized, community-powered moderation embedded directly into the application, rewarding users when their favorite creators go viral.
1.6. How Enterprises can Adopt the Internet Computer
A new technology stack protects your company and unlocks a new breed of software to redefine industries. Today’s legacy IT stack costs enterprises $3.9 trillion dollars annually — despite the high costs, legacy tech is too complex to make secure and lacks the necessary agility to seize market opportunities. A single insecure component, a misconfiguration, a bad line of code, and hackers can get in. Managing the complexity of non-value-added IT complexities relegates teams to focus on all the wrong things, as opposed to focusing on creating create products and customer experiences.
1.7. Additional tools and Resources for Beginners
- IC Rocks | Internet Computer explorer
- ICP Scan | Internet Computer blockchain explorer
- DFINITY explorer (community-led)
- Messari | An introduction to the Internet Computer
- What does the Internet Computer do?
- Internet Computer Quick start
- Binance research | Internet Computer
- The ICP Guide
- A Beginner’s Guide on How to Stake ICP Tokens on the Internet Computer’s Network Nervous System (NNS)
- Dfinity medium blog
- Dfinity youtube channel
- Dfinity reddit channel
- Dfinity website
- Internet computer association
- DFINITY support
2. BUY ICP
List of exchanges where you can buy ICP:
3.1. Getting Started with Storing your ICP
A key feature of the Internet Computer blockchain is the Network Nervous System (NNS), an open algorithmic governance system that oversees the network and the token economics that make it possible to build DeFi and dapps, open internet services, and enterprise systems that are capable of operating at hyper-scale.
The purpose of the NNS is to allow the Internet Computer network to be governed in an open, decentralized, and secure manner — and it has complete control over all aspects of the network.
For an in-depth overview of the NNS, refer to “Understanding the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens.”
Below is a quick guide to getting started with the Network Nervous System dapp [linked here] and its key functions. The dApp currently provides functionality in four main areas:
- ICP token management (it’s a “wallet”)
- Staking ICP inside “voting neurons” to earn rewards
- Voting on proposals submitted to the NNS
- Creating canister smart contracts and “cycles”
3.2. Where to Store your ICP
As we have seen so far, you can store your ICPs via NNS. You can also use Toniq Labs wallet project “Stoic wallet”.
Shortly, you will also be able to store your ICP tokens in the Earth Wallet.
Furthermore, you can use your Nano Ledger as your physical security device for storing ICP tokens. You can also visit this site for further information.
4.1. How to start building on the Internet Computer
As described in the Quick start, you can download and install the latest version of the DFINITY Canister SDK package by running a command in a terminal shell. The topics in this section provide additional information about installing, upgrading, and removing the DFINITY Canister SDK.
Install The DFINITY Canister SDK (Open a Terminal Shell on your local computer):
4.2. Getting Started with the Programming Language Motoko
The Motoko programming language is a new, modern, type-sound language designed for developers who want to build the next generation of apps and services to run directly on the internet. Motoko is specifically designed to support the unique features of the Internet Computer and to provide a familiar, yet robust programming environment. As a new language, Motoko is constantly evolving with support for new features and improvements. Keep checking back for updates and for the announcement of the Motoko becoming available as an open-source project.
The Quick start provides a fast path to deploying a simple default application without stopping to admire the scenery along the way. Individual tutorials walk through specific scenarios, pointing out details regarding what you are doing in each step.
You have already seen the basic workflow for creating applications that run on the Internet Computer. Now, let’s take a closer look at that workflow by exploring the default files and folders that are added to your workspace when you create a new project.
As a preview, the following diagram illustrates the development workflow when running the Internet Computer locally on your computer.
Before you begin
Before you start, verify the following:
- You have an internet connection and access to a shell terminal on your local macOS or Linux computer.
- You have
node.jsinstalled if you want to include the default template files for front-end development in your project.
- You have downloaded and installed the DFINITY Canister SDK package as described in Download and install.
- You have installed the Visual Studio Code plugin for Motoko as described in Install the language editor plug-in if you are using Visual Studio Code as your IDE.
- You have stopped any Internet Computer network processes running on the local computer.
Then, to explore the default project, follow the next steps:
- Create a new project
- Review the default configuration
- Review the default program code
- Start the local network
- Register canister identifiers
- Build the program
- Deploy the project locally
- View the default front-end
- Stop the local network
4.3. Technical Library
You can explore open-source innovation for developers in the Technical library. In this same section, you will find technical documentation very soon.
4.4. Internet Computer SDKs: Motoko and RUST
Most of the examples in the “Quick Start Guide” use Motoko — the programming language specifically designed to work with the Internet Computer. Potentially, however, you can write programs in any language that compiles to WebAssembly to deploy applications that run on the Internet Computer.
You can create Rust projects to run on the Internet Computer by using Cargo and compiling your program to use WebAssembly as the target output.
Rust is a powerful and type sound modern programming language with an active developer community. Because Rust compiles to WebAssembly, it offers a rich development environment for writing applications to run on the Internet Computer. To help pave the way for writing applications in Rust that can be deployed on the Internet Computer, DFINITY provides some tools to simplify the process.
Collectively, these tools are referred to as the DFINITY Canister Development Kit (CDK) for Rust.
4.5. How to Run a Node.
Nodes for the Internet Computer are currently deployed through independent data centers located across the world that combine their computing power by running the Internet Computer Protocol.
Unlike projects like Bitcoin or Ethereum where a machine of any caliber can run a “node,” the Internet Computer has a minimum standard of technical specifications for each machine to ensure higher speeds, lower latency, and greater reliability. Additionally, unlike proprietary cloud and computing systems that are run by an individual organization, the Internet Computer is decentralized and governed by the Network Nervous System (NNS).
In order to deploy a node to the Internet Computer, the node machine must meet a minimum set of specifications to ensure a minimum level of computational efficiency across the Internet Computer. As the NNS scales the Internet Computer’s capacity, more and more decentralized nodes running the Internet Computer Protocol will continue to be added, allowing capacity to scale infinitely through subnets.
Articles for prospective node providers are available here.
4.6 Other resources for builders and developers
- Education center
- Dfinity developer grant
- Beacon fund
- Community canister registry
- Sample apps
- Internet Computer education github
- DFINITY github
- Developer Telegram group
- Basics of building on the Internet Computer
- Developer forum
5. JOIN THE COMMUNITIES
5. 1. Official Channels
- Dfinity Channel on Github
- Dfinity Channel on Medium
- Dfinity Channel on Twitter
- Dfinity Channel on Forum
- Dfinity Channel on Youtube
- Dfinity Channel on Telegram
- Dfinity Channel on Linkedin
- Dfinity Channel on Reddit
- Dfinity Channel on Facebook
- Dfinity Channel on Instagram
5. 2. Community-led Channels
- Dfinity Community: Twitter | Telegram | Instagram | Facebook group
- ICP League: Twitter | Telegram | Website
- Dfinity Club: Twitter | Telegram
- Dfinity Bulls: Twitter | Telegram
- Motoko School: Twitter | Discord | Telegram
- ICP Maximalist: Twitter | Telegram