Handling Abuse Requests

Not Everything Should Be On Skynet

Skynet makes creating apps and sharing content on the decentralized Internet easy. We have lots of incredible users creating and making things accessible in new and fascinating ways.
Like every other sharing service, we unfortunately also have to deal with illegal content being uploaded to Skynet, and various organizations will alert portal operators to this fact.
We believe and recommend that taking care of these requests is important for two reasons:
  • Most importantly, it helps ensure that individual or organization's rights aren't being violated.
  • From a business perspective, your server hosts usually get looped into these requests, and can be brought down for hosting illegal content or other content that violates their terms of use. Read more about how we handle these requests here.

Blocklist Overview

The blocklisting architecture is made up of 3 key pieces.
  1. 1.
    skyd
  2. 2.
    blocker
  3. 3.
    Scanners
The minimum needed is skyd, skyd holds a blocklist and is what is actually checking if a link is blocked or not.
The blocker is a mongo service and does a few things:
  1. 1.
    Receives blocklist requests
  2. 2.
    Ensures consistency across a cluster.
There are then a few scanners to help automate abuse handling.
There is the malware scanner that is scanning skylinks for malware and reporting them to the blocker.
There is the abuse scanner that is scanning a mailbox for abuse complaints. There is an accompanying abuse skapp that is for reporting bad skylinks.
All of these scanners report to the blocker.
So for clusters, it is important to be sending requests to the blocker to ensure that the blocked skylinks get updated in all the skyd instances.
For single portals, it is fine to shortcut the blocker and go directly to skyd because there is just one instance. In general, is it ok to shortcut the blocker because the blocker does scan skyd instances to make sure all blocked skylinks are known.

Blocking Content

Skynet supports portals managing a blocklist. The blocklist is a list of content that the portal will block by not allowing it to be uploaded, downloaded, or pinned.
To block a skylink on a portal, you can use the Ansible Block Skylink Playbook. This is ideal of high priority requests, or if your portal does not receive a large number of abuse reports.
If you are running a large portal fleet, and receive a large number of abuse reports, we offer support for syncing an Airtable list. To enable Airtable, you will need to define the AIRTABLE_API_KEY in you .env file and update the Airtable base, table name, and field here.
The portals have a cronjob that will sync the Airtable to the portal's blocklist every 4hrs.