Характеристики:
- ЦЕЛУВКА;
- самостоятелно хостван;
- липса на такси (например, bountysource и gitcoin взимат 10% от плащането);
- поддръжка на множество криптовалути (в момента това са Bitcoin, Ethereum и Cardano);
- предполага се (и е планирана) поддръжка за GitLab, Gitea и други Git хостинг услуги в бъдеще.
- глобален списък с задачи от всички (тоест от един, по време на писането на новината) инстанции на donate.dumpstack.io.
Механизъм на работа за GitHub от страна на собственика на репозитория:
- (по желание) е необходимо да се разгръща услуга, може да се използва готова конфигурация за NixOS;
- необходимо е да се добави GitHub Action — вътре се извиква инструмент, който сканира задачите на проекта и добавя/актуализира коментар за текущото състояние на портфейлите за даряване, като в същото време личната част на портфейлите се съхранява само на сървъра за дарения (в бъдеще с възможност да се премести офлайн за големи дарения, за ръчно потвърждение на плащането);
- във всички текущи задачи (и нови) се появява съобщение от github-actions[bot] с адресите на портфейлите за дарявания (пример).
Механизъм на работа от страна на изпълняващия задачата:
- в коментара на комитата се посочва, коя именно задача решава този комит (вж. closing issues using keywords);
- в тялото на pull request се указват адресите на портфейлите в определен формат (например, BTC{address}).
- при приемане на pull request плащането се извършва автоматично.
- ако портфейлите не са указани, или не са указани всички, то плащането на средства за неуказаните портфейли се извършва на портфейлите по подразбиране (например, това може да бъде общ портфейл на проекта).
Сигурност:
- повърхността на атаката като цяло е малка;
- изхождайки от механизмите на работа, услугата трябва да има възможност да изпраща средства самостоятелно, така че получаването на достъп до сървъра ще означава контрол над средствата във всеки случай — решението може да бъде само работа в неавтоматизиран режим (например, ръчно потвърждение на плащания), което вероятно (ако проектът е достатъчно успешен, за да дари някой за тази функционалност, то не е вероятно, а точно) ще бъде реализирано;
- критично важните части са ясно отделени (по същество, това е единствен файл pay.go на 200 реда), което опростява прегледа на сигурността на кода;
- кодът премина независим преглед на сигурността, което не означава липса на уязвимости, но намалява вероятността от тяхното наличие, особено на фона на планираната редовност на прегледите;
- съществуват и части, които не се контролират (например, API на GitHub/GitLab и др.), като възможните уязвимости в външния API ще бъдат покривани с допълнителни проверки, но все пак, проблемът в текущата екосистема остава нерешен и извън обсега (възможна уязвимост с, например, възможността да се затварят чужди pull request-и и така да се добавя код в чужди проекти - има много по-глобални последствия).
Източник: linux.org.ru
