Vorstellung von donate ― einem selbstgehosteten Spendenservice fĂŒr Aufgaben


Vorstellung von donate ― einem selbstgehosteten Spendenservice fĂŒr Aufgaben

Merkmale:

  • KISS;
  • selbstgehostet;
  • Fehlen von GebĂŒhren (zum Beispiel, Bountysource und Gitcoin ziehen sich 10% von der Auszahlung ab);
  • UnterstĂŒtzung mehrerer KryptowĂ€hrungen (aktuell Bitcoin, Ethereum und Cardano);
  • Geplant (und vorgesehen) ist die UnterstĂŒtzung von GitLab, Gitea und anderen Git-Hosting-Diensten in Zukunft.
  • Globale Aufgabenliste von allen (d.h. einem zum Zeitpunkt der Nachrichtenverfassung) Instanzen auf donate.dumpstack.io.

Arbeitsmechanismus fĂŒr GitHub aus Sicht des Repository-Besitzers:

  • (optional) es ist erforderlich, den Dienst zu implementieren, es kann verwendet werden eine fertige Konfiguration fĂŒr NixOS;
  • es muss hinzugefĂŒgt werden GitHub Action — innerhalb wird ein Dienstprogramm aufgerufen, das die Aufgaben des Projekts scannt und einen Kommentar ĂŒber den aktuellen Status der Spenden-Wallets hinzufĂŒgt/aktualisiert, wobei der private Teil der Wallets nur auf dem Spenden-Server gespeichert wird (in Zukunft mit der Möglichkeit, dies offline fĂŒr große Spenden zu ermöglichen, zur manuellen BestĂ€tigung der Auszahlung);
  • in allen aktuellen Aufgaben (und neuen) erscheint eine Nachricht von github-actions[bot] mit den Adressen der Spenden-Wallets (Beispiel).

Arbeitsmechanismus aus Sicht des ausfĂŒhrenden Aufgaben:

  • im Kommentar zum Commit wird angegeben, welche spezifische Aufgabe dieser Commit löst (siehe Closing issues using keywords);
  • im Text des Pull Requests werden die Adressen der Wallets in einem bestimmten Format angegeben (zum Beispiel, BTC{address}).
  • bei Annahme des Pull Requests erfolgt die Auszahlung automatisch.
  • wenn die Wallets nicht angegeben sind oder nicht alle angegeben sind, erfolgt die Auszahlung der Mittel fĂŒr nicht angegebene Wallets an die Standard-Wallets (zum Beispiel kann dies eine gemeinsame Projekt-Wallet sein).

Sicherheit:

  • Die AngriffsflĂ€che ist insgesamt gering;
  • basierend auf den Arbeitsmechanismen sollte der Dienst in der Lage sein, Mittel eigenstĂ€ndig zu versenden, so dass der Zugang zum Server in jedem Fall Kontrolle ĂŒber die Mittel bedeutet — die einzige Lösung könnte die Arbeit im nicht automatisierten Modus sein (zum Beispiel manuelle BestĂ€tigung von Auszahlungen), die wahrscheinlich (wenn das Projekt erfolgreich genug ist, damit jemand auf diese FunktionalitĂ€t spenden kann, dann ist es nicht wahrscheinlich, sondern sicher) irgendwann implementiert werden wird;
  • kritisch wichtige Teile sind klar getrennt (in der Regel handelt es sich um die einzige Datei pay.go mit 200 Zeilen), was die Sicherheitscode-ÜberprĂŒfung vereinfacht;
  • Der Code hat eine unabhĂ€ngige SicherheitsĂŒberprĂŒfung bestanden, was nicht bedeutet, dass es keine Schwachstellen gibt, aber die Wahrscheinlichkeit ihres Vorhandenseins verringert, insbesondere im Hinblick auf die geplante regelmĂ€ĂŸige ÜberprĂŒfung;
  • Es gibt auch Teile, die nicht kontrolliert werden (zum Beispiel die APIs von GitHub/GitLab usw.), mögliche Schwachstellen in externen APIs sollen durch zusĂ€tzliche PrĂŒfungen geschlossen werden; dennoch ist das Problem im aktuellen Ökosystem insgesamt nicht lösbar und liegt außerhalb des Anwendungsbereichs (eine mögliche Schwachstelle, die es erlaubt, fremde Pull-Requests zu schließen und somit Code in fremde Projekte einzufĂŒgen - hat viel weitreichendere Folgen).

Quelle: linux.org.ru

60GB SSD 8Gb DDR4