Besonderheiten:
- KISS;
- selbstgehostet;
- keine GebĂŒhren (zum Beispiel, Bountysource und Gitcoin behalten 10 % der Auszahlung);
- UnterstĂŒtzung mehrerer KryptowĂ€hrungen (derzeit Bitcoin, Ethereum und Cardano);
- Die UnterstĂŒtzung fĂŒr GitLab, Gitea und andere Git-Hosting-Dienste ist vorgesehen und wird in Zukunft realisiert.
- Eine globale Aufgabenliste von allen (also einer, zum Zeitpunkt der Nachrichtenveröffentlichung) Instanzen auf donate.dumpstack.io.
So funktioniert es fĂŒr GitHub vom Seiten des Repository-Besitzers:
- (optional) Der Dienst muss bereitgestellt werden, eine bereits vorbereitete Konfiguration fĂŒr NixOS kann verwendet werden.;
- Es ist notwendig, GitHub Action hinzuzufĂŒgen â darin wird ein Dienstprogramm aufgerufen, das die Aufgaben des Projekts scannt und einen Kommentar ĂŒber den aktuellen Zustand der Spendenbrieftaschen hinzufĂŒgt/aktualisiert, wobei der private Teil der Brieftaschen ausschlieĂlich auf dem Spendenserver gespeichert wird (in Zukunft mit der Möglichkeit, fĂŒr gröĂere Spenden offline zu gehen, um die Auszahlung manuell zu bestĂ€tigen);
- In allen aktuellen Aufgaben (und neuen) erscheint eine Nachricht von github-actions[bot] mit den Adressen der Spendenbrieftaschen (Nummer 00 oder).
So funktioniert es vom Standpunkt des AusfĂŒhrenden der Aufgabe:
- Im Kommentar zum Commit wird angegeben, welche Aufgabe dieser Commit konkret löst (siehe. SchlieĂen von Issues mit SchlĂŒsselwörtern.);
- Im Text des Pull Requests werden die Wallet-Adressen in einem bestimmten Format angegeben (zum Beispiel. BTC{address}.).
- Bei der Annahme des Pull Requests erfolgt die Auszahlung automatisch.
- Wenn keine Wallets angegeben sind oder nicht alle angegeben werden, erfolgt die Zahlung fĂŒr nicht angegebene Wallets an die Standard-Wallets (zum Beispiel kann dies die allgemeine Wallet des Projekts sein).
Sicherheit:
- Die AngriffsflÀche ist insgesamt gering.
- Basierend auf der Funktionsweise muss der Dienst in der Lage sein, selbststĂ€ndig Gelder zu senden, sodass der Zugriff auf den Server in jedem Fall die Kontrolle ĂŒber die Gelder bedeutet â die einzige Lösung könnte nur die manuelle Arbeitsweise sein (zum Beispiel die manuelle BestĂ€tigung von Auszahlungen), was wahrscheinlich (wenn das Projekt genug Erfolg hat, damit jemand fĂŒr diese FunktionalitĂ€t spendet, dann nicht wahrscheinlich, sondern sicher) irgendwann umgesetzt wird.
- Kritische Teile sind eindeutig getrennt (es handelt sich im Wesentlichen um eine einzige Datei pay.go mit 200 Zeilen), wodurch die SicherheitsĂŒberprĂŒfung des Codes vereinfacht wird.
- Der Code hat eine unabhĂ€ngige SicherheitsprĂŒfung bestanden, was jedoch nicht bedeutet, dass keine Schwachstellen vorhanden sind. Es verringert jedoch die Wahrscheinlichkeit, 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/etc.), wobei mögliche Schwachstellen in diesen externen APIs durch zusĂ€tzliche ĂberprĂŒfungen geschlossen werden sollen. Dennoch ist das Problem in der aktuellen Ăkosystem insgesamt nicht lösbar und fĂ€llt auĂerhalb des Geltungsbereichs (eine potenzielle Schwachstelle, die es ermöglicht, fremde Pull-Requests zu schlieĂen und dadurch Code in fremde Projekte einzufĂŒgen, hat viel weitreichendere Folgen).
Quelle: linux.org.ru
