Sign inSign up

skynetlabs/blocker

By skynetlabs

•Updated almost 4 years ago

Image
0

3.1K

skynetlabs/blocker repository overview

⁠blocker

Blocker is a service that blocklists all abusive skylinks on the current server. The service exposes a REST API that allows callers to request the blocking of new skylinks. The blocklist is shared between the servers that make up a portal cluster via MongoDB.

⁠Hashes

The blocker will convert the Skylink to a hash of its merkle root as soon as possible. This to prevent the persistence of abusive skylinks in the database and/or log files.

⁠Sync

A portal operator can bootstrap his portal's blocklist by defining a set of portal urls to sync with. The portal urls have to be defined in the environment variable BLOCKER_PORTALS_SYNC, which is a comma separated list of portal URLs.

The blocker will periodically sync the blocklist and merge it with the local database of hashes.

⁠AllowList

The blocker service can only block hashes which are not in the allow list. To add a hash to the allow list, one has to manually query the database and perform the follow operation:

db.getCollection('allowlist').insertOne({
  hash: "[INSERT HASH OF V1 SKYLINK HERE]",
  description: "[INSERT DESCRIPTION]",
  timestamp_added: new Date(),
})

⁠Environment

This service depends on the following environment variables:

  • API_HOST, defaults to sia
  • API_PORT, defaults to 9980
  • SIA_API_PASSWORD
  • SKYNET_DB_HOST
  • SKYNET_DB_PORT
  • SKYNET_DB_USER
  • SKYNET_DB_PASS
  • SKYNET_ACCOUNTS_HOST, defaults to accounts
  • SKYNET_ACCOUNTS_PORT, defaults to 3000
  • SERVER_UID, e.g. 94743e8e2673a176
  • BLOCKER_LOG_LEVEL, defaults to info
  • BLOCKER_PORTALS_SYNC

Tag summary

Content type

Image

Digest

Size

7.4 MB

Last updated

over 4 years ago

docker pull skynetlabs/blocker