What we are announcing today is the product of more than 20 years combined engineering and operational effort. The vast majority of this time was spent in builder’s limbo. Almost weekly we would get the question: “when are you going to market? When are you building a business development team?”, and we had to keep answering, “the tech is not ready”. And after years of patience both from our community and investors, we can finally step forward. The tech is ready.

Skynet is a permanent home for data and applications. It’s an unbiased substrate where files and applications can be deployed that will long outlast their original uploader. Much like Bitcoin, Skynet is an independent organism that operates on marketplaces and incentive structures, rather than cloud servers and human intervention.

The simplest thing that can be deployed on Skynet is a file. Take for example this video. The video is being pinned by a Skynet user, and as a result the video is available to the entire world. At any point in time, someone can reinforce the video by pinning it themselves. So long as a single person chooses to pin the video, that video will remain online and available to the world. That person does not even need to stay online themselves. Skynet has infrastructure for hosting the video and ensuring both high uptime and smooth playback.

Skynet is also good for hosting applications. Take for example this demo. The demo is an application that allows anyone to upload a text message to Skynet. Similar to the video, the application will remain available so long as at least one person is willing to pin the application. Also similar to the video, the pinning person does not need to be online themselves for the application to be available to the world. Skynet will handle the uptime.

The permanence of Skynet comes from the pinning mechanic. Pinning gives a single person the power to determine on their own that something has the right to exist globally. Skynet is a publication medium with no standards, no requirements, and no terms of service.

Uploading and Downloading

Uploading and pinning happens via Sia nodes. Skynet is effectively a layer 2 built on top of Sia. Using the latest release, anyone can deploy a file to skynet using the command `siac skynet upload`. The output is a skylink of the form “sia://TAACfPM8uKM-DG0rbefiQPUUBYfDew4BEaQJd7xeizMltw”. This skylink can then be used by anyone worldwide to access the file or application that was uploaded.

Downloading happens via Skynet portals. Anyone can run a portal, and every portal has access to every file on Skynet. Running a portal costs about $10/mo more in transaction fees than running a typical Sia node, but is otherwise the same as running a typical Sia node.

Most people will not need to run a portal themselves. Initially, several members of the Sia community are running portals which give free access to anyone wishing to download a file. Eventually, users will be able to perform downloads from portals using micro-transactions over payment rails such as the Lightning Network. A user only needs access to a single portal to be able to access all of Skynet.

Web Compatibility

The community operated Skynet portals are actually augmented portals called webportals. As the name suggests, these portals can be accessed from a web browser. They provide a simple UI for uploading and downloading, and also expose an API for developers to use.

As of writing, the list of community operated portals includes:

https://siasky.net — operated by Nebulous

https://skydrain.net — operated by PixelDrain

https://sialoop.net — operated by Keops

https://siacdn.com — operated by Maxint LLC

https://skynethub.io — operated by jchauan

https://skynet.luxor.tech — operated by Luxor

https://skynet.tutemwesi.com — operated by Tutemwesi

https://vault.lightspeedhosting.com — operated by Lightspeed Hosting

Anyone is free to spin up their own webportal. You can find more information at https://github.com/NebulousLabs/skynet-webportal

Developer Support

Skynet also comes with a rich SDK for developers. Currently, libraries are supported for Go, Python, and Nodejs. In the coming months, we will be expanding the SDKs to support more languages and have more features.

By default, the language SDKs talk to the siasky.net webportal. All languages support customization that allows the developer to choose another webportal, or even to specify a Sia node running on localhost. The SDKs currently support uploading and downloading, with support for pinning being right around the corner.

Encryption

Files on the vanilla Skynet network are unecrypted and available to the world. A user can always encrypt files before putting them on Skynet to protect their privacy, but because Skynet is intended as a publishing platform, Skynet is default unencrypted. This is in contrast to Sia, which is meant for personal data, and is therefore default-encrypted.

Support for encryption is currently in development. Users will be able to create their own encryption groups and publish files on Skynet which are available only within that group. Someone can be added to the group by sending them an encryption key link.

Decentralization

Skynet is powered by the Sia blockchain, a proof-of-work blockchain that closely adheres to Bitcoin’s design principles. Sia does not have any on-chain governance, does not have any auto-updates, does not have regularly scheduled hardforks, and also does not engage in soft forks. Every design decision made when building the Sia network was made with decentralization as an uncompromising top priority. The code is fully open source and available at https://gitlab.com/NebulousLabs/Sia

The Sia blockchain is used to power a special type of smart contract called a file contract. The file contract is an agreement between an uploader and a host that the host is required to store a specific piece of data for a specific period of time. In order to win this contract, the host must bond a number of siacoins that will be forfeit if the host does not follow through with the contract. Sia uses probabilistic Merkle proofs to determine whether or not the host is storing the data as promised.

When data is uploaded to Sia, including for Skynet, data is uploaded to a large number of hosts, ensuring that a single bad host, or even a large collection of bad hosts, is not enough to disrupt the stability of a file. Files are uploaded redundantly using Reed-Solomon coding.

Build a Free Internet

Perhaps the most important thing about Skynet is how usable it is. Files and applications can be deployed in seconds. Downloading happens at speeds competitive with the traditional web. Developers need to write less than a dozen lines of code to integrate their applications with Skynet.

The tools are available, and the network is live. Try Skynet today.