コンテンツへの支払のL402 paywallであるapertureと、Wrapped invoiceのlnproxyを組み合わせたdocker composeのコンテナです。コンテンツの料金をクリエイターに支払う一方で、金額の一部をコンテンツ配信サービスを運用する事業者が、手数料として徴収できるようにします。
L402とWrapped Invoiceを組み合わせる本リポジトリの方法は、L402の権利となるpreimageを確率的に不正入手する手段が潜在しています。現実的にどの程度不正が可能かは検証できておりません。詳しくは下記をご覧ください。 https://coinkeninfo.com/wrapped-invoice/
- Add
./lnproxy/.env
- Add
./aperture/.env
- Setup AWS S3 bucket (currently only public bucket supported)
- Add
./contents/.env
Add .lnd/
directory to project root:
.lnd
├── data
│ └── chain
│ └── bitcoin
│ └── mainnet
│ ├── admin.macaroon
│ └── invoice.macaroon
└── tls.cert
If you use Voltage Cloud, you can download admin|invoice.macaroon
by the following steps:
- Voltage Cloud > Manage Access > Macaroon Bakery
- Download
Type Admin|Invoice Default Invoice Macaroon
- Add
aperture.yaml
under theconfig/
directory:
config
└── aperture.yaml
- Configure the following values in
aperture.yaml
:authenticator
servername
- e.g.
l402.example.com
- e.g.
services.hostregexp
- e.g.
l402.example.com
- e.g.
Add ssl/
directory under the nginx/
directory:
nginx
├── default.conf
└── ssl
├── fullchain.pem
└── privkey.pem
ssl/
directory includes TLS certifications for the hosting server domain (which is indicated as l402.example.com
in .example
files).
make daemon
make build-cli
appcli --rpcserver=l402.example.com:8080 \
addcontent --id="avatar.png" --title="My Avatar" --author="moti" --filepath="under/the/s3/path/image.png" --recipient_lud16="moti@getalby.com" --price=30
appcli --rpcserver=l402.example.com:8080 \
updatecontent --id="avatar.png" --title="My Avatar" --author="moti" --filepath="under/the/s3/path/image.png" --recipient_lud16="moti@getalby.com" --price=30
appcli --rpcserver=l402.example.com:8080 \
removecontent --id="avatar.png"
appcli --rpcserver=l402.example.com:8080 \
getcontent --id="avatar.png"