#llama #inference in browser #wasm
added input prompt
data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIGlkPSJmb3JtIiBhY3Rpb249IiMiPgogICAgPGxhYmVsPnByb21wdDwvbGFiZWw+CiAgICA8aW5wdXQgaWQ9InByb21wdCIgdHlwZT0idGV4dCIvPgogICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0idG9nZ2xlLWluZmVyZW5jZSI+UnVuIGluZmVyZW5jZTwvYnV0dG9uPgogIDwvZm9ybT4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zb2xlLmxvZygicHJvbXB0IiwgZXZlbnQuZGF0YS5wcm9tcHQpCgogICAgUHJvbWlzZS5hbGwoCiAgICAgIFsKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy9zdG9yaWVzMjYwSy5iaW4/ZG93bmxvYWQ9dHJ1ZSIpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKSwKICAgICAgICBmZXRjaCgiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9rYXJwYXRoeS90aW55bGxhbWFzL3Jlc29sdmUvbWFpbi9zdG9yaWVzMjYwSy90b2s1MTIuYmluIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpCiAgICAgIF0sCiAgICApLnRoZW4oYXN5bmMgZGF0YSA9PiB7CiAgICAgIGxldCBtb2RlbCA9IGRhdGFbMF07CiAgICAgIGxldCB0b2tlbml6ZXIgPSBkYXRhWzFdOwoKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBXQVNJQ29udGV4dCh7CiAgICAgICAgYXJnczogWyIiLCAibW9kZWwuYmluIiwgIi10IiwgIjAuOSIsICItaSIsIGV2ZW50LmRhdGEucHJvbXB0XSwKICAgICAgICBzdGRvdXQ6IChkYXRhKSA9PiBzZWxmLnBvc3RNZXNzYWdlKHsgZGF0YSB9KSwKICAgICAgICBzdGRlcnI6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoInN0ZGVyciIsIGVyciksCiAgICAgICAgZnM6IHsKICAgICAgICAgICIvbW9kZWwuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL21vZGVsLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KG1vZGVsKSwKICAgICAgICAgIH0sCiAgICAgICAgICAiL3Rva2VuaXplci5iaW4iOiB7CiAgICAgICAgICAgIHBhdGg6ICIvdG9rZW5pemVyLmJpbiIsCiAgICAgICAgICAgIHRpbWVzdGFtcHM6IHsKICAgICAgICAgICAgICBhY2Nlc3M6IG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgY2hhbmdlOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogbmV3IERhdGUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbW9kZTogImJpbmFyeSIsCiAgICAgICAgICAgIGNvbnRlbnQ6IG5ldyBVaW50OEFycmF5KHRva2VuaXplciksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0pOwoKICAgICAgV0FTSS5zdGFydChmZXRjaCgiaHR0cHM6Ly9pbmZlcmVuY2Uud2FzbWxhYnMuZGV2L2xsYW1hMi1jLndhc20iKSwgY29udGV4dCk7CiAgICB9KTsKCiAgfSwgZmFsc2UpOwogIGAKICAKICBjb25zdCB3b3JrZXJfYmxvYiA9IG5ldyBCbG9iKFt3b3JrZXJfc3RyXSk7CiAgY29uc3Qgd29ya2VyX2Jsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh3b3JrZXJfYmxvYik7CiAgCiAgbGV0IHdvcmtlcjsKICBsZXQgcnVubmluZyA9IGZhbHNlOwogIGxldCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLWluZmVyZW5jZSIpOwogIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIChlKSA9PiB7CiAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgIGNvbnN0IHByb21wdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQiKS52YWx1ZQogICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwoKICAgIGlmICghcnVubmluZykgewogICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiIjsKCiAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX2Jsb2JfdXJsLCB7IHR5cGU6ICJtb2R1bGUiIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIHByb21wdDogcHJvbXB0CiAgICAgIH0pOwogICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChzdG9wVGltZW91dCAhPSBudWxsKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoc3RvcFRpbWVvdXQpOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudC5kYXRhOwogICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IGAke291dHB1dC50ZXh0Q29udGVudH0ke2RhdGF9YDsKCiAgICAgICAgc3RvcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgICB9LCA1MDApOwogICAgICB9KTsKCiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIGNvbnNvbGUubG9nKCJFUlJPUjogIiwgZXJyb3IpOwogICAgICB9KTsKCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJTdG9wIGluZmVyZW5jZSI7CiAgICAgIHJ1bm5pbmcgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHdvcmtlciAhPSBudWxsKSB7CiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwogICAgICAgIHdvcmtlciA9IG51bGw7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICJSdW4gaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgfQogIH0pOwogIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
-
npub122ce...hv33
#llama running locally in browser #wasm
data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+UnVuIExsYW1hIDIgbW9kZWxzIGluIHRoZSBicm93c2VyIHdpdGggV2ViQXNzZW1ibHk8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxidXR0b24gY2xhc3M9ImJ1dHRvbiIgaWQ9InRvZ2dsZS1pbmZlcmVuY2UiPlJ1biBpbmZlcmVuY2U8L2J1dHRvbj4KICA8cCBpZD0ib3V0cHV0Ij48L3A+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogIGNvbnN0IHdvcmtlcl9zdHIgPSBgCiAgaW1wb3J0IHsgV0FTSSwgV0FTSUNvbnRleHQgfSBmcm9tICJodHRwczovL2Nkbi5za3lwYWNrLmRldi9AcnVubm8vd2FzaSI7CiAgCiAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzCiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBjb25zdCB7IGV2ZW50VHlwZSwgZXZlbnREYXRhLCBldmVudElkIH0gPSBldmVudC5kYXRhOwoKICAgIC8vIFB1bGxpbmcgdGhlIG1vZGVsCiAgICBQcm9taXNlLmFsbCgKICAgICAgWwogICAgICAgIGZldGNoKCJodHRwczovL2h1Z2dpbmdmYWNlLmNvL2thcnBhdGh5L3RpbnlsbGFtYXMvcmVzb2x2ZS9tYWluL3N0b3JpZXMyNjBLL3N0b3JpZXMyNjBLLmJpbj9kb3dubG9hZD10cnVlIikudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpLAogICAgICAgIGZldGNoKCJodHRwczovL2h1Z2dpbmdmYWNlLmNvL2thcnBhdGh5L3RpbnlsbGFtYXMvcmVzb2x2ZS9tYWluL3N0b3JpZXMyNjBLL3RvazUxMi5iaW4iKS50aGVuKHJlcyA9PiByZXMuYXJyYXlCdWZmZXIoKSkKICAgICAgXSwKICAgICkudGhlbihhc3luYyBkYXRhID0+IHsKICAgICAgbGV0IG1vZGVsID0gZGF0YVswXTsKICAgICAgbGV0IHRva2VuaXplciA9IGRhdGFbMV07CgogICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFdBU0lDb250ZXh0KHsKICAgICAgICBhcmdzOiBbIiIsICJtb2RlbC5iaW4iLCAiLXQiLCAiMC45Il0sCiAgICAgICAgc3Rkb3V0OiAoZGF0YSkgPT4gc2VsZi5wb3N0TWVzc2FnZSh7IGRhdGEgfSksCiAgICAgICAgc3RkZXJyOiAoZXJyKSA9PiBjb25zb2xlLmVycm9yKCJzdGRlcnIiLCBlcnIpLAogICAgICAgIGZzOiB7CiAgICAgICAgICAiL21vZGVsLmJpbiI6IHsKICAgICAgICAgICAgcGF0aDogIi9tb2RlbC5iaW4iLAogICAgICAgICAgICB0aW1lc3RhbXBzOiB7CiAgICAgICAgICAgICAgYWNjZXNzOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIGNoYW5nZTogbmV3IERhdGUoKSwKICAgICAgICAgICAgICBtb2RpZmljYXRpb246IG5ldyBEYXRlKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG1vZGU6ICJiaW5hcnkiLAogICAgICAgICAgICBjb250ZW50OiBuZXcgVWludDhBcnJheShtb2RlbCksCiAgICAgICAgICB9LAogICAgICAgICAgIi90b2tlbml6ZXIuYmluIjogewogICAgICAgICAgICBwYXRoOiAiL3Rva2VuaXplci5iaW4iLAogICAgICAgICAgICB0aW1lc3RhbXBzOiB7CiAgICAgICAgICAgICAgYWNjZXNzOiBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIGNoYW5nZTogbmV3IERhdGUoKSwKICAgICAgICAgICAgICBtb2RpZmljYXRpb246IG5ldyBEYXRlKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG1vZGU6ICJiaW5hcnkiLAogICAgICAgICAgICBjb250ZW50OiBuZXcgVWludDhBcnJheSh0b2tlbml6ZXIpLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9KTsKCiAgICAgIFdBU0kuc3RhcnQoZmV0Y2goImh0dHBzOi8vaW5mZXJlbmNlLndhc21sYWJzLmRldi9sbGFtYTItYy53YXNtIiksIGNvbnRleHQpOwogICAgfSk7CgogIH0sIGZhbHNlKTsKICBgCiAgY29uc3Qgd29ya2VyX2Jsb2IgPSBuZXcgQmxvYihbd29ya2VyX3N0cl0pOwogIGNvbnN0IHdvcmtlcl9ibG9iX3VybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwod29ya2VyX2Jsb2IpOwoKICBjb25zb2xlLmxvZygid29ya2VyX2Jsb2JfdXJsIiwgd29ya2VyX2Jsb2JfdXJsKQogIAogIGxldCB3b3JrZXI7CiAgbGV0IHJ1bm5pbmcgPSBmYWxzZTsKICBsZXQgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZ2dsZS1pbmZlcmVuY2UiKTsKICBsZXQgc3RvcFRpbWVvdXQgPSBudWxsOwoKICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7CgogICAgaWYgKCFydW5uaW5nKSB7CiAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICIiOwoKICAgICAgd29ya2VyID0gbmV3IFdvcmtlcih3b3JrZXJfYmxvYl91cmwsIHsgdHlwZTogIm1vZHVsZSIgfSk7CiAgICAgIC8vd29ya2VyID0gbmV3IFdvcmtlcigiL3dvcmtlci5qcyIsIHsgdHlwZTogIm1vZHVsZSIgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7fSk7CiAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgaWYgKHN0b3BUaW1lb3V0ICE9IG51bGwpIHsKICAgICAgICAgIGNsZWFyVGltZW91dChzdG9wVGltZW91dCk7CiAgICAgICAgfQoKICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGV2ZW50LmRhdGE7CiAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gYCR7b3V0cHV0LnRleHRDb250ZW50fSR7ZGF0YX1gOwoKICAgICAgICBzdG9wVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgcnVubmluZyA9IGZhbHNlOwogICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gIlJ1biBpbmZlcmVuY2UiOwogICAgICAgIH0sIDUwMCk7CiAgICAgIH0pOwoKICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgY29uc29sZS5sb2coIkVSUk9SOiAiLCBlcnJvcik7CiAgICAgIH0pOwoKICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gIlN0b3AgaW5mZXJlbmNlIjsKICAgICAgcnVubmluZyA9IHRydWU7CiAgICB9IGVsc2UgewogICAgICBpZiAod29ya2VyICE9IG51bGwpIHsKICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7CiAgICAgICAgd29ya2VyID0gbnVsbDsKICAgICAgfQoKICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gIlJ1biBpbmZlcmVuY2UiOwogICAgICBydW5uaW5nID0gZmFsc2U7CiAgICB9CiAgfSk7CiAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
unlike direct p2p connection, p2p built on tor hidden services do not reveal ips of peers
#nostr #client #apps could integrate #tor #filehosting servers
they could provide all files they have stored locally on device
tor does port forwarding automatically, any device can host tor hidden service
then we just need events to announce these hidden service addresses for #nip96 file servers hosted on smartphones
pow per byte #powperbyte is a solution to put #nostr #filehost #servers on 3smartphones
#decentralize file hosting
why pow per byte #powperbyte is exellent for small file host providers?
with pow per byte implementation, high speed service can be guaranteed for those who provide required pow.
without pow requirement small providers will not be able to provide service with reasonable speeds, when even few files becomes too popular
pow per byte
this could be implemented on #nip96 fileservers
one direction or both: for file uploads and/or for file retrievals
why new #nip96 #fileserver implementation?
there were 2+1 existing implementations
nostrcheck-server - didnt install on android
nostr-build - didnt install on android
void-cat - this github page is somewhere in the void
this new implementatino is just ~100 lines of javascript, has just few dependencies and install in few minutes on low end phone hw
View quoted note →
#andoid #upload #files #nostr #dev
updated nip-96 fileserver, running on android + tor

minimal nip-96 file server behind tor
you can install this server on android phone, see below for instructions
upload
curl --socks5-hostname 127.0.0.1:9050 -X POST -H "Content-Type...
minimal nip-96 file server behind tor
you can install this easily on android phone using termux
this example server is running on android phone
http://s6mn26rvxxoiezkh43e42on4nsnj2etpkvy7pjkj4rgpv7n5n4gjgqyd.onion/uploads/d1b81a303d340fb689c6b6f4f474d9e04f314ed9ad8925686e4106452b53181b
upload with curl
curl --socks5-hostname 127.0.0.1:9050 -X POST -H "Content-Type: multipart/form-data" -F "file=@test.txt" http://s6mn26rvxxoiezkh43e42on4nsnj2etpkvy7pjkj4rgpv7n5n4gjgqyd.onion/upload

minimal nip-96 file server behind tor
upload
curl --socks5-hostname 127.0.0.1:9050 -X POST -H "Content-Type: multipart/form-data" -F "file=@test.txt" http://s6mn26rv...
there could be lightweight onion routing server for nip-96 files
this lightweight server would not host files, but instead store them in database like
file_hash;download_url;decryption_key
server could host files to any clearweb host, encrypted
when requested by hash it would proxy file download and decrypt content on the fly. although decryption can also happen at client end
this routing server could be hosted on android phone with not much disk space available
so nip-96 is files mapped to hashes
just like ipfs, with different tradeoffs
but
its still not law enforcement bruteforce attack resistant
why not put some nodes behind tor?
if we get like 3+ nodes behind tor that mirror content, its pretty much unstoppable file hosting. when referring to files with hashes instead of single server, its way more 404 resistant than any single onion service
93 Gb/s
HORNET: High-speed Onion Routing at the Network Layer
We present HORNET, a system that enables high-speed end-to-end
anonymous channels by leveraging next generation network archi-
tectures. HORNET is designed as a low-latency onion routing sys-
tem that operates at the network layer thus enabling a wide range
of applications. Our system uses only symmetric cryptography
for data forwarding yet requires no per-flow state on intermediate
nodes. This design enables HORNET nodes to process anonymous
traffic at over 93 Gb/s. HORNET can also scale as required, adding
minimal processing overhead per additional anonymous channel.
We discuss design and implementation details, as well as a perfor-
mance and security evaluation.
i still dont know how primal works
my best guess is that global/popular is generated manually by primal admin once per day
like.mjs is a tool to send likes to nostr events #like
data:text/html;r=relay.nostr.band;k=01b0b1960ffe89eaa11e67ca999d832e55350dd17c0ea9eeee1d5d6ac6f0fdd4;f=fileloader.html;base64,PHNjcmlwdD4KKCgpID0+IHsKICBjb25zdCByID0gIndzczovLyIgKyBsb2NhdGlvbi5ocmVmLm1hdGNoKC9kYXRhOlxTKz87cj0oW147XSspXFMqO2Jhc2U2NCwvKVsxXQogIGNvbnN0IGsgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC9kYXRhOlxTKz87az0oW147XSspXFMqO2Jhc2U2NCwvKVsxXQogIGNvbnN0IGYgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC9kYXRhOlxTKz87Zj0oW147XSspXFMqO2Jhc2U2NCwvKVsxXQoKICBkb2N1bWVudC53cml0ZSgiPHA+Y29ubmVjdGluZyB0byAiICsgciArICI8L3A+IikKICBjb25zdCBzID0gbmV3IFdlYlNvY2tldChyKQoKICBzLm9ub3BlbiA9ICgpID0+IHsKICAgIHMuc2VuZCgnWyJSRVEiLCAicSIsIHsiYXV0aG9ycyI6IFsiJyArIGsgKyAnIl0sICIjZCI6IFsiJyArIGYgKyAnIl19XScpCiAgfQoKICBzLm9ubWVzc2FnZSA9IGFzeW5jIChlKSA9PiB7CiAgICBzLmNsb3NlKCkKICAgIGRvY3VtZW50LndyaXRlKEpTT04ucGFyc2UoZS5kYXRhKVsyXS5jb250ZW50KQoKICAgIHdoaWxlKCF3aW5kb3cubG9hZGVkKXsKICAgICAgYXdhaXQgbmV3IFByb21pc2UoYyA9PiBzZXRUaW1lb3V0KGMsIDEwKSkKICAgIH0KCiAgICBkaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9hZCIpKQogIH0KfSkoKQo8L3NjcmlwdD4K#2ad94eb6ebd64e1a927a970a3279819e89920b8acfe001d5f111612ab7295285/inline/quiet
tldr; upload files, link files
they are never gonna take it down
maybe
well, ok
relays are just servers
you gotta use onion relays for resisting law enforcement brute force attacks
added markdown for #fileloader
data:text/html;r=nos.lol;k=01b0b1960ffe89eaa11e67ca999d832e55350dd17c0ea9eeee1d5d6ac6f0fdd4;f=fileloader.html;base64,PHNjcmlwdD4KKCgpID0+IHsKICBjb25zdCByID0gIndzczovLyIgKyBsb2NhdGlvbi5ocmVmLm1hdGNoKC9kYXRhOlxTKz87cj0oW147XSspXFMqO2Jhc2U2NCwvKVsxXQogIGNvbnN0IGsgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC9kYXRhOlxTKz87az0oW147XSspXFMqO2Jhc2U2NCwvKVsxXQogIGNvbnN0IGYgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC9kYXRhOlxTKz87Zj0oW147XSspXFMqO2Jhc2U2NCwvKVsxXQoKICBkb2N1bWVudC53cml0ZSgiPHA+Y29ubmVjdGluZyB0byAiICsgciArICI8L3A+IikKICBjb25zdCBzID0gbmV3IFdlYlNvY2tldChyKQoKICBzLm9ub3BlbiA9ICgpID0+IHsKICAgIHMuc2VuZCgnWyJSRVEiLCAicSIsIHsiYXV0aG9ycyI6IFsiJyArIGsgKyAnIl0sICIjZCI6IFsiJyArIGYgKyAnIl19XScpCiAgfQoKICBzLm9ubWVzc2FnZSA9IGFzeW5jIChlKSA9PiB7CiAgICBzLmNsb3NlKCkKICAgIGRvY3VtZW50LndyaXRlKEpTT04ucGFyc2UoZS5kYXRhKVsyXS5jb250ZW50KQoKICAgIHdoaWxlKCF3aW5kb3cubG9hZGVkKXsKICAgICAgYXdhaXQgbmV3IFByb21pc2UoYyA9PiBzZXRUaW1lb3V0KGMsIDEwKSkKICAgIH0KCiAgICBkaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9hZCIpKQogIH0KfSkoKQo8L3NjcmlwdD4K#74267e1f22bcf2c41de5e448b7db6550e73dab94c6bb1a94237d7f2ca19f90c2/inline/quiet/markdown
install web server and tor hidden service to android phone
no root required
complete guide. you only need to install one apk, termux

install web server and tor hidden service to android phone
no root required
install termux
pkg update
pkg install ip-route2
pkg install sshd
ip address // get your ip
whoami
passwd // set password
from your...
android makes nice web server
install termux
pkg update
pkg install ip-route2
pkg install sshd
ip address // get your ip
whoami
passwd // set password
// from your pc
ssh username@ip_address -p 8022 // login with password