Vlastnosti:
- KISS;
- self-hosted;
- absence poplatků (například bountysource a gitcoin si berou 10% z vyplaty);
- podpora mnoha kryptoměn (v současnosti to je Bitcoin, Ethereum a Cardano);
- předpokládá se (a je plánována) podpora GitLab, Gitea a dalších Git hostitelů v budoucnu.
- globální seznam úkolů ze všech (tedy jednoho, k okamžiku psaní zprávy) instancí na donate.dumpstack.io.
Mechanismus práce pro GitHub ze strany vlastníka repozitáře:
- (volitelně) je nutné nasadit službu, lze použít hotovou konfiguraci pro NixOS;
- je nutné přidat GitHub Action — uvnitř se volá nástroj, který prohledává úkoly projektu a přidává/aktualizuje komentář o aktuálním stavu peněženek pro dary, přičemž soukromá část peněženek je uchovávána pouze na serveru darování (v budoucnu s možností přesunout do offline pro větší dary, pro ruční potvrzení vyplaty);
- ve všech aktuálních úkolech (a nových) se objeví zpráva od github-actions[bot] s adresami peněženek pro dary (příklad).
Mechanismus práce ze strany vykonavatele úkolu:
- ve zprávě o commitu se uvádí, který konkrétní úkol tento commit řeší (viz. uzavírání problémů pomocí klíčových slov);
- v těle pull requestu se uvádějí adresy peněženek v určitém formátu (například, BTC{address}).
- při přijetí pull requestu se výplata provede automaticky.
- pokud nejsou peněženky uvedeny, nebo nejsou uvedeny všechny, výplata prostředků pro neuváděné peněženky se provede na peněženky podle defaultu (například to může být společná peněženka projektu).
Bezpečnost:
- povrch útoku je celkově malý;
- na základě mechanismů práce by služba měla mít možnost posílat prostředky sama, takže získání přístupu k serveru bude znamenat kontrolu nad prostředky v každém případě — řešením může být pouze práce v neautomatizovaném režimu (například ruční potvrzení výplat), což pravděpodobně (pokud bude projekt dost úspěšný, aby někdo daroval na tuto funkcionalitu, tak ne pravděpodobně, ale určitě) bude někdy realizováno;
- kritické části jsou jasně odděleny (v podstatě je to jediný soubor pay.go o 200 řádcích), čímž se zjednodušuje bezpečnostní kontrola kódu;
- kód prošel nezávislým security code review, což neznamená absenci zranitelností, ale snižuje pravděpodobnost jejich existence, zejména vzhledem k plánované pravidelnosti revizí;
- také jsou části, které nejsou pod kontrolou (například API GitHub/GitLab/atd.), přičemž možné zranitelnosti ve třetím API plánujeme uzavřít dodatečnými kontrolami, nicméně celkově je problém v současném ekosystému neřešitelný a mimo rozsah (možná zranitelnost s možností uzavírat cizí pull requesty a tímto způsobem přidávat kód do cizích projektů - má mnohem globálnější následky).
Zdroj: linux.org.ru
