Difference between revisions of "Internet Computer wiki"

From Internet Computer Wiki
Jump to: navigation, search
m
Line 1: Line 1:
==Welcome!==
+
This Node deployment runbook covers all steps necessary to install the Internet Computer Operating System (hereinafter called IC-OS).
 +
The physical machine is expected to be racked and stacked according to the respective manual.
 +
In case you encounter any issues during the installation process, we kindly ask you to send an email with the error message to:
 +
  
This is a general source of information about the '''Internet Computer (IC)''', the world's fastest and most powerful blockchain network<ref>https://medium.com/dfinity/the-internet-computers-transaction-speed-and-finality-outpace-other-l1-blockchains-8e7d25e4b2ef</ref>. Created for and by the IC community, topics vary from cryptography, network governance, user experience, tokenomics, developer tutorials and more.
+
Many thanks for your efforts in building the Internet Computer.
  
==Introduction to the Internet Computer==
+
== Requirements ==
The Internet Computer is a general-purpose blockchain that hosts [[canister smart contract]]s. It is designed to [[Replace traditional IT with a World Computer|provide a World Computer that can replace traditional IT]] and host a new generation of [[Web3]] services and applications that run solely from the blockchain, without the need for traditional IT. It can also play the role of Web3 orchestrator, by interacting with traditional blockchains.
+
* A USB (3.0 speed that can hold at least 4GB) to put the image file on (A faster USB will allow the process to go much faster.)
 +
* The Nitrokey HSM for your data center.
 +
* A USB hub is helpful at some data centers, so you may wish to have one available.
 +
* It is recommended that you have a plan for providing details if troubleshooting assistance is needed. We recommend that you track the serial number (on the pull-out tab) for each server and compare the screenshots in the directions with each step. If assistance is needed, you will need to provide:
 +
** The serial number of the server in question
 +
** Which step was last completed
 +
** A screenshot or video showing any results that are different from what is expected.
 +
** Verification of the HSM key and config.ini file that is being used.
  
It has a completely unique design that reflects a ground-up rethink of blockchain architecture and the application of modern cryptography, [https://web.archive.org/web/20150914013643/http://dfinity.io/ which can be traced back to 2015]. It was built by the largest [https://dfinity.org/team ongoing R&D effort in crypto], which has employed many notable cryptographers, computer science researchers and engineers. The blockchain underwent genesis in May 2021 and became part of the public internet.
+
== I. Download installation image ==
  
The Internet Computer blockchain's protocols leverage novel [[chain key cryptography]] to combine multiple [[subnet blockchain]]s into a single blockchain. This allows it to [https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_out)_and_vertical_scaling_(scale_up) horizontally scale] the total volume of hosted [[canister smart contract]], and their computations and data, without limit. These smart contracts run at web speed, and with web-levels of efficiency, and uniquely, thanks to the blockchain architecture enabled by chain key crypto, can process HTTP requests and directly and securely serve interactive web experiences to the end-users of web3 services, without need for [[trusted intermediaries]] (whereas on other blockchains, the web experience users interact with is generally built on centralized, insecure and trusted servers or cloud computing services).
+
# Download the IC-OS disk image here: <br> https://download.dfinity.systems/blessed/ic/f736069ae6a6e39a73f211c587705e0f8dfdfb06/setup-os/disk-img/disk-img.tar.gz <br>
 +
# Download the corresponding checksum here:<br> https://download.dfinity.systems/blessed/ic/f736069ae6a6e39a73f211c587705e0f8dfdfb06/setup-os/disk-img/SHA256SUMS
  
Through these kinds of unique capabilities, the Internet Computer provides a platform that can be used to build mass market web3 services that run 100% on-chain, without any need for traditional IT, such as web servers and databases running on cloud computing services. The longer-term objective is that the Internet Computer will completely replace traditional IT, creating a ''blockchain singularity'', in which everything runs fully on-chain in powerful new forms where it is unstoppable and cannot be hacked.
+
== II. Verify checksum and unarchive file ==
 +
=== Mac OS X ===
 +
* Open the Terminal and type:
 +
*: <syntaxhighlight lang="shell">shasum -a 256 ~/Downloads/disk-img.tar.gz</syntaxhighlight>
 +
* Compare the calculated checksum with the file downloaded in the previous step. '''Warning:''' Only continue if they are identical, otherwise please contact the Internet Computer Association.
 +
* In the Terminal type:
 +
*: <syntaxhighlight lang="shell">tar xzvf ~/Downloads/disk-img.tar.gz</syntaxhighlight>
  
The development of the Internet Computer has heralded numerous notable technological developments, such as [[chain key cryptography]] and programming languages such as [https://wiki.internetcomputer.org/wiki/Motoko Motoko]. In another notable advance, the Internet Computer hosts an advanced [https://en.wikipedia.org/wiki/Decentralized_autonomous_organization DAO] within its protocols, called the [[Network Nervous System]], which provides the community with direct control over network governance, and can upgrade the protocol running on its network nodes, without requiring the network to fork. The network's utility token is ICP (see [[Roles of the ICP utility token]]).
+
=== Linux / Ubuntu ===
 +
* Open the Terminal and type:
 +
*: <syntaxhighlight lang="shell">sha256sum ~/Downloads/disk-img.tar.gz</syntaxhighlight>
 +
* Compare the calculated checksum with the file downloaded in the previous step. '''Warning:''' Only continue if they are identical, otherwise please contact the Internet Computer Association.
 +
* In the Terminal type:
 +
*: <syntaxhighlight lang="shell">tar xzvf ~/Downloads/disk-img.tar.gz</syntaxhighlight>
  
A recent new technological advance has extended the Internet Computer's [[chain key cryptography]] protocols. This has enabled smart contracts hosted on the Internet Computer to directly interact with other blockchains, without need for dangerous centrally-controlled bridges or wrapping (see [[trustless multi-chain web3 using the IC]], and [[Extend Bitcoin, Ethereum and other blockchains|extending Bitcoin, Ethereum and other blockchains]]).
+
=== Windows ===
 +
* Open PowerShell and type:
 +
*: <syntaxhighlight lang="shell">Get-FileHash -Algorithm SHA256 .\Downloads\disk-img.tar.gz</syntaxhighlight>
 +
* Compare the calculated checksum with the file downloaded in the previous step. '''Warning:''' Only continue if they are identical, otherwise please contact the Internet Computer Association.
 +
* In PowerShell type:
 +
*: <syntaxhighlight lang="shell">tar xzvf .\Downloads\disk-img.tar.gz</syntaxhighlight>
  
For example, a canister smart contract hosted on the Internet Computer can create bitcoin addresses, and directly send and receive bitcoins on the Bitcoin ledger as though it were hosted by the Bitcoin network itself. This is possible because chain key crypto enables blockchains to create public "chain keys", for which their nodes can create corresponding signatures. Recent work has now made it possible to create ECDSA chain keys. Since [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA] is the signature scheme used by most other blockchains, this means the Internet Computer can create TX on other blockchains.
+
=== All Operating Systems ===
 +
* Compare the calculated checksum with the one provided by the DFINITY foundation. '''Only continue if they are identical''', otherwise please contact the DFINITY foundation.
  
Future work will enable its smart contracts to directly interact with other important blockchains such as [https://ethereum.org/en/ Ethereum]. This also leverages other important features such as [[HTTPS outcalls]]. As a consequence, many believe that the Internet Computer will play the role of an orchestration layer that combines different blockchains in the web3 environment, and helps combine them with off-chain services and systems, such as Web 2.0 services and enterprise systems, in a [[trustless]] way.
+
== III. Create Bootable IC-OS USB Stick ==
 +
=== Mac OS X ===
 +
# Open the Terminal and type:
 +
#: <syntaxhighlight lang="shell">diskutil list</syntaxhighlight>
 +
# The ''diskutil'' command simply shows all available drives. Verify the drive that identifies your USB stick.
 +
# In this next command, edit ''/dev/sda'' if needed so that it refers to your USB stick and not any other drive. '''Warning:''' You risk losing your own data if you specify a wrong drive.
 +
#:<syntaxhighlight lang="shell">dd if=~/Downloads/setup-os_<version>.img of=/dev/sda</syntaxhighlight>
  
===Popular places to start===
+
=== Linux / Ubuntu ===
* [https://www.youtube.com/watch?v=IfM3I8pudFs&t=327s Internet Computer overview video from 2022 IC hackathon]
+
# Open the Terminal and type
* [https://www.youtube.com/watch?v=IfM3I8pudFs June 2022 IC hackathon, full launch video]
+
#: <syntaxhighlight lang="shell">blkid</syntaxhighlight>
* [https://dfinity.org/icig.pdf Internet Computer Infographic (PDF)]
+
# The ''blkid'' command simply shows all available drives. Verify the drive that identifies your USB stick.
<!-- Link is going to nowhere. Should be updated if target is clear. Uncommented for now.
+
# In this next command, edit ''/dev/sda'' if needed so that it refers to your USB stick and not any other drive. '''Warning:''' You risk losing your own data if you specify a wrong drive.
* [https://internetcomputer.org/education#online-courses/ Internet Computer: Online Courses]
+
#: <syntaxhighlight lang="shell">dd if=~/Downloads/setup-os_<version>.img of=/dev/sda </syntaxhighlight>  
-->
 
* [[Glossary]]
 
  
===For a general audience===
+
=== Windows ===
* [[Internet Computer overview]]
+
# Download Rufus Portable from: https://rufus.ie/en/
* [[Internet Computer vision]]
+
# Start Rufus
* [https://dfinity.org/roadmap/ Internet Computer roadmap]
+
# Select the USB stick under ''Device'' and ''SELECT'' the previously downloaded IC-OS disk image and press ''START''
 +
#: [[File:05.png|360px|screenshot]]
 +
# You may see some warnings. Make sure you don't have any other USBs in your computer and chose ''OK''. '''Warning:''' You risk losing your own data if you specify a wrong drive.
 +
#: [[File:06.png|360px|screenshot]]
 +
#: [[File:07.png|360px|screenshot]]
 +
# The ''Ready bar'' will go from left to right as it completes.
  
===For a more technical audience===
+
== IV. Add configuration ==
* [https://eprint.iacr.org/2022/087 "Internet Computer for Geeks" paper]
+
=== Mac OS X ===
* The [https://dfinity.org/howitworks "How it works" series] with videos and in-depth articles on various topics.
+
# Open Finder. You should now be able to see the ''CONFIG'' partition. If it's not visible, remove the USB and insert it again.
* [https://www.reddit.com/r/dfinity/comments/ozboyi/megathread_technical_amas/ Technical AMAs on Reddit by different IC and DFINITY teams]
+
#: [[File:mac_01.png|480px|screenshot]]
 +
# Double-click to open it in TextEdit.
 +
# Overwrite the example with your the IPv6 prefix, subnet and gateway of your data center.
 +
#: [[File:mac_02.png|480px|screenshot]]
 +
# Once done, don’t forget to save the changes. If you need help, please do not hesitate to contact the Internet Computer Association.
 +
#: [[File:mac_03.png|480px|screenshot]]
  
== Internet Identity Introduction ==  
+
=== Windows ===
One of the core benefits of building on the Internet Computer is that end users do not need to pay fees or use tokens to access and use dapps. As an alternative to authenticating from a wallet, users can authenticate with an Internet Identity. Learn more information about Internet Identity (II), a blockchain authentication framework supported by the Internet Computer:
+
# Open the ''Disk Management'' utility with a right click on the ''Start menu''
 +
#: [[File:09-b.png|250px|screenshot]]
 +
# Right click the ''CONFIG'' partition
 +
# Select ''Change drive letter or paths...''
 +
#: [[File:10-b.png|560px|screenshot]]
 +
# Select any letter from the drop-down list
 +
#: [[File:11-b.png|360px|screenshot]]
 +
# Click ''OK''.
 +
# You should now be able to see the CONFIG partition in your Windows Explorer. Select the ''config.ini'' configuration file.
 +
#: [[File:12-b.png|560px|screenshot]]
 +
# Click on ''Edit'' to open it in a text-only editor. '''Do not use an editor that will add formatting, as this could cause the installation to fail.'''
 +
# Overwrite the example with your own IPv6 prefix, subnet and gateway.
 +
#: [[File:13-b.png|560px|screenshot]]
 +
# Once done, don’t forget to save the changes. If you need help, please do not hesitate to contact the Internet Computer Association.
 +
#: [[File:14-b.png|560px|screenshot]]
  
* [[What is Internet Identity]]
+
=== Linux ===
* [[How to create an Internet Identity]]
+
# Open the File Manager. You should now be able to see the ''CONFIG'' partition. If it's not visible, remove the USB and insert it again.
* [[Internet Identity technical overview]]
+
#: [[File:linux_01.png|560px|screenshot]]
* [https://identity.ic0.app/ Internet Identity dapp]
+
# Double-click to open it in KWrite.
 +
# Overwrite the example with your own IPv6 prefix, subnet and gateway.
 +
#: [[File:linux_02.png|560px|screenshot]]
 +
# Once done, don’t forget to save the changes. If you need help, please do not hesitate to contact the Internet Computer Association.
 +
#: [[File:linux_03.png|560px|screenshot]]
  
==IC for Dapp Users ==
+
== V. Connect Crash Cart ==
 +
# In order to configure the UEFI and initiate the installation of the IC-OS, please connect a crash cart to the physical machine.
 +
# Plug-in the VGA/Video, keyboard and IC-OS USB stick
 +
#: [[File:08.png|580px|screenshot]]
  
If you use or are interested in using dapps on the Internet Computer, this section will help you understand the user experience benefits of the IC, how to use Internet Identity, or find more IC dapps.
+
== VI. UEFI - Enter System Setup and reset IDRAC password ==
 +
# Reboot or power on the server.
 +
# Watch for the ''blue screen'' with boot options in the top left corner.
 +
# Press F2 a couple of times, once the options are listed.
 +
# If your option is recognized by the system, it should be highlighting ''Entering System Setup''.
 +
# In the System Setup, select iDRAC Settings and press enter.
 +
# Select User Configuration and press enter.
 +
# Select Change Password and press enter.
 +
# Enter in your desired password and select OK.
 +
# Select Back and Finish.
  
Examples:
+
== VII. UEFI - System BIOS ==
* [[Introduction to the Internet Computer for dapp users]]
+
#
* [[Index of dapps on the Internet Computer]]
+
#: In the System Setup, select ''System BIOS'' and press enter.
 +
#: [[File:Select_System_Bios.png|580px|screenshot]]
 +
#
 +
#: In the System BIOS, select ''Processor Settings'' and press enter.
 +
#: [[File:19.png|580px|screenshot]]
 +
#
 +
#: Set ''NUMA Nodes Per Socket'' to '''0'''
 +
#: Set ''Minimum SEV non-ES ASID'' to '''253'''
 +
#: Select ''back'' to return to System BIOS.
 +
#: [[File:20.png|580px|screenshot]]
  
See more in [[Internet Computer for dapp users]]
+
== VIII. UEFI - Boot Settings ==
 +
#
 +
#: Select ''Boot Settings'' and press ''enter''.
 +
#: [[File:21.png|580px|screenshot]]
 +
#
 +
#: Set ''Boot Mode'' to '''UEFI'''
 +
#: Select ''back'' to return to System BIOS.
 +
#: [[File:22.png|580px|screenshot]]
  
== IC for ICP Token-holders, Stakers, and Neuron Holders==
+
== IX. UEFI - Integrated Devices ==
 +
#
 +
#: Select ''Integrated Devices'' and press ''enter''.
 +
#: [[File:23.png|580px|screenshot]]
 +
#
 +
#: Set ''PCIe Preferred IO Bus'' to '''Enabled'''
 +
#: Set ''Enhanced Preferred IO'' to '''Enabled'''
 +
#: Set ''SR-IOV Global Enable'' to '''Enabled'''
 +
#: Select ''back'' to return to System BIOS.
 +
#: [[File:24.png|580px|screenshot]]
  
The Internet Computer is governed by on-chain governance system called the Network Nervous System (NNS). To participate on governance, users need to stake ICP tokens. This section will explain how the NNS works, ICP tokens, staking, voting, rewards, and options for managing one's ICP.
+
== X. UEFI - Miscellaneous Settings ==
 +
#
 +
#: Select ''Miscellaneous Settings'' and press ''enter''.
 +
#: [[File:25.png|580px|screenshot]]
 +
#
 +
#: Set ''F1/F2 Prompt'' on Error to '''Disabled'''
 +
#: Select ''back'' to return to System BIOS.
 +
#: [[File:26.png|580px|screenshot]]
 +
#
 +
#: Select ''Finish'' and press ''enter''.
 +
#: [[File:27.png|580px|screenshot]]
 +
#
 +
#: Select ''Yes'' to save the changes and press ''enter''.
 +
#: [[File:28.png|580px|screenshot]]
 +
#
 +
#: Select ''OK'' and press ''enter''.
 +
#: [[File:29.png|580px|screenshot]]
 +
#
 +
#: Confirm the exit and press ''enter''. The system will reboot now. '''Please do not unplug the IC-OS USB stick''' at this point.
  
Examples:
+
== XI. Boot Manager - Enter Boot Manager ==
* [[ICP token]]
+
#
* [[Tutorials for acquiring, managing, and staking ICP]]
+
#: Watch for the Blue screen with boot options in the top left corner. Press ''F11'' a couple of times, once the options are listed.
* [[Staking, voting and rewards]]
+
#: [[File:16.png|580px|screenshot]]
* [[Governance of the Internet Computer]]
+
#
* [[Network Nervous System]]
+
#: If your option is recognized by the system, it should be highlighting Entering Boot Manager.
* [[Total supply, circulating supply, and staked_ICP]]
+
#: [[File:32.png|580px|screenshot]]
 +
#
 +
#: In the Boot Manager, select ''One-shot UEFI Boot Menu'' and press ''enter''.
 +
#: [[File:33.png|580px|screenshot]]
 +
#
 +
#: In the Boot Menu, select your ''USB device'' and press ''enter''.
 +
#: [[File:34.png|580px|screenshot]]
  
See more in [[Internet Computer token-holders, investors, and neuron holders]].
+
== XII. IC-OS - Installer Boot ==
 +
#
 +
#: Please wait while the USB Installer is booting up. This process can take up to 3 minutes.
 +
#: [[File:35-d.png|780px|screenshot]]
 +
#
 +
#: The IC-OS installation starts. Please keep an eye on the progress. This part can take up to 10 minutes (the duration heavily depends on the speed of the IC-OS USB device).
 +
#: If you encounter any issues, please send an email with the error message to: [email protected].
 +
#: [[File:36-d.png|780px|screenshot]]
 +
#
 +
#: Once you get asked to insert the HSM, please remove the keyboard and instead insert the HSM USB device.
 +
#: [[File:37.png|580px|screenshot]]
 +
#
 +
#: If the installation finished successfully, it will initiate a reboot. '''Please do not unplug the IC-OS USB stick or HSM USB device''' at this point.
 +
#: [[File:38-d.png|780px|screenshot]]
  
== IC for Smart Contract and Dapp Developers ==
+
== XIII. IC-OS - First Boot ==
 +
#
 +
#: The first boot of the IC-OS still requires the HSM USB device. Please wait until further instructions. This step can take up to 2 minutes.
 +
#: [[File:39-d.png|780px|screenshot]]
 +
#
 +
#: '''Once you see this message, you may unplug the HSM USB device, IC-OS USB stick and VGA/Video.''' Your machine successfully joined the Internet Computer.
 +
#: [[File:40-D.png|780px|screenshot]]
  
The Internet Computer (IC) is a new platform for executing smart contracts. This section contains information for developers, including links to documentation, developer forums, and relevant dashboards.
+
[[Node Provider Onboarding|Return to the Onboarding Document]]
 
 
Examples:
 
* [[Canisters (dapps/smart contracts)]]
 
* [https://smartcontracts.org/ Developer documentation on smartcontract.org]
 
* [https://forum.dfinity.org/ IC community developer forum]
 
<!--* [[Index of libraries for Internet Computer development]]-->
 
<!--* [[Best practices for a high traffic dapp launch]]-->
 
* [[Bitcoin integration]]
 
* [[SNS Tokenization Considerations]]
 
* [[Web Speed]]
 
* [[Web Serving]]
 
* [[Limitless Scaling]]
 
* [[Users interact with dapps without tokens]]
 
* [[Parallelism]]
 
 
 
If you've been programming smart contracts on Ethereum before, you should read [[The Internet Computer for Ethereum Developers]].
 
 
 
See more in [[Internet Computer for smart contract and dapp developers]].
 
 
 
== IC for the Curious, Researchers and Blockchain Enthusiasts ==
 
 
 
This section is for those interested in how the Internet Computer works under the hood. It touches many different subject areas from cryptography, consensus protocols, virtual machines, operating systems, networking, distributed systems, etc.
 
 
 
Examples:
 
* [https://dfinity.org/howitworks/ How the Internet Computer Works]
 
* [https://dashboard.internetcomputer.org/ Internet Computer dashboard]
 
* [[Internet Computer performance]]
 
* [[DFINITY Foundation]]
 
* [[Bitcoin integration]]
 
* [[Third-party security audits]]
 
 
 
See more in [[Internet Computer for researchers and blockchain enthusiasts]].
 
 
 
== For Node Providers ==
 
Node providers invest in and operate node hardware, which powers the Internet Computer with processing and storage capacity. Running these nodes in data centers provides the high performance and the cost-effectiveness of the Internet Computer. Every node provider is allowed a limited amount of nodes.
 
* [[Node Provider Onboarding]]
 
* [[IC OS Installation Runbook - Dell Poweredge]]
 
* [[IC OS Installation Runbook - Supermicro]]
 
* [[Storage Runbook]]
 
* [[Node rewards]]
 
 
 
== Technical Working Groups ==
 
* [[Identity & Authentication]]
 
* [[Developer Tooling]]
 
* [[Ledger & Tokenization]]
 
* [[Scalability & Performance]]
 
 
 
== FAQs, Tutorials, and How-tos==
 
Tutorials are guided introductions to user stories, intended for first-time users and characterized by a shallow learning curve. How-Tos are step-by-step instructions for specific, narrow goals.
 
 
 
===FAQs===
 
* [[FAQ]]
 
 
 
===Best Practices===
 
Example:
 
* [[Managing ICP holdings]]
 
* [[Managing Internet Identity]]
 
* [[Maximizing Voting and NNS Rewards]]
 
See more in [[Best Practices]]
 
 
 
=== Tutorials ===
 
Example:
 
* [[Tutorials for acquiring, managing, and staking ICP]]
 
* [[How-To: Claim neurons for seed participants]]
 
* [[How-To: Create an NNS motion proposal]]
 
* [[How-To: Set your neuron to follow another neuron]]
 
* [[How-To: Updating neuron following via quill]]
 
 
 
See more in [[How-Tos]].
 
 
 
==Contributing to the Wiki==
 
 
 
=== How to contribute ===
 
Anyone can read the wiki. You can also edit pages, all you need to do is [https://wiki.internetcomputer.org/wiki/Special:CreateAccount create an account]. See more in [[Contributing to the wiki]].
 
 
 
==References==
 

Revision as of 16:50, 6 September 2022

This Node deployment runbook covers all steps necessary to install the Internet Computer Operating System (hereinafter called IC-OS). The physical machine is expected to be racked and stacked according to the respective manual. In case you encounter any issues during the installation process, we kindly ask you to send an email with the error message to: [email protected]

Many thanks for your efforts in building the Internet Computer.

Requirements

  • A USB (3.0 speed that can hold at least 4GB) to put the image file on (A faster USB will allow the process to go much faster.)
  • The Nitrokey HSM for your data center.
  • A USB hub is helpful at some data centers, so you may wish to have one available.
  • It is recommended that you have a plan for providing details if troubleshooting assistance is needed. We recommend that you track the serial number (on the pull-out tab) for each server and compare the screenshots in the directions with each step. If assistance is needed, you will need to provide:
    • The serial number of the server in question
    • Which step was last completed
    • A screenshot or video showing any results that are different from what is expected.
    • Verification of the HSM key and config.ini file that is being used.

I. Download installation image

  1. Download the IC-OS disk image here:
    https://download.dfinity.systems/blessed/ic/f736069ae6a6e39a73f211c587705e0f8dfdfb06/setup-os/disk-img/disk-img.tar.gz
  2. Download the corresponding checksum here:
    https://download.dfinity.systems/blessed/ic/f736069ae6a6e39a73f211c587705e0f8dfdfb06/setup-os/disk-img/SHA256SUMS

II. Verify checksum and unarchive file

Mac OS X

  • Open the Terminal and type:
    shasum -a 256 ~/Downloads/disk-img.tar.gz
    
  • Compare the calculated checksum with the file downloaded in the previous step. Warning: Only continue if they are identical, otherwise please contact the Internet Computer Association.
  • In the Terminal type:
    tar xzvf ~/Downloads/disk-img.tar.gz
    

Linux / Ubuntu

  • Open the Terminal and type:
    sha256sum ~/Downloads/disk-img.tar.gz
    
  • Compare the calculated checksum with the file downloaded in the previous step. Warning: Only continue if they are identical, otherwise please contact the Internet Computer Association.
  • In the Terminal type:
    tar xzvf ~/Downloads/disk-img.tar.gz
    

Windows

  • Open PowerShell and type:
    Get-FileHash -Algorithm SHA256 .\Downloads\disk-img.tar.gz
    
  • Compare the calculated checksum with the file downloaded in the previous step. Warning: Only continue if they are identical, otherwise please contact the Internet Computer Association.
  • In PowerShell type:
    tar xzvf .\Downloads\disk-img.tar.gz
    

All Operating Systems

  • Compare the calculated checksum with the one provided by the DFINITY foundation. Only continue if they are identical, otherwise please contact the DFINITY foundation.

III. Create Bootable IC-OS USB Stick

Mac OS X

  1. Open the Terminal and type:
    diskutil list
    
  2. The diskutil command simply shows all available drives. Verify the drive that identifies your USB stick.
  3. In this next command, edit /dev/sda if needed so that it refers to your USB stick and not any other drive. Warning: You risk losing your own data if you specify a wrong drive.
    dd if=~/Downloads/setup-os_<version>.img of=/dev/sda
    

Linux / Ubuntu

  1. Open the Terminal and type
    blkid
    
  2. The blkid command simply shows all available drives. Verify the drive that identifies your USB stick.
  3. In this next command, edit /dev/sda if needed so that it refers to your USB stick and not any other drive. Warning: You risk losing your own data if you specify a wrong drive.
    dd if=~/Downloads/setup-os_<version>.img of=/dev/sda
    

Windows

  1. Download Rufus Portable from: https://rufus.ie/en/
  2. Start Rufus
  3. Select the USB stick under Device and SELECT the previously downloaded IC-OS disk image and press START
    screenshot
  4. You may see some warnings. Make sure you don't have any other USBs in your computer and chose OK. Warning: You risk losing your own data if you specify a wrong drive.
    screenshot
    screenshot
  5. The Ready bar will go from left to right as it completes.

IV. Add configuration

Mac OS X

  1. Open Finder. You should now be able to see the CONFIG partition. If it's not visible, remove the USB and insert it again.
    screenshot
  2. Double-click to open it in TextEdit.
  3. Overwrite the example with your the IPv6 prefix, subnet and gateway of your data center.
    screenshot
  4. Once done, don’t forget to save the changes. If you need help, please do not hesitate to contact the Internet Computer Association.
    screenshot

Windows

  1. Open the Disk Management utility with a right click on the Start menu
    screenshot
  2. Right click the CONFIG partition
  3. Select Change drive letter or paths...
    screenshot
  4. Select any letter from the drop-down list
    screenshot
  5. Click OK.
  6. You should now be able to see the CONFIG partition in your Windows Explorer. Select the config.ini configuration file.
    screenshot
  7. Click on Edit to open it in a text-only editor. Do not use an editor that will add formatting, as this could cause the installation to fail.
  8. Overwrite the example with your own IPv6 prefix, subnet and gateway.
    screenshot
  9. Once done, don’t forget to save the changes. If you need help, please do not hesitate to contact the Internet Computer Association.
    screenshot

Linux

  1. Open the File Manager. You should now be able to see the CONFIG partition. If it's not visible, remove the USB and insert it again.
    screenshot
  2. Double-click to open it in KWrite.
  3. Overwrite the example with your own IPv6 prefix, subnet and gateway.
    screenshot
  4. Once done, don’t forget to save the changes. If you need help, please do not hesitate to contact the Internet Computer Association.
    screenshot

V. Connect Crash Cart

  1. In order to configure the UEFI and initiate the installation of the IC-OS, please connect a crash cart to the physical machine.
  2. Plug-in the VGA/Video, keyboard and IC-OS USB stick
    screenshot

VI. UEFI - Enter System Setup and reset IDRAC password

  1. Reboot or power on the server.
  2. Watch for the blue screen with boot options in the top left corner.
  3. Press F2 a couple of times, once the options are listed.
  4. If your option is recognized by the system, it should be highlighting Entering System Setup.
  5. In the System Setup, select iDRAC Settings and press enter.
  6. Select User Configuration and press enter.
  7. Select Change Password and press enter.
  8. Enter in your desired password and select OK.
  9. Select Back and Finish.

VII. UEFI - System BIOS

  1. In the System Setup, select System BIOS and press enter.
    screenshot
  2. In the System BIOS, select Processor Settings and press enter.
    screenshot
  3. Set NUMA Nodes Per Socket to 0
    Set Minimum SEV non-ES ASID to 253
    Select back to return to System BIOS.
    screenshot

VIII. UEFI - Boot Settings

  1. Select Boot Settings and press enter.
    screenshot
  2. Set Boot Mode to UEFI
    Select back to return to System BIOS.
    screenshot

IX. UEFI - Integrated Devices

  1. Select Integrated Devices and press enter.
    screenshot
  2. Set PCIe Preferred IO Bus to Enabled
    Set Enhanced Preferred IO to Enabled
    Set SR-IOV Global Enable to Enabled
    Select back to return to System BIOS.
    screenshot

X. UEFI - Miscellaneous Settings

  1. Select Miscellaneous Settings and press enter.
    screenshot
  2. Set F1/F2 Prompt on Error to Disabled
    Select back to return to System BIOS.
    screenshot
  3. Select Finish and press enter.
    screenshot
  4. Select Yes to save the changes and press enter.
    screenshot
  5. Select OK and press enter.
    screenshot
  6. Confirm the exit and press enter. The system will reboot now. Please do not unplug the IC-OS USB stick at this point.

XI. Boot Manager - Enter Boot Manager

  1. Watch for the Blue screen with boot options in the top left corner. Press F11 a couple of times, once the options are listed.
    screenshot
  2. If your option is recognized by the system, it should be highlighting Entering Boot Manager.
    screenshot
  3. In the Boot Manager, select One-shot UEFI Boot Menu and press enter.
    screenshot
  4. In the Boot Menu, select your USB device and press enter.
    screenshot

XII. IC-OS - Installer Boot

  1. Please wait while the USB Installer is booting up. This process can take up to 3 minutes.
    screenshot
  2. The IC-OS installation starts. Please keep an eye on the progress. This part can take up to 10 minutes (the duration heavily depends on the speed of the IC-OS USB device).
    If you encounter any issues, please send an email with the error message to: [email protected].
    screenshot
  3. Once you get asked to insert the HSM, please remove the keyboard and instead insert the HSM USB device.
    screenshot
  4. If the installation finished successfully, it will initiate a reboot. Please do not unplug the IC-OS USB stick or HSM USB device at this point.
    screenshot

XIII. IC-OS - First Boot

  1. The first boot of the IC-OS still requires the HSM USB device. Please wait until further instructions. This step can take up to 2 minutes.
    screenshot
  2. Once you see this message, you may unplug the HSM USB device, IC-OS USB stick and VGA/Video. Your machine successfully joined the Internet Computer.
    screenshot

Return to the Onboarding Document