pull/17/head
kthouky 2023-08-11 11:29:06 +02:00
parent 3a54a74443
commit e254d72e07
4 changed files with 104 additions and 4 deletions

View File

@ -26,7 +26,7 @@ class Guarantors(Resource):
if self.args.domains: if self.args.domains:
return {"domains": [guaranteed["domain"] for guaranteed in instance_details]},200 return {"domains": [guaranteed["domain"] for guaranteed in instance_details]},200
return {"instances": instance_details},200 return {"instances": instance_details},200
class Guarantees(Resource): class Guarantees(Resource):
get_parser = reqparse.RequestParser() get_parser = reqparse.RequestParser()
get_parser.add_argument("Client-Agent", default="unknown:0:unknown", type=str, required=False, help="The client name and version.", location="headers") get_parser.add_argument("Client-Agent", default="unknown:0:unknown", type=str, required=False, help="The client name and version.", location="headers")
@ -105,7 +105,7 @@ class Guarantees(Resource):
# db.session.add(new_endorsement) # db.session.add(new_endorsement)
db.session.commit() db.session.commit()
activitypub_pm.pm_admins( activitypub_pm.pm_admins(
message=f"Congratulations! Your instance has just been guaranteed by {instance.domain}. \n\nThis is an automated PM by the [Fediseer](https://fediseer.com) service.", message=f"Congratulations! Your instance has just been guaranteed by {instance.domain}. \n\nThis is an automated PM by the [Fediseer](https://fediseer.com) service. Replies will not be read.\nPlease contact @db0@lemmy.dbzer0.com for further inquiries.",
domain=target_instance.domain, domain=target_instance.domain,
software=target_instance.software, software=target_instance.software,
instance=target_instance, instance=target_instance,
@ -187,4 +187,4 @@ class Guarantees(Resource):
) )
orphan.set_as_oprhan() orphan.set_as_oprhan()
logger.info(f"{instance.domain} Withdrew guarantee from {domain}") logger.info(f"{instance.domain} Withdrew guarantee from {domain}")
return {"message":'Changed'}, 200 return {"message":'Changed'}, 200

View File

@ -23,7 +23,7 @@ def index():
} }
</style> </style>
""" """
head = f"""<head> head = f"""<head>
<title>Fediseer</title> <title>Fediseer</title>
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
@ -32,6 +32,33 @@ def index():
""" """
return(head + markdown(findex)) return(head + markdown(findex))
@logger.catch(reraise=True)
@OVERSEER.route('/faq')
# @cache.cached(timeout=300)
def faq():
with open(f'fediseer/templates/faq.md') as md_file:
md = md_file.read()
style = """<style>
body {
max-width: 120ex;
margin: 0 auto;
color: #333333;
line-height: 1.4;
font-family: sans-serif;
padding: 1em;
}
</style>
"""
head = f"""<head>
<title>Fediseer</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
{style}
</head>
"""
return(head + markdown(md))
@logger.catch(reraise=True) @logger.catch(reraise=True)
@OVERSEER.route('/.well-known/webfinger') @OVERSEER.route('/.well-known/webfinger')
def wellknown_redirect(): def wellknown_redirect():

View File

@ -0,0 +1,71 @@
# Fediseer FAQ
This document will attempt to provide some definitions and answers to common questions around the fediseer.
## What is the Fediseer?
The fediseer is a service for the fediverse which attempts to provide a crowdsourced human-curated spam/ham classification of fediverse instances as well as provide a public space to specify approval/disapproval of other instances.
In simple terms, using the fediseer, we attempt to figure out if an instance is spam or not through a human-driven system called the "chain of trust".
The three main concepts used in Fediseer are guarantees, endorsements and censures.
The fediseer provides a machine readable API to consume the data contained within.
## What is a guarantee?
Basically, any guaranteed instance is known as definitelly "not spam" (AKA "ham"). That doesn't mean any non-guaranteed instance is spam. Rather it is considered "unknown". The only reasoning to guarantee an instance is whether they are spam or not. The objective here being to prevent malicious actors from spawning an infinite amount of new instances on the fediverse to send spam.
Each instance can only be guaranteed by one instance and guarantee another instance. This is called the "chain of trust"
Guarantees are community driven. While the fediseer can guarantee at the top level as well, we hope that instance admins will guarantee the instances they know of and help ensure the health of the network.
## What is the chain of trust?
Because each instance on the fediseer can guarantee and be guaranteed by a single instance, this causes a chain to form starting from the fediseer itself. Any instance guaranteed by such an unbroken chain is considered as ham. If the guarantee for any instance in this chain is revoked, the chain of trust is broken and any instances below are considered not-guaranteed.
This allows the fediseer to quickly deal with spam instances that sneaked into the fediseer and then guaranteed a bunch more of the spammy friends. As the chain can be revoked higher up, even a whole spam network can be countered by revoking the guarantee from the first spammer guaranteed.
[Chain of Trust Devlog](https://dbzer0.com/blog/overseer-a-fediverse-chain-of-trust/)
## What is an endorsement?
An endorsement is a completely subjective positive judgement from one instance to another. Effectively signifying that instance A "approves" of instance B. The reason for this can be anything and do not have to be stated.
An instance can be approve of any number of instances and be endorsed by any number of instances. One can even get an autogenerated badge with the amount of endorsements they've received to display.
When looking at the instance whitelist, one can also filter by amount of endorsements. Likewise one can also export the list of instances endorsed by a subset of instances.
## What is a censure?
An censure is a completely subjective negative judgement from one instance to another. Effectively signifying that instance A "disapproves" of instance B. The reason for this can be anything and do not have to be stated.
An instance can be censure any number of instances and be censured by any number of instances.
One can export the list of instances censured by a subset of instances.
## What is an instance claim
A claimed instance is an instance whose admin has requisted an API key with which to use the fediseer as their instance.
Fediseer has no users. Instead it's driven by instance admins only. Instance admins likewise only act as their instances.
## How can I claim my instance?
You can either use the rest API we have provided, providing your instance domain and admin username on it. Alternativey you can use one of our frontends.
You will then receive an API key in PMs, which you can afterwards use to represent your instance on the fediseer.
## Doesn't this all cause fediverse centralization?
No. The fediseer has no official integration with fediverse software. The fediseer simply provides the information within in a machine-readable REST API. How this information is utilized is up to the various instance admins. One is perfectly free to not utilize the fediseer whatsoever.
Not only that, but the fediseer is free and open source software, allowing anyone to re-host it and run it according to their own principles. If you do not trust this fediseer instance, you can rehost yourself and people can switch instances by changing a domain name.
## Doesn't this make the fediseer an authority on the fediverse?
The fediseer is designed to be completely crowd-sourced as pertains to the chain of trust. The admin of the fediseer does not control what people guarantee, endorse or censure. The various instance admins are driving the chain of trust.

View File

@ -4,6 +4,8 @@ This is a [FOSS service](https://github.com/db0/fediseer) to help Fediverse inst
[What is Fediseer](https://dbzer0.com/blog/overseer-a-fediverse-chain-of-trust/) devlog [What is Fediseer](https://dbzer0.com/blog/overseer-a-fediverse-chain-of-trust/) devlog
Please check our [FAQ](/faq) for further questions.
## Scope ## Scope
This Fediseer is focused around anti-spam verification. We make no judgement on the content of the guaranteed communities other than they have been verified to not be fake spam instances and are making a good effort to block spam accounts. This Fediseer is focused around anti-spam verification. We make no judgement on the content of the guaranteed communities other than they have been verified to not be fake spam instances and are making a good effort to block spam accounts.