-
@ 4ba8e86d:89d32de4
2025-04-21 02:13:56Tutorial feito por nostr:nostr:npub1rc56x0ek0dd303eph523g3chm0wmrs5wdk6vs0ehd0m5fn8t7y4sqra3tk poste original abaixo:
Parte 1 : http://xh6liiypqffzwnu5734ucwps37tn2g6npthvugz3gdoqpikujju525yd.onion/263585/tutorial-debloat-de-celulares-android-via-adb-parte-1
Parte 2 : http://xh6liiypqffzwnu5734ucwps37tn2g6npthvugz3gdoqpikujju525yd.onion/index.php/263586/tutorial-debloat-de-celulares-android-via-adb-parte-2
Quando o assunto é privacidade em celulares, uma das medidas comumente mencionadas é a remoção de bloatwares do dispositivo, também chamado de debloat. O meio mais eficiente para isso sem dúvidas é a troca de sistema operacional. Custom Rom’s como LineageOS, GrapheneOS, Iodé, CalyxOS, etc, já são bastante enxutos nesse quesito, principalmente quanto não é instalado os G-Apps com o sistema. No entanto, essa prática pode acabar resultando em problemas indesejados como a perca de funções do dispositivo, e até mesmo incompatibilidade com apps bancários, tornando este método mais atrativo para quem possui mais de um dispositivo e separando um apenas para privacidade. Pensando nisso, pessoas que possuem apenas um único dispositivo móvel, que são necessitadas desses apps ou funções, mas, ao mesmo tempo, tem essa visão em prol da privacidade, buscam por um meio-termo entre manter a Stock rom, e não ter seus dados coletados por esses bloatwares. Felizmente, a remoção de bloatwares é possível e pode ser realizada via root, ou mais da maneira que este artigo irá tratar, via adb.
O que são bloatwares?
Bloatware é a junção das palavras bloat (inchar) + software (programa), ou seja, um bloatware é basicamente um programa inútil ou facilmente substituível — colocado em seu dispositivo previamente pela fabricante e operadora — que está no seu dispositivo apenas ocupando espaço de armazenamento, consumindo memória RAM e pior, coletando seus dados e enviando para servidores externos, além de serem mais pontos de vulnerabilidades.
O que é o adb?
O Android Debug Brigde, ou apenas adb, é uma ferramenta que se utiliza das permissões de usuário shell e permite o envio de comandos vindo de um computador para um dispositivo Android exigindo apenas que a depuração USB esteja ativa, mas também pode ser usada diretamente no celular a partir do Android 11, com o uso do Termux e a depuração sem fio (ou depuração wifi). A ferramenta funciona normalmente em dispositivos sem root, e também funciona caso o celular esteja em Recovery Mode.
Requisitos:
Para computadores:
• Depuração USB ativa no celular; • Computador com adb; • Cabo USB;
Para celulares:
• Depuração sem fio (ou depuração wifi) ativa no celular; • Termux; • Android 11 ou superior;
Para ambos:
• Firewall NetGuard instalado e configurado no celular; • Lista de bloatwares para seu dispositivo;
Ativação de depuração:
Para ativar a Depuração USB em seu dispositivo, pesquise como ativar as opções de desenvolvedor de seu dispositivo, e lá ative a depuração. No caso da depuração sem fio, sua ativação irá ser necessária apenas no momento que for conectar o dispositivo ao Termux.
Instalação e configuração do NetGuard
O NetGuard pode ser instalado através da própria Google Play Store, mas de preferência instale pela F-Droid ou Github para evitar telemetria.
F-Droid: https://f-droid.org/packages/eu.faircode.netguard/
Github: https://github.com/M66B/NetGuard/releases
Após instalado, configure da seguinte maneira:
Configurações → padrões (lista branca/negra) → ative as 3 primeiras opções (bloquear wifi, bloquear dados móveis e aplicar regras ‘quando tela estiver ligada’);
Configurações → opções avançadas → ative as duas primeiras (administrar aplicativos do sistema e registrar acesso a internet);
Com isso, todos os apps estarão sendo bloqueados de acessar a internet, seja por wifi ou dados móveis, e na página principal do app basta permitir o acesso a rede para os apps que você vai usar (se necessário). Permita que o app rode em segundo plano sem restrição da otimização de bateria, assim quando o celular ligar, ele já estará ativo.
Lista de bloatwares
Nem todos os bloatwares são genéricos, haverá bloatwares diferentes conforme a marca, modelo, versão do Android, e até mesmo região.
Para obter uma lista de bloatwares de seu dispositivo, caso seu aparelho já possua um tempo de existência, você encontrará listas prontas facilmente apenas pesquisando por elas. Supondo que temos um Samsung Galaxy Note 10 Plus em mãos, basta pesquisar em seu motor de busca por:
Samsung Galaxy Note 10 Plus bloatware list
Provavelmente essas listas já terão inclusas todos os bloatwares das mais diversas regiões, lhe poupando o trabalho de buscar por alguma lista mais específica.
Caso seu aparelho seja muito recente, e/ou não encontre uma lista pronta de bloatwares, devo dizer que você acaba de pegar em merda, pois é chato para um caralho pesquisar por cada aplicação para saber sua função, se é essencial para o sistema ou se é facilmente substituível.
De antemão já aviso, que mais para frente, caso vossa gostosura remova um desses aplicativos que era essencial para o sistema sem saber, vai acabar resultando na perda de alguma função importante, ou pior, ao reiniciar o aparelho o sistema pode estar quebrado, lhe obrigando a seguir com uma formatação, e repetir todo o processo novamente.
Download do adb em computadores
Para usar a ferramenta do adb em computadores, basta baixar o pacote chamado SDK platform-tools, disponível através deste link: https://developer.android.com/tools/releases/platform-tools. Por ele, você consegue o download para Windows, Mac e Linux.
Uma vez baixado, basta extrair o arquivo zipado, contendo dentro dele uma pasta chamada platform-tools que basta ser aberta no terminal para se usar o adb.
Download do adb em celulares com Termux.
Para usar a ferramenta do adb diretamente no celular, antes temos que baixar o app Termux, que é um emulador de terminal linux, e já possui o adb em seu repositório. Você encontra o app na Google Play Store, mas novamente recomendo baixar pela F-Droid ou diretamente no Github do projeto.
F-Droid: https://f-droid.org/en/packages/com.termux/
Github: https://github.com/termux/termux-app/releases
Processo de debloat
Antes de iniciarmos, é importante deixar claro que não é para você sair removendo todos os bloatwares de cara sem mais nem menos, afinal alguns deles precisam antes ser substituídos, podem ser essenciais para você para alguma atividade ou função, ou até mesmo são insubstituíveis.
Alguns exemplos de bloatwares que a substituição é necessária antes da remoção, é o Launcher, afinal, é a interface gráfica do sistema, e o teclado, que sem ele só é possível digitar com teclado externo. O Launcher e teclado podem ser substituídos por quaisquer outros, minha recomendação pessoal é por aqueles que respeitam sua privacidade, como Pie Launcher e Simple Laucher, enquanto o teclado pelo OpenBoard e FlorisBoard, todos open-source e disponíveis da F-Droid.
Identifique entre a lista de bloatwares, quais você gosta, precisa ou prefere não substituir, de maneira alguma você é obrigado a remover todos os bloatwares possíveis, modifique seu sistema a seu bel-prazer. O NetGuard lista todos os apps do celular com o nome do pacote, com isso você pode filtrar bem qual deles não remover.
Um exemplo claro de bloatware insubstituível e, portanto, não pode ser removido, é o com.android.mtp, um protocolo onde sua função é auxiliar a comunicação do dispositivo com um computador via USB, mas por algum motivo, tem acesso a rede e se comunica frequentemente com servidores externos. Para esses casos, e melhor solução mesmo é bloquear o acesso a rede desses bloatwares com o NetGuard.
MTP tentando comunicação com servidores externos:
Executando o adb shell
No computador
Faça backup de todos os seus arquivos importantes para algum armazenamento externo, e formate seu celular com o hard reset. Após a formatação, e a ativação da depuração USB, conecte seu aparelho e o pc com o auxílio de um cabo USB. Muito provavelmente seu dispositivo irá apenas começar a carregar, por isso permita a transferência de dados, para que o computador consiga se comunicar normalmente com o celular.
Já no pc, abra a pasta platform-tools dentro do terminal, e execute o seguinte comando:
./adb start-server
O resultado deve ser:
daemon not running; starting now at tcp:5037 daemon started successfully
E caso não apareça nada, execute:
./adb kill-server
E inicie novamente.
Com o adb conectado ao celular, execute:
./adb shell
Para poder executar comandos diretamente para o dispositivo. No meu caso, meu celular é um Redmi Note 8 Pro, codinome Begonia.
Logo o resultado deve ser:
begonia:/ $
Caso ocorra algum erro do tipo:
adb: device unauthorized. This adb server’s $ADB_VENDOR_KEYS is not set Try ‘adb kill-server’ if that seems wrong. Otherwise check for a confirmation dialog on your device.
Verifique no celular se apareceu alguma confirmação para autorizar a depuração USB, caso sim, autorize e tente novamente. Caso não apareça nada, execute o kill-server e repita o processo.
No celular
Após realizar o mesmo processo de backup e hard reset citado anteriormente, instale o Termux e, com ele iniciado, execute o comando:
pkg install android-tools
Quando surgir a mensagem “Do you want to continue? [Y/n]”, basta dar enter novamente que já aceita e finaliza a instalação
Agora, vá até as opções de desenvolvedor, e ative a depuração sem fio. Dentro das opções da depuração sem fio, terá uma opção de emparelhamento do dispositivo com um código, que irá informar para você um código em emparelhamento, com um endereço IP e porta, que será usado para a conexão com o Termux.
Para facilitar o processo, recomendo que abra tanto as configurações quanto o Termux ao mesmo tempo, e divida a tela com os dois app’s, como da maneira a seguir:
Para parear o Termux com o dispositivo, não é necessário digitar o ip informado, basta trocar por “localhost”, já a porta e o código de emparelhamento, deve ser digitado exatamente como informado. Execute:
adb pair localhost:porta CódigoDeEmparelhamento
De acordo com a imagem mostrada anteriormente, o comando ficaria “adb pair localhost:41255 757495”.
Com o dispositivo emparelhado com o Termux, agora basta conectar para conseguir executar os comandos, para isso execute:
adb connect localhost:porta
Obs: a porta que você deve informar neste comando não é a mesma informada com o código de emparelhamento, e sim a informada na tela principal da depuração sem fio.
Pronto! Termux e adb conectado com sucesso ao dispositivo, agora basta executar normalmente o adb shell:
adb shell
Remoção na prática Com o adb shell executado, você está pronto para remover os bloatwares. No meu caso, irei mostrar apenas a remoção de um app (Google Maps), já que o comando é o mesmo para qualquer outro, mudando apenas o nome do pacote.
Dentro do NetGuard, verificando as informações do Google Maps:
Podemos ver que mesmo fora de uso, e com a localização do dispositivo desativado, o app está tentando loucamente se comunicar com servidores externos, e informar sabe-se lá que peste. Mas sem novidades até aqui, o mais importante é que podemos ver que o nome do pacote do Google Maps é com.google.android.apps.maps, e para o remover do celular, basta executar:
pm uninstall –user 0 com.google.android.apps.maps
E pronto, bloatware removido! Agora basta repetir o processo para o resto dos bloatwares, trocando apenas o nome do pacote.
Para acelerar o processo, você pode já criar uma lista do bloco de notas com os comandos, e quando colar no terminal, irá executar um atrás do outro.
Exemplo de lista:
Caso a donzela tenha removido alguma coisa sem querer, também é possível recuperar o pacote com o comando:
cmd package install-existing nome.do.pacote
Pós-debloat
Após limpar o máximo possível o seu sistema, reinicie o aparelho, caso entre no como recovery e não seja possível dar reboot, significa que você removeu algum app “essencial” para o sistema, e terá que formatar o aparelho e repetir toda a remoção novamente, desta vez removendo poucos bloatwares de uma vez, e reiniciando o aparelho até descobrir qual deles não pode ser removido. Sim, dá trabalho… quem mandou querer privacidade?
Caso o aparelho reinicie normalmente após a remoção, parabéns, agora basta usar seu celular como bem entender! Mantenha o NetGuard sempre executando e os bloatwares que não foram possíveis remover não irão se comunicar com servidores externos, passe a usar apps open source da F-Droid e instale outros apps através da Aurora Store ao invés da Google Play Store.
Referências: Caso você seja um Australopithecus e tenha achado este guia difícil, eis uma videoaula (3:14:40) do Anderson do canal Ciberdef, realizando todo o processo: http://odysee.com/@zai:5/Como-remover-at%C3%A9-200-APLICATIVOS-que-colocam-a-sua-PRIVACIDADE-E-SEGURAN%C3%87A-em-risco.:4?lid=6d50f40314eee7e2f218536d9e5d300290931d23
Pdf’s do Anderson citados na videoaula: créditos ao anon6837264 http://eternalcbrzpicytj4zyguygpmkjlkddxob7tptlr25cdipe5svyqoqd.onion/file/3863a834d29285d397b73a4af6fb1bbe67c888d72d30/t-05e63192d02ffd.pdf
Processo de instalação do Termux e adb no celular: https://youtu.be/APolZrPHSms
-
@ 3f770d65:7a745b24
2025-04-21 00:15:06At the recent Launch Music Festival and Conference in Lancaster, PA, featuring over 120 musicians across three days, I volunteered my time with Tunestr and Phantom Power Music's initiative to introduce artists to Bitcoin, Nostr, and the value-for-value model. Tunestr sponsored a stage, live-streaming 21 bands to platforms like Tunestr.io, Fountain.fm and other Nostr/Podcasting 2.0 apps and on-boarding as many others as possible at our conference booth. You may have seen me spamming about this over the last few days.
V4V Earnings
Day 1: 180,000 sats
Day 2: 300,000 sats
Day 3: Over 500,000 sats
Who?
Here are the artists that were on-boarded to Fountain and were live streaming on the Value-for-Value stage:
nostr:npub1cruu4z0hwg7n3r2k7262vx8jsmra3xpku85frl5fnfvrwz7rd7mq7e403w nostr:npub12xeh3n7w8700z4tpd6xlhlvg4vtg4pvpxd584ll5sva539tutc3q0tn3tz nostr:npub1rc80p4v60uzfhvdgxemhvcqnzdj7t59xujxdy0lcjxml3uwdezyqtrpe0j @npub16vxr4pc2ww3yaez9q4s53zkejjfd0djs9lfe55sjhnqkh nostr:npub10uspdzg4fl7md95mqnjszxx82ckdly8ezac0t3s06a0gsf4f3lys8ypeak nostr:npub1gnyzexr40qut0za2c4a0x27p4e3qc22wekhcw3uvdx8mwa3pen0s9z90wk nostr:npub13qrrw2h4z52m7jh0spefrwtysl4psfkfv6j4j672se5hkhvtyw7qu0almy nostr:npub1p0kuqxxw2mxczc90vcurvfq7ljuw2394kkqk6gqnn2cq0y9eq5nq87jtkk nostr:npub182kq0sdp7chm67uq58cf4vvl3lk37z8mm5k5067xe09fqqaaxjsqlcazej nostr:npub162hr8kd96vxlanvggl08hmyy37qsn8ehgj7za7squl83um56epnswkr399 nostr:npub17jzk5ex2rafres09c4dnn5mm00eejye6nrurnlla6yn22zcpl7vqg6vhvx nostr:npub176rnksulheuanfx8y8cr2mrth4lh33svvpztggjjm6j2pqw6m56sq7s9vz nostr:npub1akv7t7xpalhsc4nseljs0c886jzuhq8u42qdcwvu972f3mme9tjsgp5xxk nostr:npub18x0gv872489lrczp9d9m4hx59r754x7p9rg2jkgvt7ul3kuqewtqsssn24
Many more musicians were on-boarded to Fountain, however, we were unable to obtain all of their npubs.
THANK YOU TO ALL ZAPPERS AND BOOSTERS!
Musicians “Get It”
My key takeaway was the musicians' absolute understanding that the current digital landscape along with legacy social media is failing them. Every artist I spoke with recognized how algorithms hinder fan connection and how gatekeepers prevent fair compensation for their work. They all use Spotify, but they only do so out of necessity. They felt the music industry is primed for both a social and monetary revolution. Some of them were even speaking my language…
Because of this, concepts like decentralization, censorship resistance, owning your content, and controlling your social graph weren't just understood by them, they were instantly embraced. The excitement was real; they immediately saw the potential and agreed with me. Bitcoin and Nostr felt genuinely punk rock and that helped a lot of them identify with what we were offering them.
The Tools and the Issues
While the Nostr ecosystem offers a wide variety of tools, we focused on introducing three key applications at this event to keep things clear for newcomers:
- Fountain, with a music focus, was the primary tool for onboarding attendees onto Nostr. Fountain was also chosen thanks to Fountain’s built-in Lightning wallet.
- Primal, as a social alternative, was demonstrated to show how users can take their Nostr identity and content seamlessly between different applications.
- Tunestr.io, lastly was showcased for its live video streaming capabilities.
Although we highlighted these three, we did inform attendees about the broader range of available apps and pointed them to
nostrapps.com
if they wanted to explore further, aiming to educate without overwhelming them.This review highlights several UX issues with the Fountain app, particularly concerning profile updates, wallet functionality, and user discovery. While Fountain does work well, these minor hiccups make it extremely hard for on-boarding and education.
- Profile Issues:
- When a user edits their profile (e.g., Username/Nostr address, Lightning address) either during or after creation, the changes don't appear to consistently update across the app or sync correctly with Nostr relays.
- Specifically, the main profile display continues to show the old default Username/Nostr address and Lightning address inside Fountain and on other Nostr clients.
- However, the updated Username/Nostr address does appear on https://fountain.fm (chosen-username@fountain.fm) and is visible within the "Edit Profile" screen itself in the app.
- This inconsistency is confusing for users, as they see their updated information in some places but not on their main public-facing profile within the app. I confirmed this by observing a new user sign up and edit their username – the edit screen showed the new name, but the profile display in Fountain did not update and we did not see it inside Primal, Damus, Amethyst, etc.
- Wallet Limitations:
- The app's built-in wallet cannot scan Lightning address QR codes to initiate payments.
- This caused problems during the event where users imported Bitcoin from Azte.co vouchers into their Fountain wallets. When they tried to Zap a band by scanning a QR code on the live tally board, Fountain displayed an error message stating the invoice or QR code was invalid.
- While suggesting musicians install Primal as a second Nostr app was a potential fix for the QR code issue, (and I mentioned it to some), the burden of onboarding users onto two separate applications, potentially managing two different wallets, and explaining which one works for specific tasks creates a confusing and frustrating user experience.
- Search Difficulties:
- Finding other users within the Fountain app is challenging. I was unable to find profiles from brand new users by entering their chosen Fountain username.
- To find a new user, I had to resort to visiting their profile on the web (fountain.fm/username) to retrieve their npub. Then, open Primal and follow them. Finally, when searching for their username, since I was now following them, I was able to find their profile.
- This search issue is compounded by the profile syncing problem mentioned earlier, as even if found via other clients, their displayed information is outdated.
- Searching for the event to Boost/Zap inside Fountain was harder than it should have been the first two days as the live stream did not appear at the top of the screen inside the tap. This was resolved on the third day of the event.
Improving the Onboarding Experience
To better support user growth, educators and on-boarders need more feature complete and user-friendly applications. I love our developers and I will always sing their praises from the highest mountain tops, however I also recognize that the current tools present challenges that hinder a smooth onboarding experience.
One potential approach explored was guiding users to use Primal (including its built-in wallet) in conjunction with Wavlake via Nostr Wallet Connect (NWC). While this could facilitate certain functions like music streaming, zaps, and QR code scanning (which require both Primal and Wavlake apps), Wavlake itself has usability issues. These include inconsistent or separate profiles between web and mobile apps, persistent "Login" buttons even when logged in on the mobile app with a Nostr identity, and the minor inconvenience of needing two separate applications. Although NWC setup is relatively easy and helps streamline the process, the need to switch between apps adds complexity, especially when time is limited and we’re aiming to showcase the benefits of this new system.
Ultimately, we need applications that are more feature-complete and intuitive for mainstream users to improve the onboarding experience significantly.
Looking forward to the future
I anticipate that most of these issues will be resolved when these applications address them in the near future. Specifically, this would involve Fountain fixing its profile issues and integrating Nostr Wallet Connect (NWC) to allow users to utilize their Primal wallet, or by enabling the scanning of QR codes that pay out to Lightning addresses. Alternatively, if Wavlake resolves the consistency problems mentioned earlier, this would also significantly improve the situation giving us two viable solutions for musicians.
My ideal onboarding event experience would involve having all the previously mentioned issues resolved. Additionally, I would love to see every attendee receive a $5 or $10 voucher to help them start engaging with value-for-value, rather than just the limited number we distributed recently. The goal is to have everyone actively zapping and sending Bitcoin throughout the event. Maybe we can find a large sponsor to facilitate this in the future?
What's particularly exciting is the Launch conference's strong interest in integrating value-for-value across their entire program for all musicians and speakers at their next event in Dallas, Texas, coming later this fall. This presents a significant opportunity to onboard over 100+ musicians to Bitcoin and Nostr, which in turn will help onboard their fans and supporters.
We need significantly more zaps and more zappers! It's unreasonable to expect the same dedicated individuals to continuously support new users; they are being bled dry. A shift is needed towards more people using bitcoin for everyday transactions, treating it as money. This brings me back to my ideal onboarding experience: securing a sponsor to essentially give participants bitcoin funds specifically for zapping and tipping artists. This method serves as a practical lesson in using bitcoin as money and showcases the value-for-value principle from the outset.
-
@ e3ba5e1a:5e433365
2025-04-15 11:03:15Prelude
I wrote this post differently than any of my others. It started with a discussion with AI on an OPSec-inspired review of separation of powers, and evolved into quite an exciting debate! I asked Grok to write up a summary in my overall writing style, which it got pretty well. I've decided to post it exactly as-is. Ultimately, I think there are two solid ideas driving my stance here:
- Perfect is the enemy of the good
- Failure is the crucible of success
Beyond that, just some hard-core belief in freedom, separation of powers, and operating from self-interest.
Intro
Alright, buckle up. I’ve been chewing on this idea for a while, and it’s time to spit it out. Let’s look at the U.S. government like I’d look at a codebase under a cybersecurity audit—OPSEC style, no fluff. Forget the endless debates about what politicians should do. That’s noise. I want to talk about what they can do, the raw powers baked into the system, and why we should stop pretending those powers are sacred. If there’s a hole, either patch it or exploit it. No half-measures. And yeah, I’m okay if the whole thing crashes a bit—failure’s a feature, not a bug.
The Filibuster: A Security Rule with No Teeth
You ever see a firewall rule that’s more theater than protection? That’s the Senate filibuster. Everyone acts like it’s this untouchable guardian of democracy, but here’s the deal: a simple majority can torch it any day. It’s not a law; it’s a Senate preference, like choosing tabs over spaces. When people call killing it the “nuclear option,” I roll my eyes. Nuclear? It’s a button labeled “press me.” If a party wants it gone, they’ll do it. So why the dance?
I say stop playing games. Get rid of the filibuster. If you’re one of those folks who thinks it’s the only thing saving us from tyranny, fine—push for a constitutional amendment to lock it in. That’s a real patch, not a Post-it note. Until then, it’s just a vulnerability begging to be exploited. Every time a party threatens to nuke it, they’re admitting it’s not essential. So let’s stop pretending and move on.
Supreme Court Packing: Because Nine’s Just a Number
Here’s another fun one: the Supreme Court. Nine justices, right? Sounds official. Except it’s not. The Constitution doesn’t say nine—it’s silent on the number. Congress could pass a law tomorrow to make it 15, 20, or 42 (hitchhiker’s reference, anyone?). Packing the court is always on the table, and both sides know it. It’s like a root exploit just sitting there, waiting for someone to log in.
So why not call the bluff? If you’re in power—say, Trump’s back in the game—say, “I’m packing the court unless we amend the Constitution to fix it at nine.” Force the issue. No more shadowboxing. And honestly? The court’s got way too much power anyway. It’s not supposed to be a super-legislature, but here we are, with justices’ ideologies driving the bus. That’s a bug, not a feature. If the court weren’t such a kingmaker, packing it wouldn’t even matter. Maybe we should be talking about clipping its wings instead of just its size.
The Executive Should Go Full Klingon
Let’s talk presidents. I’m not saying they should wear Klingon armor and start shouting “Qapla’!”—though, let’s be real, that’d be awesome. I’m saying the executive should use every scrap of power the Constitution hands them. Enforce the laws you agree with, sideline the ones you don’t. If Congress doesn’t like it, they’ve got tools: pass new laws, override vetoes, or—here’s the big one—cut the budget. That’s not chaos; that’s the system working as designed.
Right now, the real problem isn’t the president overreaching; it’s the bureaucracy. It’s like a daemon running in the background, eating CPU and ignoring the user. The president’s supposed to be the one steering, but the administrative state’s got its own agenda. Let the executive flex, push the limits, and force Congress to check it. Norms? Pfft. The Constitution’s the spec sheet—stick to it.
Let the System Crash
Here’s where I get a little spicy: I’m totally fine if the government grinds to a halt. Deadlock isn’t a disaster; it’s a feature. If the branches can’t agree, let the president veto, let Congress starve the budget, let enforcement stall. Don’t tell me about “essential services.” Nothing’s so critical it can’t take a breather. Shutdowns force everyone to the table—debate, compromise, or expose who’s dropping the ball. If the public loses trust? Good. They’ll vote out the clowns or live with the circus they elected.
Think of it like a server crash. Sometimes you need a hard reboot to clear the cruft. If voters keep picking the same bad admins, well, the country gets what it deserves. Failure’s the best teacher—way better than limping along on autopilot.
States Are the Real MVPs
If the feds fumble, states step up. Right now, states act like junior devs waiting for the lead engineer to sign off. Why? Federal money. It’s a leash, and it’s tight. Cut that cash, and states will remember they’re autonomous. Some will shine, others will tank—looking at you, California. And I’m okay with that. Let people flee to better-run states. No bailouts, no excuses. States are like competing startups: the good ones thrive, the bad ones pivot or die.
Could it get uneven? Sure. Some states might turn into sci-fi utopias while others look like a post-apocalyptic vidya game. That’s the point—competition sorts it out. Citizens can move, markets adjust, and failure’s a signal to fix your act.
Chaos Isn’t the Enemy
Yeah, this sounds messy. States ignoring federal law, external threats poking at our seams, maybe even a constitutional crisis. I’m not scared. The Supreme Court’s there to referee interstate fights, and Congress sets the rules for state-to-state play. But if it all falls apart? Still cool. States can sort it without a babysitter—it’ll be ugly, but freedom’s worth it. External enemies? They’ll either unify us or break us. If we can’t rally, we don’t deserve the win.
Centralizing power to avoid this is like rewriting your app in a single thread to prevent race conditions—sure, it’s simpler, but you’re begging for a deadlock. Decentralized chaos lets states experiment, lets people escape, lets markets breathe. States competing to cut regulations to attract businesses? That’s a race to the bottom for red tape, but a race to the top for innovation—workers might gripe, but they’ll push back, and the tension’s healthy. Bring it—let the cage match play out. The Constitution’s checks are enough if we stop coddling the system.
Why This Matters
I’m not pitching a utopia. I’m pitching a stress test. The U.S. isn’t a fragile porcelain doll; it’s a rugged piece of hardware built to take some hits. Let it fail a little—filibuster, court, feds, whatever. Patch the holes with amendments if you want, or lean into the grind. Either way, stop fearing the crash. It’s how we debug the republic.
So, what’s your take? Ready to let the system rumble, or got a better way to secure the code? Hit me up—I’m all ears.
-
@ f11e91c5:59a0b04a
2025-04-30 07:52:21!!!2022-07-07に書かれた記事です。
暗号通貨とかでお弁当売ってます 11:30〜14:00ぐらいでやってます
◆住所 木曜日・東京都渋谷区宇田川町41 (アベマタワーの下らへん)
◆お値段
Monacoin 3.9mona
Bitzeny 390zny
Bitcoin 3900sats (#lightningNetwork)
Ethereum 0.0039Ether(#zkSync)
39=thank you. (円を基準にしてません)
最近は週に一回になりました。 他の日はキッチンカーの現場を探したり色々してます。 東京都内で平日ランチ出店出来そうな場所があればぜひご連絡を!
写真はNFCタグです。 スマホにウォレットがあればタッチして3900satsで決済出来ます。 正直こんな怪しい手書きのNFCタグなんて絶対にビットコイナーは触りたくも無いだろうなと思いますが、これでも良いんだぜというメッセージです。
今までbtcpayのposでしたが速度を追求してこれに変更しました。 たまに上手くいかないですがそしたら渋々POS出すので温かい目でよろしくお願いします。
ノードを建てたり決済したりで1年経ちました。 最近も少しずつノードを建てる方が増えてるみたいで本当凄いですねUmbrel 大体の人がルーティングに果敢に挑むのを見つつ 奥さんに土下座しながら費用を捻出する弱小の私は決済の利便性を全開で振り切るしか無いので応援よろしくお願いします。
あえて あえて言うのであれば、ルーティングも楽しいですけど やはり本当の意味での即時決済や相手を選んでチャネルを繋げる楽しさもあるよとお伝えしたいっ!! 決済を受け入れないと分からない所ですが 承認がいらない時点で画期的です。
QRでもタッチでも金額指定でも入力でも もうやりようには出来てしまうし進化が恐ろしく早いので1番利用の多いpaypayの手数料(事業者側のね)を考えたらビットコイン凄いじゃない!と叫びたくなる。 が、やはり税制面や価格の変動(うちはBTC固定だけども)ウォレットの操作や普及率を考えるとまぁ難しい所もあるんですかね。
それでも継続的に沢山の人が色んな活動をしてるので私も何か出来ることがあれば 今後も奥さんに土下座しながら頑張って行きたいと思います。
(Originally posted 2022-07-07)
I sell bento lunches for cryptocurrency. We’re open roughly 11:30 a.m. – 2:00 p.m. Address Thursdays – 41 Udagawa-chō, Shibuya-ku, Tokyo (around the base of Abema Tower)
Prices Coin Price Note Monacoin 3.9 MONA
Bitzeny 390 ZNY Bitcoin 3,900 sats (Lightning Network)
Ethereum 0.0039 ETH (zkSync) “39” sounds like “thank you” in Japanese. Prices aren’t pegged to yen.These days I’m open only once a week. On other days I’m out scouting new spots for the kitchen-car. If you know weekday-lunch locations inside Tokyo where I could set up, please let me know!
The photo shows an NFC tag. If your phone has a Lightning wallet, just tap and pay 3,900 sats. I admit this hand-written NFC tag looks shady—any self-respecting Bitcoiner probably wouldn’t want to tap it—but the point is: even this works!
I used to run a BTCPay POS, but I switched to this setup for speed. Sometimes the tap payment fails; if that happens I reluctantly pull out the old POS. Thanks for your patience.
It’s been one year since I spun up a node and started accepting Lightning payments. So many people are now running their own nodes—Umbrel really is amazing. While the big players bravely chase routing fees, I’m a tiny operator scraping together funds while begging my wife for forgiveness, so I’m all-in on maximising payment convenience. Your support means a lot!
If I may add: routing is fun, but instant, trust-minimised payments and the thrill of choosing whom to open channels with are just as exciting. You’ll only understand once you start accepting payments yourself—zero-confirmation settlement really is revolutionary.
QR codes, NFC taps, fixed amounts, manual entry… the possibilities keep multiplying, and the pace of innovation is scary fast. When I compare it to the merchant fees on Japan’s most-used service, PayPay, I want to shout: “Bitcoin is incredible!” Sure, taxes, price volatility (my shop is BTC-denominated, though), wallet UX, and adoption hurdles are still pain points.
Even so, lots of people keep building cool stuff, so I’ll keep doing what I can—still on my knees to my wife, but moving forward!
-
@ 91bea5cd:1df4451c
2025-04-15 06:27:28Básico
bash lsblk # Lista todos os diretorios montados.
Para criar o sistema de arquivos:
bash mkfs.btrfs -L "ThePool" -f /dev/sdx
Criando um subvolume:
bash btrfs subvolume create SubVol
Montando Sistema de Arquivos:
bash mount -o compress=zlib,subvol=SubVol,autodefrag /dev/sdx /mnt
Lista os discos formatados no diretório:
bash btrfs filesystem show /mnt
Adiciona novo disco ao subvolume:
bash btrfs device add -f /dev/sdy /mnt
Lista novamente os discos do subvolume:
bash btrfs filesystem show /mnt
Exibe uso dos discos do subvolume:
bash btrfs filesystem df /mnt
Balancea os dados entre os discos sobre raid1:
bash btrfs filesystem balance start -dconvert=raid1 -mconvert=raid1 /mnt
Scrub é uma passagem por todos os dados e metadados do sistema de arquivos e verifica as somas de verificação. Se uma cópia válida estiver disponível (perfis de grupo de blocos replicados), a danificada será reparada. Todas as cópias dos perfis replicados são validadas.
iniciar o processo de depuração :
bash btrfs scrub start /mnt
ver o status do processo de depuração Btrfs em execução:
bash btrfs scrub status /mnt
ver o status do scrub Btrfs para cada um dos dispositivos
bash btrfs scrub status -d / data btrfs scrub cancel / data
Para retomar o processo de depuração do Btrfs que você cancelou ou pausou:
btrfs scrub resume / data
Listando os subvolumes:
bash btrfs subvolume list /Reports
Criando um instantâneo dos subvolumes:
Aqui, estamos criando um instantâneo de leitura e gravação chamado snap de marketing do subvolume de marketing.
bash btrfs subvolume snapshot /Reports/marketing /Reports/marketing-snap
Além disso, você pode criar um instantâneo somente leitura usando o sinalizador -r conforme mostrado. O marketing-rosnap é um instantâneo somente leitura do subvolume de marketing
bash btrfs subvolume snapshot -r /Reports/marketing /Reports/marketing-rosnap
Forçar a sincronização do sistema de arquivos usando o utilitário 'sync'
Para forçar a sincronização do sistema de arquivos, invoque a opção de sincronização conforme mostrado. Observe que o sistema de arquivos já deve estar montado para que o processo de sincronização continue com sucesso.
bash btrfs filsystem sync /Reports
Para excluir o dispositivo do sistema de arquivos, use o comando device delete conforme mostrado.
bash btrfs device delete /dev/sdc /Reports
Para sondar o status de um scrub, use o comando scrub status com a opção -dR .
bash btrfs scrub status -dR / Relatórios
Para cancelar a execução do scrub, use o comando scrub cancel .
bash $ sudo btrfs scrub cancel / Reports
Para retomar ou continuar com uma depuração interrompida anteriormente, execute o comando de cancelamento de depuração
bash sudo btrfs scrub resume /Reports
mostra o uso do dispositivo de armazenamento:
btrfs filesystem usage /data
Para distribuir os dados, metadados e dados do sistema em todos os dispositivos de armazenamento do RAID (incluindo o dispositivo de armazenamento recém-adicionado) montados no diretório /data , execute o seguinte comando:
sudo btrfs balance start --full-balance /data
Pode demorar um pouco para espalhar os dados, metadados e dados do sistema em todos os dispositivos de armazenamento do RAID se ele contiver muitos dados.
Opções importantes de montagem Btrfs
Nesta seção, vou explicar algumas das importantes opções de montagem do Btrfs. Então vamos começar.
As opções de montagem Btrfs mais importantes são:
**1. acl e noacl
**ACL gerencia permissões de usuários e grupos para os arquivos/diretórios do sistema de arquivos Btrfs.
A opção de montagem acl Btrfs habilita ACL. Para desabilitar a ACL, você pode usar a opção de montagem noacl .
Por padrão, a ACL está habilitada. Portanto, o sistema de arquivos Btrfs usa a opção de montagem acl por padrão.
**2. autodefrag e noautodefrag
**Desfragmentar um sistema de arquivos Btrfs melhorará o desempenho do sistema de arquivos reduzindo a fragmentação de dados.
A opção de montagem autodefrag permite a desfragmentação automática do sistema de arquivos Btrfs.
A opção de montagem noautodefrag desativa a desfragmentação automática do sistema de arquivos Btrfs.
Por padrão, a desfragmentação automática está desabilitada. Portanto, o sistema de arquivos Btrfs usa a opção de montagem noautodefrag por padrão.
**3. compactar e compactar-forçar
**Controla a compactação de dados no nível do sistema de arquivos do sistema de arquivos Btrfs.
A opção compactar compacta apenas os arquivos que valem a pena compactar (se compactar o arquivo economizar espaço em disco).
A opção compress-force compacta todos os arquivos do sistema de arquivos Btrfs, mesmo que a compactação do arquivo aumente seu tamanho.
O sistema de arquivos Btrfs suporta muitos algoritmos de compactação e cada um dos algoritmos de compactação possui diferentes níveis de compactação.
Os algoritmos de compactação suportados pelo Btrfs são: lzo , zlib (nível 1 a 9) e zstd (nível 1 a 15).
Você pode especificar qual algoritmo de compactação usar para o sistema de arquivos Btrfs com uma das seguintes opções de montagem:
- compress=algoritmo:nível
- compress-force=algoritmo:nível
Para obter mais informações, consulte meu artigo Como habilitar a compactação do sistema de arquivos Btrfs .
**4. subvol e subvolid
**Estas opções de montagem são usadas para montar separadamente um subvolume específico de um sistema de arquivos Btrfs.
A opção de montagem subvol é usada para montar o subvolume de um sistema de arquivos Btrfs usando seu caminho relativo.
A opção de montagem subvolid é usada para montar o subvolume de um sistema de arquivos Btrfs usando o ID do subvolume.
Para obter mais informações, consulte meu artigo Como criar e montar subvolumes Btrfs .
**5. dispositivo
A opção de montagem de dispositivo** é usada no sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs.
Em alguns casos, o sistema operacional pode falhar ao detectar os dispositivos de armazenamento usados em um sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs. Nesses casos, você pode usar a opção de montagem do dispositivo para especificar os dispositivos que deseja usar para o sistema de arquivos de vários dispositivos Btrfs ou RAID.
Você pode usar a opção de montagem de dispositivo várias vezes para carregar diferentes dispositivos de armazenamento para o sistema de arquivos de vários dispositivos Btrfs ou RAID.
Você pode usar o nome do dispositivo (ou seja, sdb , sdc ) ou UUID , UUID_SUB ou PARTUUID do dispositivo de armazenamento com a opção de montagem do dispositivo para identificar o dispositivo de armazenamento.
Por exemplo,
- dispositivo=/dev/sdb
- dispositivo=/dev/sdb,dispositivo=/dev/sdc
- dispositivo=UUID_SUB=490a263d-eb9a-4558-931e-998d4d080c5d
- device=UUID_SUB=490a263d-eb9a-4558-931e-998d4d080c5d,device=UUID_SUB=f7ce4875-0874-436a-b47d-3edef66d3424
**6. degraded
A opção de montagem degradada** permite que um RAID Btrfs seja montado com menos dispositivos de armazenamento do que o perfil RAID requer.
Por exemplo, o perfil raid1 requer a presença de 2 dispositivos de armazenamento. Se um dos dispositivos de armazenamento não estiver disponível em qualquer caso, você usa a opção de montagem degradada para montar o RAID mesmo que 1 de 2 dispositivos de armazenamento esteja disponível.
**7. commit
A opção commit** mount é usada para definir o intervalo (em segundos) dentro do qual os dados serão gravados no dispositivo de armazenamento.
O padrão é definido como 30 segundos.
Para definir o intervalo de confirmação para 15 segundos, você pode usar a opção de montagem commit=15 (digamos).
**8. ssd e nossd
A opção de montagem ssd** informa ao sistema de arquivos Btrfs que o sistema de arquivos está usando um dispositivo de armazenamento SSD, e o sistema de arquivos Btrfs faz a otimização SSD necessária.
A opção de montagem nossd desativa a otimização do SSD.
O sistema de arquivos Btrfs detecta automaticamente se um SSD é usado para o sistema de arquivos Btrfs. Se um SSD for usado, a opção de montagem de SSD será habilitada. Caso contrário, a opção de montagem nossd é habilitada.
**9. ssd_spread e nossd_spread
A opção de montagem ssd_spread** tenta alocar grandes blocos contínuos de espaço não utilizado do SSD. Esse recurso melhora o desempenho de SSDs de baixo custo (baratos).
A opção de montagem nossd_spread desativa o recurso ssd_spread .
O sistema de arquivos Btrfs detecta automaticamente se um SSD é usado para o sistema de arquivos Btrfs. Se um SSD for usado, a opção de montagem ssd_spread será habilitada. Caso contrário, a opção de montagem nossd_spread é habilitada.
**10. descarte e nodiscard
Se você estiver usando um SSD que suporte TRIM enfileirado assíncrono (SATA rev3.1), a opção de montagem de descarte** permitirá o descarte de blocos de arquivos liberados. Isso melhorará o desempenho do SSD.
Se o SSD não suportar TRIM enfileirado assíncrono, a opção de montagem de descarte prejudicará o desempenho do SSD. Nesse caso, a opção de montagem nodiscard deve ser usada.
Por padrão, a opção de montagem nodiscard é usada.
**11. norecovery
Se a opção de montagem norecovery** for usada, o sistema de arquivos Btrfs não tentará executar a operação de recuperação de dados no momento da montagem.
**12. usebackuproot e nousebackuproot
Se a opção de montagem usebackuproot for usada, o sistema de arquivos Btrfs tentará recuperar qualquer raiz de árvore ruim/corrompida no momento da montagem. O sistema de arquivos Btrfs pode armazenar várias raízes de árvore no sistema de arquivos. A opção de montagem usebackuproot** procurará uma boa raiz de árvore e usará a primeira boa que encontrar.
A opção de montagem nousebackuproot não verificará ou recuperará raízes de árvore inválidas/corrompidas no momento da montagem. Este é o comportamento padrão do sistema de arquivos Btrfs.
**13. space_cache, space_cache=version, nospace_cache e clear_cache
A opção de montagem space_cache** é usada para controlar o cache de espaço livre. O cache de espaço livre é usado para melhorar o desempenho da leitura do espaço livre do grupo de blocos do sistema de arquivos Btrfs na memória (RAM).
O sistema de arquivos Btrfs suporta 2 versões do cache de espaço livre: v1 (padrão) e v2
O mecanismo de cache de espaço livre v2 melhora o desempenho de sistemas de arquivos grandes (tamanho de vários terabytes).
Você pode usar a opção de montagem space_cache=v1 para definir a v1 do cache de espaço livre e a opção de montagem space_cache=v2 para definir a v2 do cache de espaço livre.
A opção de montagem clear_cache é usada para limpar o cache de espaço livre.
Quando o cache de espaço livre v2 é criado, o cache deve ser limpo para criar um cache de espaço livre v1 .
Portanto, para usar o cache de espaço livre v1 após a criação do cache de espaço livre v2 , as opções de montagem clear_cache e space_cache=v1 devem ser combinadas: clear_cache,space_cache=v1
A opção de montagem nospace_cache é usada para desabilitar o cache de espaço livre.
Para desabilitar o cache de espaço livre após a criação do cache v1 ou v2 , as opções de montagem nospace_cache e clear_cache devem ser combinadas: clear_cache,nosapce_cache
**14. skip_balance
Por padrão, a operação de balanceamento interrompida/pausada de um sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs será retomada automaticamente assim que o sistema de arquivos Btrfs for montado. Para desabilitar a retomada automática da operação de equilíbrio interrompido/pausado em um sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs, você pode usar a opção de montagem skip_balance .**
**15. datacow e nodatacow
A opção datacow** mount habilita o recurso Copy-on-Write (CoW) do sistema de arquivos Btrfs. É o comportamento padrão.
Se você deseja desabilitar o recurso Copy-on-Write (CoW) do sistema de arquivos Btrfs para os arquivos recém-criados, monte o sistema de arquivos Btrfs com a opção de montagem nodatacow .
**16. datasum e nodatasum
A opção datasum** mount habilita a soma de verificação de dados para arquivos recém-criados do sistema de arquivos Btrfs. Este é o comportamento padrão.
Se você não quiser que o sistema de arquivos Btrfs faça a soma de verificação dos dados dos arquivos recém-criados, monte o sistema de arquivos Btrfs com a opção de montagem nodatasum .
Perfis Btrfs
Um perfil Btrfs é usado para informar ao sistema de arquivos Btrfs quantas cópias dos dados/metadados devem ser mantidas e quais níveis de RAID devem ser usados para os dados/metadados. O sistema de arquivos Btrfs contém muitos perfis. Entendê-los o ajudará a configurar um RAID Btrfs da maneira que você deseja.
Os perfis Btrfs disponíveis são os seguintes:
single : Se o perfil único for usado para os dados/metadados, apenas uma cópia dos dados/metadados será armazenada no sistema de arquivos, mesmo se você adicionar vários dispositivos de armazenamento ao sistema de arquivos. Assim, 100% do espaço em disco de cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos pode ser utilizado.
dup : Se o perfil dup for usado para os dados/metadados, cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos manterá duas cópias dos dados/metadados. Assim, 50% do espaço em disco de cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos pode ser utilizado.
raid0 : No perfil raid0 , os dados/metadados serão divididos igualmente em todos os dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, não haverá dados/metadados redundantes (duplicados). Assim, 100% do espaço em disco de cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos pode ser usado. Se, em qualquer caso, um dos dispositivos de armazenamento falhar, todo o sistema de arquivos será corrompido. Você precisará de pelo menos dois dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid0 .
raid1 : No perfil raid1 , duas cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, a matriz RAID pode sobreviver a uma falha de unidade. Mas você pode usar apenas 50% do espaço total em disco. Você precisará de pelo menos dois dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid1 .
raid1c3 : No perfil raid1c3 , três cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, a matriz RAID pode sobreviver a duas falhas de unidade, mas você pode usar apenas 33% do espaço total em disco. Você precisará de pelo menos três dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid1c3 .
raid1c4 : No perfil raid1c4 , quatro cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, a matriz RAID pode sobreviver a três falhas de unidade, mas você pode usar apenas 25% do espaço total em disco. Você precisará de pelo menos quatro dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid1c4 .
raid10 : No perfil raid10 , duas cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos, como no perfil raid1 . Além disso, os dados/metadados serão divididos entre os dispositivos de armazenamento, como no perfil raid0 .
O perfil raid10 é um híbrido dos perfis raid1 e raid0 . Alguns dos dispositivos de armazenamento formam arrays raid1 e alguns desses arrays raid1 são usados para formar um array raid0 . Em uma configuração raid10 , o sistema de arquivos pode sobreviver a uma única falha de unidade em cada uma das matrizes raid1 .
Você pode usar 50% do espaço total em disco na configuração raid10 . Você precisará de pelo menos quatro dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid10 .
raid5 : No perfil raid5 , uma cópia dos dados/metadados será dividida entre os dispositivos de armazenamento. Uma única paridade será calculada e distribuída entre os dispositivos de armazenamento do array RAID.
Em uma configuração raid5 , o sistema de arquivos pode sobreviver a uma única falha de unidade. Se uma unidade falhar, você pode adicionar uma nova unidade ao sistema de arquivos e os dados perdidos serão calculados a partir da paridade distribuída das unidades em execução.
Você pode usar 1 00x(N-1)/N % do total de espaços em disco na configuração raid5 . Aqui, N é o número de dispositivos de armazenamento adicionados ao sistema de arquivos. Você precisará de pelo menos três dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid5 .
raid6 : No perfil raid6 , uma cópia dos dados/metadados será dividida entre os dispositivos de armazenamento. Duas paridades serão calculadas e distribuídas entre os dispositivos de armazenamento do array RAID.
Em uma configuração raid6 , o sistema de arquivos pode sobreviver a duas falhas de unidade ao mesmo tempo. Se uma unidade falhar, você poderá adicionar uma nova unidade ao sistema de arquivos e os dados perdidos serão calculados a partir das duas paridades distribuídas das unidades em execução.
Você pode usar 100x(N-2)/N % do espaço total em disco na configuração raid6 . Aqui, N é o número de dispositivos de armazenamento adicionados ao sistema de arquivos. Você precisará de pelo menos quatro dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid6 .
-
@ 9223d2fa:b57e3de7
2025-04-15 02:54:0012,600 steps
-
@ 0fa80bd3:ea7325de
2025-04-09 21:19:39DAOs promised decentralization. They offered a system where every member could influence a project's direction, where money and power were transparently distributed, and decisions were made through voting. All of it recorded immutably on the blockchain, free from middlemen.
But something didn’t work out. In practice, most DAOs haven’t evolved into living, self-organizing organisms. They became something else: clubs where participation is unevenly distributed. Leaders remained - only now without formal titles. They hold influence through control over communications, task framing, and community dynamics. Centralization still exists, just wrapped in a new package.
But there's a second, less obvious problem. Crowds can’t create strategy. In DAOs, people vote for what "feels right to the majority." But strategy isn’t about what feels good - it’s about what’s necessary. Difficult, unpopular, yet forward-looking decisions often fail when put to a vote. A founder’s vision is a risk. But in healthy teams, it’s that risk that drives progress. In DAOs, risk is almost always diluted until it becomes something safe and vague.
Instead of empowering leaders, DAOs often neutralize them. This is why many DAOs resemble consensus machines. Everyone talks, debates, and participates, but very little actually gets done. One person says, “Let’s jump,” and five others respond, “Let’s discuss that first.” This dynamic might work for open forums, but not for action.
Decentralization works when there’s trust and delegation, not just voting. Until DAOs develop effective systems for assigning roles, taking ownership, and acting with flexibility, they will keep losing ground to old-fashioned startups led by charismatic founders with a clear vision.
We’ve seen this in many real-world cases. Take MakerDAO, one of the most mature and technically sophisticated DAOs. Its governance token (MKR) holders vote on everything from interest rates to protocol upgrades. While this has allowed for transparency and community involvement, the process is often slow and bureaucratic. Complex proposals stall. Strategic pivots become hard to implement. And in 2023, a controversial proposal to allocate billions to real-world assets passed only narrowly, after months of infighting - highlighting how vision and execution can get stuck in the mud of distributed governance.
On the other hand, Uniswap DAO, responsible for the largest decentralized exchange, raised governance participation only after launching a delegation system where token holders could choose trusted representatives. Still, much of the activity is limited to a small group of active contributors. The vast majority of token holders remain passive. This raises the question: is it really community-led, or just a formalized power structure with lower transparency?
Then there’s ConstitutionDAO, an experiment that went viral. It raised over $40 million in days to try and buy a copy of the U.S. Constitution. But despite the hype, the DAO failed to win the auction. Afterwards, it struggled with refund logistics, communication breakdowns, and confusion over governance. It was a perfect example of collective enthusiasm without infrastructure or planning - proof that a DAO can raise capital fast but still lack cohesion.
Not all efforts have failed. Projects like Gitcoin DAO have made progress by incentivizing small, individual contributions. Their quadratic funding mechanism rewards projects based on the number of contributors, not just the size of donations, helping to elevate grassroots initiatives. But even here, long-term strategy often falls back on a core group of organizers rather than broad community consensus.
The pattern is clear: when the stakes are low or the tasks are modular, DAOs can coordinate well. But when bold moves are needed—when someone has to take responsibility and act under uncertainty DAOs often freeze. In the name of consensus, they lose momentum.
That’s why the organization of the future can’t rely purely on decentralization. It must encourage individual initiative and the ability to take calculated risks. People need to see their contribution not just as a vote, but as a role with clear actions and expected outcomes. When the situation demands, they should be empowered to act first and present the results to the community afterwards allowing for both autonomy and accountability. That’s not a flaw in the system. It’s how real progress happens.
-
@ c066aac5:6a41a034
2025-04-05 16:58:58I’m drawn to extremities in art. The louder, the bolder, the more outrageous, the better. Bold art takes me out of the mundane into a whole new world where anything and everything is possible. Having grown up in the safety of the suburban midwest, I was a bit of a rebellious soul in search of the satiation that only came from the consumption of the outrageous. My inclination to find bold art draws me to NOSTR, because I believe NOSTR can be the place where the next generation of artistic pioneers go to express themselves. I also believe that as much as we are able, were should invite them to come create here.
My Background: A Small Side Story
My father was a professional gamer in the 80s, back when there was no money or glory in the avocation. He did get a bit of spotlight though after the fact: in the mid 2000’s there were a few parties making documentaries about that era of gaming as well as current arcade events (namely 2007’sChasing GhostsandThe King of Kong: A Fistful of Quarters). As a result of these documentaries, there was a revival in the arcade gaming scene. My family attended events related to the documentaries or arcade gaming and I became exposed to a lot of things I wouldn’t have been able to find. The producer ofThe King of Kong: A Fistful of Quarters had previously made a documentary calledNew York Dollwhich was centered around the life of bassist Arthur Kane. My 12 year old mind was blown: The New York Dolls were a glam-punk sensation dressed in drag. The music was from another planet. Johnny Thunders’ guitar playing was like Chuck Berry with more distortion and less filter. Later on I got to meet the Galaga record holder at the time, Phil Day, in Ottumwa Iowa. Phil is an Australian man of high intellect and good taste. He exposed me to great creators such as Nick Cave & The Bad Seeds, Shakespeare, Lou Reed, artists who created things that I had previously found inconceivable.
I believe this time period informed my current tastes and interests, but regrettably I think it also put coals on the fire of rebellion within. I stopped taking my parents and siblings seriously, the Christian faith of my family (which I now hold dearly to) seemed like a mundane sham, and I felt I couldn’t fit in with most people because of my avant-garde tastes. So I write this with the caveat that there should be a way to encourage these tastes in children without letting them walk down the wrong path. There is nothing inherently wrong with bold art, but I’d advise parents to carefully find ways to cultivate their children’s tastes without completely shutting them down and pushing them away as a result. My parents were very loving and patient during this time; I thank God for that.
With that out of the way, lets dive in to some bold artists:
Nicolas Cage: Actor
There is an excellent video by Wisecrack on Nicolas Cage that explains him better than I will, which I will linkhere. Nicolas Cage rejects the idea that good acting is tied to mere realism; all of his larger than life acting decisions are deliberate choices. When that clicked for me, I immediately realized the man is a genius. He borrows from Kabuki and German Expressionism, art forms that rely on exaggeration to get the message across. He has even created his own acting style, which he calls Nouveau Shamanic. He augments his imagination to go from acting to being. Rather than using the old hat of method acting, he transports himself to a new world mentally. The projects he chooses to partake in are based on his own interests or what he considers would be a challenge (making a bad script good for example). Thus it doesn’t matter how the end result comes out; he has already achieved his goal as an artist. Because of this and because certain directors don’t know how to use his talents, he has a noticeable amount of duds in his filmography. Dig around the duds, you’ll find some pure gold. I’d personally recommend the filmsPig, Joe, Renfield, and his Christmas film The Family Man.
Nick Cave: Songwriter
What a wild career this man has had! From the apocalyptic mayhem of his band The Birthday Party to the pensive atmosphere of his albumGhosteen, it seems like Nick Cave has tried everything. I think his secret sauce is that he’s always working. He maintains an excellent newsletter calledThe Red Hand Files, he has written screenplays such asLawless, he has written books, he has made great film scores such asThe Assassination of Jesse James by the Coward Robert Ford, the man is religiously prolific. I believe that one of the reasons he is prolific is that he’s not afraid to experiment. If he has an idea, he follows it through to completion. From the albumMurder Ballads(which is comprised of what the title suggests) to his rejected sequel toGladiator(Gladiator: Christ Killer), he doesn’t seem to be afraid to take anything on. This has led to some over the top works as well as some deeply personal works. Albums likeSkeleton TreeandGhosteenwere journeys through the grief of his son’s death. The Boatman’s Callis arguably a better break-up album than anything Taylor Swift has put out. He’s not afraid to be outrageous, he’s not afraid to offend, but most importantly he’s not afraid to be himself. Works I’d recommend include The Birthday Party’sLive 1981-82, Nick Cave & The Bad Seeds’The Boatman’s Call, and the filmLawless.
Jim Jarmusch: Director
I consider Jim’s films to be bold almost in an ironic sense: his works are bold in that they are, for the most part, anti-sensational. He has a rule that if his screenplays are criticized for a lack of action, he makes them even less eventful. Even with sensational settings his films feel very close to reality, and they demonstrate the beauty of everyday life. That's what is bold about his art to me: making the sensational grounded in reality while making everyday reality all the more special. Ghost Dog: The Way of the Samurai is about a modern-day African-American hitman who strictly follows the rules of the ancient Samurai, yet one can resonate with the humanity of a seemingly absurd character. Only Lovers Left Aliveis a vampire love story, but in the middle of a vampire romance one can see their their own relationships in a new deeply human light. Jim’s work reminds me that art reflects life, and that there is sacred beauty in seemingly mundane everyday life. I personally recommend his filmsPaterson,Down by Law, andCoffee and Cigarettes.
NOSTR: We Need Bold Art
NOSTR is in my opinion a path to a better future. In a world creeping slowly towards everything apps, I hope that the protocol where the individual owns their data wins over everything else. I love freedom and sovereignty. If NOSTR is going to win the race of everything apps, we need more than Bitcoin content. We need more than shirtless bros paying for bananas in foreign countries and exercising with girls who have seductive accents. Common people cannot see themselves in such a world. NOSTR needs to catch the attention of everyday people. I don’t believe that this can be accomplished merely by introducing more broadly relevant content; people are searching for content that speaks to them. I believe that NOSTR can and should attract artists of all kinds because NOSTR is one of the few places on the internet where artists can express themselves fearlessly. Getting zaps from NOSTR’s value-for-value ecosystem has far less friction than crowdfunding a creative project or pitching investors that will irreversibly modify an artist’s vision. Having a place where one can post their works without fear of censorship should be extremely enticing. Having a place where one can connect with fellow humans directly as opposed to a sea of bots should seem like the obvious solution. If NOSTR can become a safe haven for artists to express themselves and spread their work, I believe that everyday people will follow. The banker whose stressful job weighs on them will suddenly find joy with an original meme made by a great visual comedian. The programmer for a healthcare company who is drowning in hopeless mundanity could suddenly find a new lust for life by hearing the song of a musician who isn’t afraid to crowdfund their their next project by putting their lighting address on the streets of the internet. The excel guru who loves independent film may find that NOSTR is the best way to support non corporate movies. My closing statement: continue to encourage the artists in your life as I’m sure you have been, but while you’re at it give them the purple pill. You may very well be a part of building a better future.
-
@ 6be5cc06:5259daf0
2025-03-31 03:39:07Introdução
Uma sociedade não deve ser construída sobre coerção, mas sim sobre associações voluntárias e interações espontâneas entre indivíduos. A sociedade de condomínios privados surge como uma alternativa natural ao modelo atual de centros urbanos, substituindo a imposição centralizada por estruturas baseadas em contratos e livre associação. Cada condomínio é uma unidade autônoma, gerida por aqueles que ali residem, onde os critérios de entrada, as regras internas e o comércio são definidos pelos próprios participantes. Essa estrutura permite que indivíduos se agrupem com base em valores compartilhados, eliminando os conflitos artificiais impostos por estados e legislações homogêneas que não respeitam a diversidade de preferências e estilos de vida.
O objetivo dessa sociedade é simples: permitir que as pessoas vivam de acordo com seus princípios sem interferência externa. Em um mundo onde a coerção estatal distorce incentivos, os condomínios privados oferecem uma alternativa onde a ordem surge do livre mercado e da cooperação voluntária. Os moradores escolhem seus vizinhos, definem suas próprias normas e interagem economicamente conforme suas necessidades e interesses. O modelo elimina a necessidade de um controle central, pois os incentivos derivados do livre mercado levam ao desenvolvimento de comunidades prósperas, onde a reputação e a confiança mútua são mais eficazes do que qualquer imposição estatal. Assim, essa sociedade representa a evolução lógica do conceito de liberdade individual e propriedade privada como pilares fundamentais da ordem social.
Público-Alvo e Identidade
Os condomínios privados refletem o princípio da livre associação, permitindo que indivíduos escolham viver em comunidades alinhadas com seus valores e necessidades sem interferência estatal. Cada condomínio possui uma identidade própria, moldada pelos moradores e seus interesses, criando ambientes onde afinidades culturais, filosóficas ou profissionais são preservadas e incentivadas. Enquanto alguns podem ser voltados para famílias numerosas, oferecendo amplos espaços e infraestrutura adequada, outros podem priorizar solteiros e jovens profissionais, com áreas de coworking e espaços de lazer voltados para networking e socialização. Da mesma forma, comunidades religiosas podem estabelecer seus próprios espaços de culto e eventos, enquanto condomínios para idosos podem ser projetados com acessibilidade e serviços médicos especializados.
Críticos podem afirmar que essa forma de organização resulta em pouca diversidade de habilidades e perspectivas, mas esse argumento ignora a dinâmica das interações humanas e o caráter evolutivo dos intercâmbios entre comunidades. Nenhum condomínio existe isolado; a troca entre diferentes comunidades ocorre naturalmente pelo mercado, incentivando o intercâmbio de conhecimento e serviços entre especialistas de diferentes áreas. Além disso, a ideia de que todos os grupos devem conter uma variedade aleatória de indivíduos desconsidera que a verdadeira diversidade nasce da liberdade de escolha, e não da imposição estatal de convivências forçadas.
Outra crítica possível é que a existência de critérios de entrada pode levar à segregação social. No entanto, essa preocupação deriva da concepção errônea de que todas as comunidades devem ser abertas e incluir qualquer pessoa indiscriminadamente. Porém, a liberdade de associação implica, necessariamente, a liberdade de exclusão. Se um grupo deseja manter determinada identidade cultural, religiosa ou profissional, isso não impede que outros grupos criem suas próprias comunidades conforme seus valores e recursos. Além disso, essa especialização leva a uma concorrência saudável entre condomínios, forçando-os a oferecer melhores condições para atrair moradores. Em vez de uma sociedade homogênea moldada por burocratas, temos um mosaico de comunidades autônomas, onde cada indivíduo pode encontrar ou criar o ambiente que melhor lhe convém.
Autossuficiência e Especialização
A força dos condomínios privados reside na capacidade de seus moradores de contribuírem ativamente para a comunidade, tornando-a funcional e autossuficiente sem a necessidade de intervenções estatais. Diferentes condomínios podem se especializar em áreas específicas ou ter diversos profissionais de diferentes setores, refletindo as competências e interesses de seus residentes. Essa descentralização do conhecimento e da produção permite que cada comunidade desenvolva soluções internas para suas demandas, reduzindo dependências externas e estimulando a prosperidade local.
Os moradores atuam como agentes econômicos, trocando bens e serviços dentro do próprio condomínio e entre diferentes comunidades. Um condomínio voltado para a saúde, por exemplo, pode contar com médicos, enfermeiros e terapeutas que oferecem consultas, aulas e assistência médica particular, remunerados diretamente por seus clientes, sem a intermediação de burocracias. Da mesma forma, um condomínio agrícola pode abrigar agricultores que cultivam alimentos orgânicos, compartilham técnicas de cultivo e comercializam excedentes com outros condomínios, garantindo um fluxo contínuo de suprimentos. Em um condomínio tecnológico, programadores, engenheiros e empreendedores desenvolvem soluções de TI, segurança digital e energia renovável, promovendo a inovação e ampliando as possibilidades de intercâmbio econômico.
A economia interna de cada condomínio se fortalece através de serviços oferecidos pelos próprios moradores. Professores podem ministrar aulas, técnicos podem prestar serviços de manutenção, artesãos podem vender seus produtos diretamente para os vizinhos. O mercado livre e voluntário é o principal regulador dessas interações, garantindo que a especialização surja naturalmente conforme a demanda e a oferta se ajustam. Essa estrutura elimina desperdícios comuns em sistemas centralizados, onde a alocação de recursos se dá por decisões políticas e não pelas necessidades reais da população.
Alguns argumentam que a especialização pode criar bolhas de conhecimento, tornando os condomínios excessivamente dependentes de trocas externas. Contudo, essa preocupação desconsidera a natureza espontânea do mercado, que incentiva a cooperação e o comércio entre comunidades distintas. Nenhum condomínio precisa produzir tudo internamente; ao contrário, a divisão do trabalho e a liberdade de escolha promovem interdependências saudáveis e vantajosas para todos. Assim, cada morador se insere em um ecossistema dinâmico, onde suas habilidades são valorizadas e sua autonomia preservada, sem coerções estatais ou distorções artificiais impostas por planejadores centrais.
Infraestrutura e Sustentabilidade
A solidez de uma sociedade baseada em condomínios privados depende de uma infraestrutura eficiente e sustentável, projetada para reduzir a dependência externa e garantir o máximo de autonomia. Sem um aparato estatal centralizador, cada comunidade deve estruturar seus próprios meios de obtenção de energia, água, alimentação e demais bens essenciais, garantindo que suas operações sejam viáveis a longo prazo. Essa abordagem, longe de ser um entrave, representa a verdadeira inovação descentralizada: um ambiente onde as soluções emergem da necessidade real e da engenhosidade humana, e não de diretrizes burocráticas e regulamentos ineficazes.
Cada condomínio pode investir em tecnologias sustentáveis e autônomas, como energia solar e eólica, reduzindo custos e minimizando a vulnerabilidade às flutuações do mercado energético tradicional. Sistemas de captação e filtragem de água da chuva, bem como a reutilização eficiente dos recursos hídricos, garantem independência em relação a empresas monopolistas e governos que frequentemente administram esse bem de forma ineficaz. Hortas comunitárias e fazendas verticais podem suprir grande parte da demanda alimentar, permitindo que cada condomínio mantenha sua própria reserva de alimentos, aumentando a resiliência contra crises externas e instabilidades de mercado.
Além dos recursos naturais, os espaços compartilhados desempenham um papel fundamental na integração e no fortalecimento dessas comunidades. Bibliotecas, ginásios, creches e salas de aula permitem que o conhecimento e os serviços circulem internamente, criando um ambiente onde a colaboração ocorre de maneira orgânica. A descentralização também se aplica ao uso da tecnologia, plataformas digitais privadas podem ser utilizadas para conectar moradores, facilitar a troca de serviços e produtos, além de coordenar agendamentos e eventos dentro dos condomínios e entre diferentes comunidades.
O Bitcoin surge como uma ferramenta indispensável nesse ecossistema, eliminando a necessidade de bancos estatais ou sistemas financeiros controlados. Ao permitir transações diretas, transparentes e resistentes à censura, o Bitcoin se torna o meio de troca ideal entre os condomínios, garantindo a preservação do valor e possibilitando um comércio ágil e eficiente. Além disso, contratos inteligentes e protocolos descentralizados podem ser integrados para administrar serviços comuns, fortalecer a segurança e reduzir a burocracia, tornando a governança desses condomínios cada vez mais autônoma e imune a intervenções externas.
Alguns podem argumentar que a falta de um aparato estatal para regulamentar a infraestrutura pode resultar em desigualdade no acesso a recursos essenciais, ou que a descentralização completa pode gerar caos e ineficiência. No entanto, essa visão ignora o fato de que a concorrência e a inovação no livre mercado são os maiores motores de desenvolvimento sustentável. Sem monopólios ou subsídios distorcendo a alocação de recursos, a busca por eficiência leva naturalmente à adoção de soluções melhores e mais acessíveis. Condomínios que oferecem infraestrutura de qualidade tendem a atrair mais moradores e investimentos, o que impulsiona a melhoria contínua e a diversificação dos serviços. Em vez de depender de um sistema centralizado falho, as comunidades se tornam responsáveis por sua própria prosperidade, criando uma estrutura sustentável, escalável e adaptável às mudanças do futuro.
Governança e Administração
Em uma sociedade descentralizada, não se deve depender de uma estrutura estatal ou centralizada para regular e tomar decisões em nome dos indivíduos. Cada condomínio, portanto, deve ser gerido de maneira autônoma, com processos claros de tomada de decisão, resolução de conflitos e administração das questões cotidianas. A gestão pode ser organizada por conselhos de moradores, associações ou sistemas de governança direta, conforme as necessidades locais.
Conselhos de Moradores e Processos de Tomada de Decisão
Em muitos casos, a administração interna de um condomínio privado pode ser realizada por um conselho de moradores, composto por representantes eleitos ou indicados pela própria comunidade. A ideia é garantir que as decisões importantes, como planejamento urbano, orçamento, manutenção e serviços, sejam feitas de forma transparente e que os interesses de todos os envolvidos sejam considerados. Isso não significa que a gestão precise ser completamente democrática, mas sim que as decisões devem ser tomadas de forma legítima, transparente e acordadas pela maior parte dos membros.
Em vez de um processo burocrático e centralizado, onde uma liderança impõe suas vontades sobre todos a muitas vezes suas decisões ruins não o afetam diretamente, a gestão de um condomínio privado deve ser orientada pela busca de consenso, onde os próprios gestores sofrerão as consequências de suas más escolhas. O processo de tomada de decisão pode ser dinâmico e direto, com os moradores discutindo e acordando soluções baseadas no mercado e nas necessidades locais, em vez de depender de um sistema impessoal de regulamentação. Além disso, a utilização de tecnologias descentralizadas, como plataformas de blockchain, pode proporcionar maior transparência nas decisões e maior confiança na gestão.
Resolução de Conflitos
A resolução de disputas dentro dos condomínios pode ocorrer de forma voluntária, através de negociação direta ou com o auxílio de mediadores escolhidos pelos próprios moradores por meio de um sistema de reputação. Em alguns casos, podem ser criados mecanismos para resolução de disputas mais formais, com árbitros ou juízes independentes que atuam sem vínculos com o condomínio. Esses árbitros podem ser escolhidos com base em sua experiência ou especialização em áreas como direito, mediação e resolução de conflitos, com uma reputação para zelar. Ao contrário de um sistema judicial centralizado, onde a parte envolvida depende do Estado para resolver disputas, os moradores possuem a autonomia para buscar soluções que atendam aos seus próprios interesses e necessidades. A diversidade de abordagens em um sistema de governança descentralizado cria oportunidades para inovações que atendem diferentes cenários, sem a interferência de burocratas distantes dos próprios problemas que estão "tentando resolver".
Planejamento Urbano e Arquitetura
A questão do design dos condomínios envolve não apenas a estética das construções, mas também a funcionalidade e a sustentabilidade a longo prazo. O planejamento urbano deve refletir as necessidades específicas da comunidade, onde ela decide por si mesma como construir e organizar seu ambiente.\ Arquitetos e urbanistas, muitas vezes moradores especializados, serão responsáveis pela concepção de espaços que atendam a esses critérios, criando ambientes agradáveis, com áreas para lazer, trabalho e convivência que atendam às diversas necessidades de cada grupo.\ Além disso, condomínios com nessecidades semelhantes poderão adotar ideias que deram certo em outros e certamente também dará no seu.
Segurança e Vigilância
Em relação à segurança, cada condomínio pode adotar sistemas de vigilância e proteção que atendam à sua realidade específica. Algumas comunidades podem optar por sistemas de câmeras de segurança, armamento pleno de seus moradores, patrulhamento privado ou até mesmo formas alternativas de garantir a proteção, como vigilância por meio de criptografia e monitoramento descentralizado. A chave para a segurança será a confiança mútua e a colaboração voluntária entre os moradores, que terão a liberdade de definir suas próprias medidas.
Comércio entre Condomínios
A troca de bens e serviços entre as diferentes comunidades é essencial para o funcionamento da rede. Como cada condomínio possui um grau de especialização ou uma mistura de profissionais em diversas áreas, a interdependência entre eles se torna crucial para suprir necessidades e promover a colaboração.
Embora alguns condomínios sejam especializados em áreas como saúde, agricultura ou tecnologia, outros podem ter um perfil mais diversificado, com moradores que atuam em diferentes campos de conhecimento. Por exemplo, um condomínio agrícola pode produzir alimentos orgânicos frescos, enquanto um condomínio de saúde oferece consultas médicas, terapias e cuidados especializados. Já um condomínio tecnológico pode fornecer inovações em software ou equipamentos de energia. Podem haver condomínios universitários que oferecem todo tipo de solução no campo de ensino. Ao mesmo tempo, um condomínio misto, com moradores de diversas áreas, pode oferecer uma variedade de serviços e produtos, tornando-se um centro de intercâmbio de diferentes tipos de expertise.
Essa divisão de trabalho, seja especializada ou diversificada, permite que os condomínios ofereçam o melhor de suas áreas de atuação, ao mesmo tempo em que atendem às demandas de outros. Um condomínio que não se especializa pode, por exemplo, buscar um acordo de troca com um condomínio agrícola para obter alimentos frescos ou com um condomínio tecnológico para adquirir soluções inovadoras.
Embora os condomínios busquem a autossuficiência, alguns recursos essenciais não podem ser produzidos internamente. Itens como minérios para construção, combustíveis ou até mesmo água, em regiões secas, não estão disponíveis em todas as áreas. A natureza não distribui os recursos de maneira uniforme, e a capacidade de produção local pode ser insuficiente para suprir todas as necessidades dos moradores. Isso implica que, para garantir a qualidade de vida e a continuidade das operações, os condomínios precisarão estabelecer relações comerciais e de fornecimento com fontes externas, seja através de mercados, importações ou parcerias com outras comunidades ou fornecedores fora do sistema de condomínios. O comércio intercondomínios e com o exterior será vital para a complementaridade das necessidades, assegurando que os moradores tenham acesso a tudo o que não pode ser produzido localmente.
O sistema econômico entre os condomínios pode ser flexível, permitindo o uso de uma moeda comum (como o Bitcoin) ou até mesmo um sistema de troca direta. Por exemplo, um morador de um condomínio misto pode oferecer serviços de design gráfico em troca de alimentos ou cuidados médicos. Esse tipo de colaboração estimula a produtividade e cria incentivos para que cada condomínio ofereça o melhor de seus recursos e habilidades, garantindo acesso aos bens e serviços necessários.
Relações Externas e Diplomacia
O isolamento excessivo pode limitar o acesso a inovações, avanços culturais e tecnológicos, e até mesmo dificultar o acesso a mercados externos. Por isso, é importante que haja canais de comunicação e métodos de diplomacia para interagir com outras comunidades. Os condomínios podem, por exemplo, estabelecer parcerias com outras regiões, seja para troca de produtos, serviços ou até para inovação. Isso garante que a rede de condomínios não se torne autossuficiente ao ponto de se desconectar do resto do mundo, o que pode resultar em estagnação.
Feiras, mercados intercondomínios e até eventos culturais e educacionais podem ser organizados para promover essas interações. A colaboração entre as comunidades e o exterior não precisa ser baseada em uma troca de dependência, mas sim numa rede de oportunidades que cria benefícios para todas as partes envolvidas. Uma boa reputação atrai novos moradores, pode valorizar propriedades e facilitar parcerias. A diplomacia entre as comunidades também pode ser exercida para resolver disputas ou desafios externos.
A manutenção de boas relações entre condomínios é essencial para garantir uma rede de apoio mútuo eficiente. Essas relações incentivam a troca de bens e serviços, como alimentos, assistência médica ou soluções tecnológicas, além de fortalecer a autossuficiência regional. Ao colaborar em segurança, infraestrutura compartilhada, eventos culturais e até mesmo na resolução de conflitos, os condomínios se tornam mais resilientes e eficientes, reduzindo a dependência externa e melhorando a qualidade de vida dos moradores. A cooperação contínua cria um ambiente mais seguro e harmonioso.
Educação e Desenvolvimento Humano
Cada comunidade pode criar escolas internas com currículos adaptados às especializações de seus moradores. Por exemplo, em um condomínio agrícola, podem ser ensinadas práticas agrícolas sustentáveis, e em um condomínio tecnológico, cursos de programação e inovação. Isso permite que crianças e jovens cresçam em ambientes que reforçam as competências valorizadas pela comunidade.
Além das escolas internas, o conceito de homeschooling pode ser incentivado, permitindo que os pais eduquem seus filhos conforme seus próprios valores e necessidades, com o apoio da comunidade. Esse modelo oferece uma educação mais flexível e personalizada, ao contrário do currículo tradicional oferecido pelo sistema público atual.
Os condomínios universitários também podem surgir, criando ambientes dedicados ao desenvolvimento acadêmico, científico e profissional, onde estudantes vivem e aprendem. Além disso, programas de capacitação contínua são essenciais, com oficinas e cursos oferecidos dentro do condomínio para garantir que os moradores se atualizem com novas tecnologias e práticas.
Para ampliar os horizontes educacionais, os intercâmbios estudantis entre diferentes condomínios podem ser incentivados. Esses intercâmbios não se limitam apenas ao ambiente educacional, mas também se estendem ao aprendizado de práticas de vida e habilidades técnicas. Os jovens de diferentes condomínios podem viajar para outras comunidades para estudar, trabalhar ou simplesmente trocar ideias. Isso pode ocorrer de diversas formas, como programas de curto e longo prazo, através de acordos entre os próprios condomínios, permitindo que os estudantes se conectem com outras comunidades, aprendam sobre diferentes especializações e desenvolvam uma compreensão mais ampla.
Essa abordagem descentralizada permite que cada comunidade desenvolva as competências essenciais sem depender de estruturas limitantes do estado ou sistemas educacionais centralizados. Ao proporcionar liberdade de escolha e personalização, os condomínios criam ambientes propícios ao crescimento humano, alinhados às necessidades e interesses de seus moradores.
A sociedade dos condomínios privados propõe uma estrutura alternativa de convivência onde as pessoas podem viver de acordo com seus próprios valores e necessidades. Esses condomínios oferecem um modelo de organização que desafia a centralização estatal, buscando criar comunidades adaptáveis e inovadoras. A liberdade garante que as habilidades necessárias para o sustento e crescimento das comunidades sejam mantidas ao longo do tempo.
A troca de bens, serviços e conhecimentos entre os condomínios, sem a imposição de forças externas, cria uma rede de boas relações, onde o comércio e a colaboração substituem a intervenção estatal. Em vez de depender de sistemas coercitivos, cada condomínio funciona como um microcosmo autônomo que, juntos, formam um ecossistema dinâmico e próspero. Este modelo propõe que, por meio de trocas voluntárias, possamos construir uma sociedade mais saudável. Lembre-se: Ideias e somente ideias podem iluminar a escuridão.
-
@ 04c915da:3dfbecc9
2025-03-26 20:54:33Capitalism is the most effective system for scaling innovation. The pursuit of profit is an incredibly powerful human incentive. Most major improvements to human society and quality of life have resulted from this base incentive. Market competition often results in the best outcomes for all.
That said, some projects can never be monetized. They are open in nature and a business model would centralize control. Open protocols like bitcoin and nostr are not owned by anyone and if they were it would destroy the key value propositions they provide. No single entity can or should control their use. Anyone can build on them without permission.
As a result, open protocols must depend on donation based grant funding from the people and organizations that rely on them. This model works but it is slow and uncertain, a grind where sustainability is never fully reached but rather constantly sought. As someone who has been incredibly active in the open source grant funding space, I do not think people truly appreciate how difficult it is to raise charitable money and deploy it efficiently.
Projects that can be monetized should be. Profitability is a super power. When a business can generate revenue, it taps into a self sustaining cycle. Profit fuels growth and development while providing projects independence and agency. This flywheel effect is why companies like Google, Amazon, and Apple have scaled to global dominance. The profit incentive aligns human effort with efficiency. Businesses must innovate, cut waste, and deliver value to survive.
Contrast this with non monetized projects. Without profit, they lean on external support, which can dry up or shift with donor priorities. A profit driven model, on the other hand, is inherently leaner and more adaptable. It is not charity but survival. When survival is tied to delivering what people want, scale follows naturally.
The real magic happens when profitable, sustainable businesses are built on top of open protocols and software. Consider the many startups building on open source software stacks, such as Start9, Mempool, and Primal, offering premium services on top of the open source software they build out and maintain. Think of companies like Block or Strike, which leverage bitcoin’s open protocol to offer their services on top. These businesses amplify the open software and protocols they build on, driving adoption and improvement at a pace donations alone could never match.
When you combine open software and protocols with profit driven business the result are lean, sustainable companies that grow faster and serve more people than either could alone. Bitcoin’s network, for instance, benefits from businesses that profit off its existence, while nostr will expand as developers monetize apps built on the protocol.
Capitalism scales best because competition results in efficiency. Donation funded protocols and software lay the groundwork, while market driven businesses build on top. The profit incentive acts as a filter, ensuring resources flow to what works, while open systems keep the playing field accessible, empowering users and builders. Together, they create a flywheel of innovation, growth, and global benefit.
-
@ 04c915da:3dfbecc9
2025-03-25 17:43:44One of the most common criticisms leveled against nostr is the perceived lack of assurance when it comes to data storage. Critics argue that without a centralized authority guaranteeing that all data is preserved, important information will be lost. They also claim that running a relay will become prohibitively expensive. While there is truth to these concerns, they miss the mark. The genius of nostr lies in its flexibility, resilience, and the way it harnesses human incentives to ensure data availability in practice.
A nostr relay is simply a server that holds cryptographically verifiable signed data and makes it available to others. Relays are simple, flexible, open, and require no permission to run. Critics are right that operating a relay attempting to store all nostr data will be costly. What they miss is that most will not run all encompassing archive relays. Nostr does not rely on massive archive relays. Instead, anyone can run a relay and choose to store whatever subset of data they want. This keeps costs low and operations flexible, making relay operation accessible to all sorts of individuals and entities with varying use cases.
Critics are correct that there is no ironclad guarantee that every piece of data will always be available. Unlike bitcoin where data permanence is baked into the system at a steep cost, nostr does not promise that every random note or meme will be preserved forever. That said, in practice, any data perceived as valuable by someone will likely be stored and distributed by multiple entities. If something matters to someone, they will keep a signed copy.
Nostr is the Streisand Effect in protocol form. The Streisand effect is when an attempt to suppress information backfires, causing it to spread even further. With nostr, anyone can broadcast signed data, anyone can store it, and anyone can distribute it. Try to censor something important? Good luck. The moment it catches attention, it will be stored on relays across the globe, copied, and shared by those who find it worth keeping. Data deemed important will be replicated across servers by individuals acting in their own interest.
Nostr’s distributed nature ensures that the system does not rely on a single point of failure or a corporate overlord. Instead, it leans on the collective will of its users. The result is a network where costs stay manageable, participation is open to all, and valuable verifiable data is stored and distributed forever.
-
@ a7bbc310:fe7b7be3
2025-03-24 13:18:49I’ve been back from Morocco for just over a month and I’ve had some time to reflect. I started writing a day by day of what I did in my trip to Morocco but that was turning out a bit boring. I couldn’t do the trip justice. I thought I’d share some of my observations instead. I’d start by saying I was only there for 5 1/2 days. 5 days in Marrakesh and half day in Essaouira
You can feel the rich culture and history Morocco has such a rich culture and history. Influence of Romans, French, Arab, Berbers, Saharan and Nomadic tribes. You can see it in the architecture, taste it in the food and hear it in the language. The streets of Marrakesh had the smells of spices, perfumes and petrol. There is a synchronised dance between everyone that occupy the streets. People, motorbikes, donkeys, carts, all jostling for position but never seeming to collide into on another.
One thing that didn’t surprise me was the high level of craftsmanship and intricate designs on some of the buildings. I was told by a tour guide that some of the calligraphy could only be understood and read by the person who wrote it.
There seemed to be a sense of community, people stopping in the street to greet each other and say hello. What surprised me about this in Marrakesh most was that it happened in such a busy city. From my experience big cities are places that you go to get lost, ignored and don’t want to be found. Scene at the end of the movie Collateral comes to mind. You know the one where he’s riding on the subway alone after being shot.
A vendor tried to sell me a pendant, a symbol of the Berber tribe that meant ‘free man’. The symbol looks similar to the one for Sats 丰. I declined to purchase since I wasn’t educated enough on the Berbers to rep a symbol.
Couldn’t get over how much stuff there was for sale! And duplications of everything, rugs, shoes , handbags, jackets. Cold mornings and evenings, warm during the day. Everyone dressed like it was winter, even when it for warmer in the afternoon. It was a special trip. I’d definitely go back. Both to visit Marrakesh and other places.
-
@ 78b3c1ed:5033eea9
2025-04-29 04:04:19Umbrel Core-lightning(以下CLNと略す)を運用するにあたり役に立ちそうなノウハウやメモを随時投稿します。
・configファイルを用意する Umbrelのアプリとして必要な設定はdocker-compose.ymlで指定されている。 それ以外の設定をしたい場合configファイルに入れると便利。 configファイルの置き場所は /home/umbrel/umbrel/app-data/core-lightning/data/lightningd ここにtouch configとでもやってファイルをつくる。
cd /home/umbrel/umbrel/app-data/core-lightning/data/lightningd touch config
以下内容をひな型として使ってみてください。 行頭に#があるとコメント行になります。つまり.iniフォーマット。 /home/umbrel/umbrel/app-data/core-lightning/data/lightningd/config ```[General options]
[Bitcoin control options]
[Lightning daemon options]
[Lightning node customization options]
[Lightning channel and HTLC options]
[Payment control options]
[Networking options]
[Lightning Plugins]
[Experimental Options]
``` configに設定できる内容は以下を参照 https://lightning.readthedocs.io/lightningd-config.5.html セクションを意味する[]があるけれどもこれは私(tanakei)が意図的に見やすく区別しやすくするために付けただけ。これら行の#は外さない。
・configの設定をCLNに反映させる appスクリプトでCLNを再起動すると反映することができる。 configを書き換えただけでは反映されない。
cd /home/umbrel/umbrel/scripts ./app restart core-lightning
・ログをファイルに出力させる
以下の場所でtouch log.txtとしてlog.txtファイルを作る。 /home/umbrel/umbrel/app-data/core-lightning/data/lightningd
cd /home/umbrel/umbrel/app-data/core-lightning/data/lightningd touch log.txt
次にconfigの[Lightning daemon options]セクションにlog-fileを追加する。 ```[Lightning daemon options]
log-file=/data/.lightning/log.txt ``` ※Dockerによって/home/umbrel/umbrel/app-data/core-lightning/data/lightningd は /data/.lightning として使われている。
・addrとbind-addrの違い どちらも着信用のインターフェースとポートの設定。addrは指定したホストIPアドレス:ポート番号をノードURIに含めて公開する(node_announcementのuris)。bind-addrは公開しない。
・実験的機能のLN Offerを有効にする configの[Experimental Options]セクションに以下を追加する。 ```
[Experimental Options]
experimental-onion-messages experimental-offers ``` ※ v24.08でexperimental-onion-messageは廃止されデフォルト有効であり、上記設定の追加は不要になりました。 ※ v21.11.1 では experimental-offersは廃止されデフォルト有効であり、上記設定の追加は不要になりました。 もう実験扱いじゃなくなったのね...
・完全にTorでの発信オンリーにする UmbrelはなぜかCLNの発信をClearnetとTorのハイブリッドを許している。それは always-use-proxy=true の設定がないから。(LNDは発着信Torのみなのに) なのでこの設定をconfigに追加してCLNも発着進Torのみにする。 ```
[Networking options]
always-use-proxy=true ```
・任意のニーモニックからhsm_secretを作る CLNのhsm_secretはLNDのwallet.dbのようなもの。ノードで使う様々な鍵のマスター鍵となる。Umbrel CLNはこのhsm_secretファイルを自動生成したものを使い、これをバックアップするためのニーモニックを表示するとかそういう機能はない。自分で作って控えてあるニーモニックでhsm_secretを作ってしまえばこのファイルが壊れてもオンチェーン資金は復旧はできる。
1.CLNインストール後、dockerコンテナに入る
docker exec -it core-lightning_lightningd_1 bash
2.lightning-hsmtoolコマンドを使って独自hsm_secretを作る ``` cd data/.lightning/bitcoin lightning-hsmtool generatehsm my-hsm_secret・上記コマンドを実行するとニーモニックの言語、ニーモニック、パスフレーズの入力を催促される。 Select your language: 0) English (en) 1) Spanish (es) 2) French (fr) 3) Italian (it) 4) Japanese (jp) 5) Chinese Simplified (zhs) 6) Chinese Traditional (zht) Select [0-7]: 0 ※定番の英単語なら0を入力 Introduce your BIP39 word list separated by space (at least 12 words): <ニーモニックを入力する> Warning: remember that different passphrases yield different bitcoin wallets. If left empty, no password is used (echo is disabled). Enter your passphrase: <パスフレーズを入力する> ※パスフレーズ不要ならそのままエンターキーを押す。 New hsm_secret file created at my-hsm_secret Use the
encrypt
command to encrypt the BIP32 seed if neededコンテナから抜ける exit
3.appスクリプトでCLNを止めて、独自hsm_secret以外を削除 ※【重要】いままで使っていたhsm_secretを削除する。もしチャネル残高、ウォレット残高があるならチャネルを閉じて資金を退避すること。自己責任!
cd ~/umbrel/scripts/ ./app stop core-lightningcd ~/umbrel/app-data/core-lightning/data/lightningd/bitcoin rm gossip_store hsm_secret lightningd.sqlite3 lightning-rpc mv my-hsm_secret hsm_secret
4.appスクリプトでCLNを再開する
cd ~/umbrel/scripts/ ./app start core-lightning ```【補記】 hsm_secret作成につかうニーモニックはBIP39で、LNDのAezeedと違って自分が作成されたブロック高さというものを含んでいない。新規でなくて復元して使う場合は作成されたブロック高さからブロックチェーンをrescanする必要がある。 configの1行目にrescanオプションを付けてCLNをリスタートする。 ``` // 特定のブロック高さを指定する場合はマイナス記号をつける rescan=-756000
// 現在のブロック高さから指定ブロック分さかのぼった高さからrescanする rescan=10000 ※現在の高さが760,000なら10000指定だと750,000からrescan ```
・clnrestについて core-lightningでREST APIを利用したい場合、別途c-lightning-restを用意する必要があった。v23.8から標準でclnrestというプラグインがついてくる。pythonで書かれていて、ソースからビルドした場合はビルド完了後にpip installでインストールする。elementsproject/lightningdのDockerイメージではインストール済みになっている。 (v25.02からgithubからバイナリをダウンロードしてきた場合はpip install不要になったようだ) このclnrestを使うにはcreaterunesコマンドでruneというLNDのマカロンのようなものを作成する必要がある。アプリ側でこのruneとREST APIを叩いてcore-lightningへアクセスすることになる。 自分が良く使っているLNbitsやスマホアプリZeus walletはclnrestを使う。まだclnrestに対応していないアプリもあるので留意されたし。
・Emergency recoverについて LNDのSCBのようなもの。ファイル名はemergency.recover チャネルを開くと更新される。 hsm_secretとこのファイルだけを置いてCLNを開始すると自動でこのファイルから強制クローズするための情報が読み出されてDLPで相手から強制クローズするような仕組み。この機能はv0.12から使える。
動作確認してみた所、LNDのSCBに比べるとかなり使いづらい。 1. CLNがTor発信だとチャネルパートナーと接続できない。 Clearnet発信できても相手がTorのみノードならTor発信せざるを得ない。 相手と通信できなければ資金回収できない。 2. 相手がLNDだとなぜか強制クローズされない。相手がCLNならできる。
つまり、自分と相手がClearnetノードでかつ相手もCLNならば Emergency recoverで強制クローズして資金回収できる。こんな条件の厳しい復旧方法がマジで役に立つのか?
v0.11以降ならばLNDのchannel.dbに相当するlightningd.sqlite3をプライマリ・セカンダリDBと冗長化できるので、セカンダリDBをNFSで保存すればUmbrelのストレージが壊れてもセカンダリDBで復旧できる。そのためemergerncy.recoverを使う必要がないと思われる。
・LN offer(BOLT#12)ついて 使いたいなら 1.publicチャネルを開く publicチャネルを開けばチャネルとノードの情報(channel_announcement, node_announcement)が他ノードに伝わる。送金したい相手がこの情報を元に経路探索する。 2.その後しばらく待つ CLNノードを立てたばかりだと経路探索するに十分なチャネルとノードの情報が揃ってない。せめて1日は待つ。
LNURLの場合インボイスをhttpsで取得するが、OfferはLN経由で取得する。そのためにチャネルとノードの情報が必要。privateチャネルばかりのノードはチャネル情報もそうだがノード情報も出さない。 Offerで使えるBlind pathという機能なら中間ノードIDを宛先ノードとすることが可能で、これならチャネルとノード情報を公開しなくても受けとれるのだがCLNは対応してない模様(2025年1月現在) CLNでOfferで受け取るにはチャネルとノード情報を公開する必要がある。そのためpublicチャネルを開く。公開されていれば良いのでTorでもOK。クリアネットで待ち受けは必須ではない。
・hsm_sercretとニーモニック lightning-hsmtoolを使うとニーモニックからhsm_secretを作れる。ニーモニックからシードを作ると64バイト。これはニーモニックおよびソルトにパスフレーズをPBKDF2(HMAC-SHA512を2048回)にかけると512ビット(64バイト)のシードができる。しかしhsm_secretは32バイト。CLNでは64バイトの最初の32バイトをhsm_secretとして利用しているみたい。 このhsm_secretにHMAC-SHA512をかけて512ビットとした値がウォレットのマスター鍵となる。なのでhsm_secret自体がBIP-32でいうマスターシードそのものではない。 sparrow walletにCLNのウォレットを復元したい場合は lightning-hsmtool dumponchaindescriptors --show-secrets
とやってディスクリプターウォレットを出力。出力内容にマスター鍵(xprv~)があるので、これをインポートする。導出パス設定はm/0とする。sparrowが残りを補完してm/0/0/0, m/0/0/1とやってくれる。 <おまけ> configファイルのサンプル。Umbrelを使わない場合は以下のサンプルが役に立つはず。上記のelementsproject/lightningdならば/root/.lightningに任意のディレクトリをマウントしてそのディレクトリにconfigを置く。 ```
[General options]
不可逆なDBアップグレードを許可しない
database-upgrade=false
[Bitcoin control options]
network=bitcoin bitcoin-rpcconnect=
bitcoin-rpcport= bitcoin-rpcuser= bitcoin-rpcpassword= [Lightning daemon options]
postgresを使う場合
wallet=postgres://USER:PASSWORD@HOST:PORT/DB_NAME
bookkeeper-db=postgres://USER:PASSWORD@HOST:PORT/DB_NAME
sqlite3を使う場合。デフォルトはこちらで以下の設定が無くても~/.lightning/bitconに自動で作成される。
wallet=sqlite3:///home/USERNAME/.lightning/bitcoin/lightningd.sqlite3
bookkeeper-db=sqlite3:///home/USERNAME/.lightning/bitcoin/accounts.sqlite3
ログファイルは自動で作成されない
log-file=/home/USERNAME/.lightning/lightningd-log
log-level=debug
[Lightning node customization options]
alias=
rgb= 固定手数料。ミリサトシで指定。
fee-base=1000000
変動手数料。ppmで指定。
fee-per-satoshi=0
最小チャネルキャパシティ(sats)
min-capacity-sat=100000
HTLC最少額。ミリサトシで指定。
htlc-minimum-msat=1000
[Lightning channel and HTLC options]
large-channels # v23.11よりデフォルトでラージチャネルが有効。
チャネル開設まで6承認
funding-confirms=6
着信できるHTLCの数。開いたら変更できない。1~483 (デフォルトは 30) の範囲にする必要があります
max-concurrent-htlcs=INTEGER
アンカーチャネルを閉じるためにウォレットに保持しておく資金。デフォルトは 25,000sat
チャネルを"忘れる(forget)"するまではリザーブされる模様。forgetはチャネル閉じてから100ブロック後
min-emergency-msat=10000000
[Cleanup control options]
autoclean-cycle=3600 autoclean-succeededforwards-age=0 autoclean-failedforwards-age=0 autoclean-succeededpays-age=0 autoclean-failedpays-age=0 autoclean-paidinvoices-age=0 autoclean-expiredinvoices-age=0
[Payment control options]
disable-mpp
[Networking options]
bind-addrだとアナウンスしない。
bind-addr=0.0.0.0:9375
tor
proxy=
: always-use-proxy=true Torの制御ポート。addr=statictor だとhidden serviceをノードURIとして公開する。
addr=statictor:
: tor-service-password= experimental-websocket-portは廃止された。bind-addr=ws:が代替。
bind-addr=ws:
:2106 clnrestプラグイン, REST API
clnrest-host=0.0.0.0 clnrest-port=3010 clnrest-protocol=http
v24.11よりgrpcはデフォルト有効
grpc-host=0.0.0.0 grpc-port=9736
[Lightning Plugins]
[Experimental Options]
experimental-onion-messages # v24.08で廃止。デフォルト有効
experimental-offers # v24.11.1で廃止。デフォルト有効
流動性広告からチャネルを開くときにexperimental-dual-fundが必要らしい。
experimental-dual-fund
experimental-splicing
experimental-peer-storage
```
-
@ f839fb67:5c930939
2025-03-24 00:25:16Relays
| Name | Address | Price (Sats/Year) | Status | | - | - | - | - | | stephen's aegis relay | wss://paid.relay.vanderwarker.family | 42069 |
| | stephen's Outbox | wss://relay.vanderwarker.family | Just Me |
| | stephen's Inbox | wss://haven.vanderwarker.family/inbox | WoT |
| | stephen's DMs | wss://haven.vanderwarker.family/chat | WoT |
| | VFam Data Relay | wss://data.relay.vanderwarker.family | 0 |
| | VFam Bots Relay | wss://skeme.vanderwarker.family | Invite |
| | VFGroups (NIP29) | wss://groups.vanderwarker.family | 0 |
| | [TOR] My Phone Relay | ws://naswsosuewqxyf7ov7gr7igc4tq2rbtqoxxirwyhkbuns4lwc3iowwid.onion | 0 | Meh... |
My Pubkeys
| Name | hex | nprofile | | - | - | - | | Main | f839fb6714598a7233d09dbd42af82cc9781d0faa57474f1841af90b5c930939 | nprofile1qqs0sw0mvu29nznjx0gfm02z47pve9up6ra22ar57xzp47gttjfsjwgpramhxue69uhhyetvv9ujuanpdejx2unhv9exketj9enxzmtfd3us9mapfx | | Vanity (Backup) | 82f21be67353c0d68438003fe6e56a35e2a57c49e0899b368b5ca7aa8dde7c23 | nprofile1qqsg9usmuee48sxkssuqq0lxu44rtc4903y7pzvmx694efa23h08cgcpramhxue69uhhyetvv9ujuanpdejx2unhv9exketj9enxzmtfd3ussel49x | | VFStore | 6416f1e658ba00d42107b05ad9bf485c7e46698217e0c19f0dc2e125de3af0d0 | nprofile1qqsxg9h3uevt5qx5yyrmqkkehay9cljxdxpp0cxpnuxu9cf9mca0p5qpramhxue69uhhyetvv9ujuanpdejx2unhv9exketj9enxzmtfd3usaa8plu | | NostrSMS | 9be1b8315248eeb20f9d9ab2717d1750e4f27489eab1fa531d679dadd34c2f8d | nprofile1qqsfhcdcx9fy3m4jp7we4vn305t4pe8jwjy74v062vwk08dd6dxzlrgpramhxue69uhhyetvv9ujuanpdejx2unhv9exketj9enxzmtfd3us595d45 |
Bot Pubkeys
| Name | hex | nprofile | | - | - | - | | Unlocks Bot | 2e941ad17144e0a04d1b8c21c4a0dbc3fbcbb9d08ae622b5f9c85341fac7c2d0 | nprofile1qqsza9q669c5fc9qf5dccgwy5rdu877th8gg4e3zkhuus56pltru95qpramhxue69uhhx6m9d4jjuanpdejx2unhv9exketj9enxzmtfd3ust4kvak | | Step Counter | 9223d2faeb95853b4d224a184c69e1df16648d35067a88cdf947c631b57e3de7 | nprofile1qqsfyg7jlt4etpfmf53y5xzvd8sa79ny356sv75gehu50333k4lrmecpramhxue69uhhx6m9d4jjuanpdejx2unhv9exketj9enxzmtfd3ustswp3w |
"Personal Nostr Things"
[D] = Saves darkmode preferences over nostr
[A] = Auth over nostr
[B] = Beta (software)
[z] = zap enabled
Other Services (Hosted code)
Emojis Packs
- Minecraft
nostr:naddr1qqy566twv43hyctxwsq37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gzyrurn7m8z3vc5u3n6zwm6s40stxf0qwsl2jhga83ssd0jz6ujvynjqcyqqq82nsd0k5wp
- AIM
nostr:naddr1qqxxz6tdv4kk7arfvdhkuucpramhxue69uhhyetvv9ujuanpdejx2unhv9exketj9enxzmtfd3usyg8c88akw9ze3fer85yah4p2lqkvj7qap749w360rpq6ly94eycf8ypsgqqqw48qe0j2yk
- Blobs
nostr:naddr1qqz5ymr0vfesz8mhwden5te0wfjkccte9emxzmnyv4e8wctjddjhytnxv9kkjmreqgs0sw0mvu29nznjx0gfm02z47pve9up6ra22ar57xzp47gttjfsjwgrqsqqqa2wek4ukj
- FavEmojis
nostr:naddr1qqy5vctkg4kk76nfwvq37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gzyrurn7m8z3vc5u3n6zwm6s40stxf0qwsl2jhga83ssd0jz6ujvynjqcyqqq82nsf7sdwt
- Modern Family
nostr:naddr1qqx56mmyv4exugzxv9kkjmreqy0hwumn8ghj7un9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jq3qlqulkec5tx98yv7snk759tuzejtcr5865468fuvyrtuskhynpyusxpqqqp65ujlj36n
- nostriches (Amethyst collection)
nostr:naddr1qq9xummnw3exjcmgv4esz8mhwden5te0wfjkccte9emxzmnyv4e8wctjddjhytnxv9kkjmreqgs0sw0mvu29nznjx0gfm02z47pve9up6ra22ar57xzp47gttjfsjwgrqsqqqa2w2sqg6w
- Pepe
nostr:naddr1qqz9qetsv5q37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gzyrurn7m8z3vc5u3n6zwm6s40stxf0qwsl2jhga83ssd0jz6ujvynjqcyqqq82ns85f6x7
- Minecraft Font
nostr:naddr1qq8y66twv43hyctxwssyvmmwwsq37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gzyrurn7m8z3vc5u3n6zwm6s40stxf0qwsl2jhga83ssd0jz6ujvynjqcyqqq82nsmzftgr
- Archer Font
nostr:naddr1qq95zunrdpjhygzxdah8gqglwaehxw309aex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0ypzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqvzqqqr4fclkyxsh
- SMB Font
nostr:naddr1qqv4xatsv4ezqntpwf5k7gzzwfhhg6r9wfejq3n0de6qz8mhwden5te0wfjkccte9emxzmnyv4e8wctjddjhytnxv9kkjmreqgs0sw0mvu29nznjx0gfm02z47pve9up6ra22ar57xzp47gttjfsjwgrqsqqqa2w0wqpuk
Git Over Nostr
- NostrSMS
nostr:naddr1qqyxummnw3e8xmtnqy0hwumn8ghj7un9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jqfrwaehxw309amk7apwwfjkccte9emxzmnyv4e8wctjddjhytnxv9kkjmreqyj8wumn8ghj7urpd9jzuun9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jqg5waehxw309aex2mrp0yhxgctdw4eju6t0qyxhwumn8ghj7mn0wvhxcmmvqgs0sw0mvu29nznjx0gfm02z47pve9up6ra22ar57xzp47gttjfsjwgrqsqqqaueqp0epk
- nip51backup
nostr:naddr1qq9ku6tsx5ckyctrdd6hqqglwaehxw309aex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0yqjxamnwvaz7tmhda6zuun9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jqfywaehxw309acxz6ty9eex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0yq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7qgdwaehxw309ahx7uewd3hkcq3qlqulkec5tx98yv7snk759tuzejtcr5865468fuvyrtuskhynpyusxpqqqpmej4gtqs6
- bukkitstr
nostr:naddr1qqykyattdd5hgum5wgq37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gpydmhxue69uhhwmm59eex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0yqjgamnwvaz7tmsv95kgtnjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dspzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqvzqqqrhnyf6g0n2
Market Places
Please use Nostr Market or somthing simular, to view.
- VFStore
nostr:naddr1qqjx2v34xe3kxvpn95cnqven956rwvpc95unscn9943kxet98q6nxde58p3ryqglwaehxw309aex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0yqjvamnwvaz7tmgv9mx2m3wweskuer9wfmkzuntv4ezuenpd45kc7f0da6hgcn00qqjgamnwvaz7tmsv95kgtnjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gpydmhxue69uhhwmm59eex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0ypzqeqk78n93wsq6sss0vz6mxl5shr7ge5cy9lqcx0smshpyh0r4uxsqvzqqqr4gvlfm7gu
Badges
Created
- paidrelayvf
nostr:naddr1qq9hqctfv3ex2mrp09mxvqglwaehxw309aex2mrp0yh8vctwv3jhyampwf4k2u3wvesk66tv0ypzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqvzqqqr48y85v3u3
- iPow
nostr:naddr1qqzxj5r02uq37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gzyrurn7m8z3vc5u3n6zwm6s40stxf0qwsl2jhga83ssd0jz6ujvynjqcyqqq82wgg02u0r
- codmaster
nostr:naddr1qqykxmmyd4shxar9wgq37amnwvaz7tmjv4kxz7fwweskuer9wfmkzuntv4ezuenpd45kc7gzyrurn7m8z3vc5u3n6zwm6s40stxf0qwsl2jhga83ssd0jz6ujvynjqcyqqq82wgk3gm4g
- iMine
nostr:naddr1qqzkjntfdejsz8mhwden5te0wfjkccte9emxzmnyv4e8wctjddjhytnxv9kkjmreqgs0sw0mvu29nznjx0gfm02z47pve9up6ra22ar57xzp47gttjfsjwgrqsqqqafed5s4x5
Clients I Use
- Amethyst
nostr:naddr1qqxnzd3cx5urqv3nxymngdphqgsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqrqsqqql8kavfpw3
- noStrudel
nostr:naddr1qqxnzd3cxccrvd34xser2dpkqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsygpxdq27pjfppharynrvhg6h8v2taeya5ssf49zkl9yyu5gxe4qg55psgqqq0nmq5mza9n
- nostrsms
nostr:naddr1qq9rzdejxcunxde4xymqz8mhwden5te0wfjkccte9emxzmnyv4e8wctjddjhytnxv9kkjmreqgsfhcdcx9fy3m4jp7we4vn305t4pe8jwjy74v062vwk08dd6dxzlrgrqsqqql8kjn33qm
Lists
- Fediverse
nostr:naddr1qvzqqqr4xqpzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqys8wumn8ghj7un9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jtcqp9rx2erfwejhyum9j4g0xh
- AI
nostr:naddr1qvzqqqr4xypzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqys8wumn8ghj7un9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jtcqqfq5j65twn7
- Asterisk Shenanigans
nostr:naddr1qvzqqqr4xypzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqys8wumn8ghj7un9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jtcqz3qhxar9wf5hx6eq2d5x2mnpde5kwctwwvaxjuzz
- Minecraft Videos
nostr:naddr1qvzqqqr4xypzp7peldn3gkv2wgeap8dag2hc9nyhs8g04ft5wnccgxhepdwfxzfeqys8wumn8ghj7un9d3shjtnkv9hxgetjwashy6m9wghxvctdd9k8jtcqzpxkjmn9vdexzen5yptxjer9daesqrd8jk
-
@ 78b3c1ed:5033eea9
2025-04-27 01:48:48※スポットライトから移植した古い記事です。参考程度に。
これを参考にしてUmbrelのBitcoin Nodeをカスタムsignetノードにする。 以下メモ書きご容赦。備忘録程度に書き留めました。
メインネットとは共存できない。Bitcoinに依存する全てのアプリを削除しなければならない。よって実験機に導入すべき。
<手順>
1.Umbrel Bitcoin Nodeアプリのadvance settingでsignetを選択。
2.CLI appスクリプトでbitcoinを止める。
cd umbrel/scripts ./app stop bitcoin
3.bitcoin.conf, umbrel-bitcoin.conf以外を削除ディレクトリの場所は ~/umbrel/app-data/bitcoin/data/bitcoin
4.umbrel-bitcoin.confをsu権限で編集。末尾にsignetchallengeを追加。 ``` [signet] bind=0.0.0.0:8333 bind=10.21.21.8:8334=onion51,21,<公開鍵>,51,ae
signetchallenge=5121<公開鍵>51ae
5.appスクリプトでbitcoinを開始。
cd ~/umbrel/scripts ./app start bitcoin ``` 6.適当にディレクトリを作りgithubからbitcoindのソースをクローン。7.bitcoindのバイナリをダウンロード、bitcoin-cliおよびbitcoin-utilを~/.local/binに置く。6.のソースからビルドしても良い。ビルド方法は自分で調べて。
8.bitcondにマイニング用のウォレットを作成 ``` alias bcli='docker exec -it bitcoin_bitcoind_1 bitcoin-cli -signet -rpcconnect=10.21.21.8 -rpcport=8332 -rpcuser=umbrel -rpcpassword=<パスワード>'
ウォレットを作る。
bcli createwallet "mining" false true "" false false
秘密鍵をインポート
bcli importprivkey "<秘密鍵>"
RPCパスワードは以下で確認
cat ~/umbrel/.env | grep BITCOIN_RPC_PASS9.ソースにあるbitcoin/contrib/signet/minerスクリプトを使ってマイニング
cd <ダウンロードしたディレクトリ>/bitcoin/contrib/signet難易度の算出
./miner \ --cli="bitcoin-cli -signet -rpcconnect=10.21.21.8 -rpcport=8332 -rpcuser=umbrel -rpcpassword=<パスワード>" calibrate \ --grind-cmd="bitcoin-util grind" --seconds 30 ★私の環境で30秒指定したら nbits=1d4271e7 と算出された。実際にこれで動かすと2分30になるけど...
ジェネシスブロック生成
./miner \ --cli="bitcoin-cli -signet -rpcconnect=10.21.21.8 -rpcport=8332 -rpcuser=umbrel -rpcpassword=<パスワード>" generate \ --address <ビットコインアドレス> \ --grind-cmd="bitcoin-util grind" --nbits=1d4271e7 \ --set-block-time=$(date +%s)
継続的にマイニング
./miner \ --cli="bitcoin-cli -signet -rpcconnect=10.21.21.8 -rpcport=8332 -rpcuser=umbrel -rpcpassword=<パスワード>" generate \ --address <ビットコインアドレス> \ --grind-cmd="bitcoin-util grind" --nbits=1d4271e7 \ --ongoing ``` ここまでやればカスタムsignetでビットコインノードが稼働する。
-
@ 4857600b:30b502f4
2025-03-10 12:09:35At this point, we should be arresting, not firing, any FBI employee who delays, destroys, or withholds information on the Epstein case. There is ZERO explanation I will accept for redacting anything for “national security” reasons. A lot of Trump supporters are losing patience with Pam Bondi. I will give her the benefit of the doubt for now since the corruption within the whole security/intelligence apparatus of our country runs deep. However, let’s not forget that probably Trump’s biggest mistakes in his first term involved picking weak and easily corruptible (or blackmailable) officials. It seemed every month a formerly-loyal person did a complete 180 degree turn and did everything they could to screw him over, regardless of the betrayal’s effect on the country or whatever principles that person claimed to have. I think he’s fixed his screening process, but since we’re talking about the FBI, we know they have the power to dig up any dirt or blackmail material available, or just make it up. In the Epstein case, it’s probably better to go after Bondi than give up a treasure trove of blackmail material against the long list of members on his client list.
-
@ 78b3c1ed:5033eea9
2025-04-27 01:42:48・ThunderHubで焼いたマカロンがlncli printmacaroonでどう見えるか確認した。
ThunderHub macaroon permissions
get invoices invoices:read create invoices invoices:write get payments offchain:read pay invoices offchain:write get chain transactions onchain:read send to chain address onchain:write create chain address address:write get wallet info info:read stop daemon info:write この結果によれば、offchain:wirteとonchain:writeの権限がなければそのマカロンを使うクライアントは勝手にBTCを送金することができない。 info:writeがなければ勝手にLNDを止めたりすることができない。
・lncli printmacaroonでデフォルトで作られるmacaroonのpermissionsを調べてみた。 admin.macaroon
{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "address:read", "address:write", "info:read", "info:write", "invoices:read", "invoices:write", "macaroon:generate", "macaroon:read", "macaroon:write", "message:read", "message:write", "offchain:read", "offchain:write", "onchain:read", "onchain:write", "peers:read", "peers:write", "signer:generate", "signer:read" ], "caveats": null }
chainnotifier.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "onchain:read" ], "caveats": null }
invoice.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "address:read", "address:write", "invoices:read", "invoices:write", "onchain:read" ], "caveats": null }
invoices.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "invoices:read", "invoices:write" ], "caveats": null }
readonly.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "address:read", "info:read", "invoices:read", "macaroon:read", "message:read", "offchain:read", "onchain:read", "peers:read", "signer:read" ], "caveats": null }
router.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "offchain:read", "offchain:write" ], "caveats": null }
signer.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "signer:generate", "signer:read" ], "caveats": null }
walletkit.macaroon{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "address:read", "address:write", "onchain:read", "onchain:write" ], "caveats": null }
・lncli listpermissions コマンドですべての RPC メソッド URI と、それらを呼び出すために必要なマカロン権限を一覧表示できる。 LND v0.18.5-betaでやると1344行ほどのJSONができる。 AddInvoiceだとinvoice:writeのpermissionを持つmacaroonを使えばインボイスを作れるようだ。
"/lnrpc.Lightning/AddInvoice": { "permissions": [ { "entity": "invoices", "action": "write" } ] },
lncli listpermissionsからentityとactionを抜き出してみた。 ``` "entity": "address", "entity": "info", "entity": "invoices", "entity": "macaroon", "entity": "message", "entity": "offchain", "entity": "onchain", "entity": "peers", "entity": "signer","action": "generate" "action": "read" "action": "write"
lncli とjqを組み合わせると例えば以下コマンドでinvoices:writeを必要とするRPCの一覧を表示できる。 invoices:writeだとAddInvoiceの他にホドルインボイス作成でも使ってるようだ
lncli listpermissions | jq -r '.method_permissions | to_entries[] | select(.value.permissions[] | select(.entity == "invoices" and .action == "write")) | .key'/invoicesrpc.Invoices/AddHoldInvoice /invoicesrpc.Invoices/CancelInvoice /invoicesrpc.Invoices/HtlcModifier /invoicesrpc.Invoices/LookupInvoiceV2 /invoicesrpc.Invoices/SettleInvoice /lnrpc.Lightning/AddInvoice
invoices:readだと以下となる。
/invoicesrpc.Invoices/SubscribeSingleInvoice /lnrpc.Lightning/ListInvoices /lnrpc.Lightning/LookupInvoice /lnrpc.Lightning/SubscribeInvoicesLNの主だった機能のRPCはoffchainが必要ぽいので抜き出してみた。 offchain:write チャネルの開閉、ペイメントの送信までやってるみたい。 デフォルトのmacaroonでoffchain:writeを持ってるのはadminとrouterの2つだけ。openchannel,closechannelはonchain:writeのpermissionも必要なようだ。
/autopilotrpc.Autopilot/ModifyStatus /autopilotrpc.Autopilot/SetScores /lnrpc.Lightning/AbandonChannel /lnrpc.Lightning/BatchOpenChannel /lnrpc.Lightning/ChannelAcceptor /lnrpc.Lightning/CloseChannel /lnrpc.Lightning/DeleteAllPayments /lnrpc.Lightning/DeletePayment /lnrpc.Lightning/FundingStateStep /lnrpc.Lightning/OpenChannel /lnrpc.Lightning/OpenChannelSync /lnrpc.Lightning/RestoreChannelBackups /lnrpc.Lightning/SendCustomMessage /lnrpc.Lightning/SendPayment /lnrpc.Lightning/SendPaymentSync /lnrpc.Lightning/SendToRoute /lnrpc.Lightning/SendToRouteSync /lnrpc.Lightning/UpdateChannelPolicy /routerrpc.Router/HtlcInterceptor /routerrpc.Router/ResetMissionControl /routerrpc.Router/SendPayment /routerrpc.Router/SendPaymentV2 /routerrpc.Router/SendToRoute /routerrpc.Router/SendToRouteV2 /routerrpc.Router/SetMissionControlConfig /routerrpc.Router/UpdateChanStatus /routerrpc.Router/XAddLocalChanAliases /routerrpc.Router/XDeleteLocalChanAliases /routerrpc.Router/XImportMissionControl /wtclientrpc.WatchtowerClient/AddTower /wtclientrpc.WatchtowerClient/DeactivateTower /wtclientrpc.WatchtowerClient/RemoveTower /wtclientrpc.WatchtowerClient/TerminateSession"/lnrpc.Lightning/OpenChannel": { "permissions": [ { "entity": "onchain", "action": "write" }, { "entity": "offchain", "action": "write" } ] },
offchain:read readの方はチャネルやインボイスの状態を確認するためのpermissionのようだ。
/lnrpc.Lightning/ChannelBalance /lnrpc.Lightning/ClosedChannels /lnrpc.Lightning/DecodePayReq /lnrpc.Lightning/ExportAllChannelBackups /lnrpc.Lightning/ExportChannelBackup /lnrpc.Lightning/FeeReport /lnrpc.Lightning/ForwardingHistory /lnrpc.Lightning/GetDebugInfo /lnrpc.Lightning/ListAliases /lnrpc.Lightning/ListChannels /lnrpc.Lightning/ListPayments /lnrpc.Lightning/LookupHtlcResolution /lnrpc.Lightning/PendingChannels /lnrpc.Lightning/SubscribeChannelBackups /lnrpc.Lightning/SubscribeChannelEvents /lnrpc.Lightning/SubscribeCustomMessages /lnrpc.Lightning/VerifyChanBackup /routerrpc.Router/BuildRoute /routerrpc.Router/EstimateRouteFee /routerrpc.Router/GetMissionControlConfig /routerrpc.Router/QueryMissionControl /routerrpc.Router/QueryProbability /routerrpc.Router/SubscribeHtlcEvents /routerrpc.Router/TrackPayment /routerrpc.Router/TrackPaymentV2 /routerrpc.Router/TrackPayments /wtclientrpc.WatchtowerClient/GetTowerInfo /wtclientrpc.WatchtowerClient/ListTowers /wtclientrpc.WatchtowerClient/Policy /wtclientrpc.WatchtowerClient/Stats・おまけ1 RPCメソッド名にopenを含む要素を抽出するコマンド
lncli listpermissions | jq '.method_permissions | to_entries[] | select(.key | test("open"; "i"))'{ "key": "/lnrpc.Lightning/BatchOpenChannel", "value": { "permissions": [ { "entity": "onchain", "action": "write" }, { "entity": "offchain", "action": "write" } ] } } { "key": "/lnrpc.Lightning/OpenChannel", "value": { "permissions": [ { "entity": "onchain", "action": "write" }, { "entity": "offchain", "action": "write" } ] } } { "key": "/lnrpc.Lightning/OpenChannelSync", "value": { "permissions": [ { "entity": "onchain", "action": "write" }, { "entity": "offchain", "action": "write" } ] } }
・おまけ2 thunderhubで作ったmacaroonはテキストで出力されコピペして使うもので、macaroonファイルになってない。 HEXをmacaroonファイルにするには以下コマンドでできる。HEXをコピペして置換する。またYOURSの箇所を自分でわかりやすい名称に置換すると良い。
echo -n "HEX" | xxd -r -p > YOURS.macaroonthunderhubで"Create Invoices, Get Invoices, Get Wallet Info, Get Payments, Pay Invoices"をチェックして作ったmacaroonのpermissionsは以下となる。
{ "version": 2, "location": "lnd", "root_key_id": "0", "permissions": [ "info:read", "invoices:read", "invoices:write", "offchain:read", "offchain:write" ], "caveats": null } ``` offchain:writeはあるがonchain:writeがないのでチャネル開閉はできないはず。 -
@ 4857600b:30b502f4
2025-02-21 03:04:00A new talking point of the left is that it’s no big deal, just simple recording errors for the 20 million people aged 100-360. 🤷♀️ And not many of them are collecting benefits anyway. 👌 First of all, the investigation & analysis are in the early stages. How can they possibly know how deep the fraud goes, especially when their leaders are doing everything they can to obstruct any real examination? Second, sure, no worries about only a small number collecting benefits. That’s the ONLY thing social security numbers are used for. 🙄
-
@ 37fe9853:bcd1b039
2025-01-11 15:04:40yoyoaa
-
@ f9cf4e94:96abc355
2024-12-31 20:18:59Scuttlebutt foi iniciado em maio de 2014 por Dominic Tarr ( dominictarr ) como uma rede social alternativa off-line, primeiro para convidados, que permite aos usuários obter controle total de seus dados e privacidade. Secure Scuttlebutt (ssb) foi lançado pouco depois, o que coloca a privacidade em primeiro plano com mais recursos de criptografia.
Se você está se perguntando de onde diabos veio o nome Scuttlebutt:
Este termo do século 19 para uma fofoca vem do Scuttlebutt náutico: “um barril de água mantido no convés, com um buraco para uma xícara”. A gíria náutica vai desde o hábito dos marinheiros de se reunir pelo boato até a fofoca, semelhante à fofoca do bebedouro.
Marinheiros se reunindo em torno da rixa. ( fonte )
Dominic descobriu o termo boato em um artigo de pesquisa que leu.
Em sistemas distribuídos, fofocar é um processo de retransmissão de mensagens ponto a ponto; as mensagens são disseminadas de forma análoga ao “boca a boca”.
Secure Scuttlebutt é um banco de dados de feeds imutáveis apenas para acréscimos, otimizado para replicação eficiente para protocolos ponto a ponto. Cada usuário tem um log imutável somente para acréscimos no qual eles podem gravar. Eles gravam no log assinando mensagens com sua chave privada. Pense em um feed de usuário como seu próprio diário de bordo, como um diário de bordo (ou diário do capitão para os fãs de Star Trek), onde eles são os únicos autorizados a escrever nele, mas têm a capacidade de permitir que outros amigos ou colegas leiam ao seu diário de bordo, se assim o desejarem.
Cada mensagem possui um número de sequência e a mensagem também deve fazer referência à mensagem anterior por seu ID. O ID é um hash da mensagem e da assinatura. A estrutura de dados é semelhante à de uma lista vinculada. É essencialmente um log somente de acréscimo de JSON assinado. Cada item adicionado a um log do usuário é chamado de mensagem.
Os logs do usuário são conhecidos como feed e um usuário pode seguir os feeds de outros usuários para receber suas atualizações. Cada usuário é responsável por armazenar seu próprio feed. Quando Alice assina o feed de Bob, Bob baixa o log de feed de Alice. Bob pode verificar se o registro do feed realmente pertence a Alice verificando as assinaturas. Bob pode verificar as assinaturas usando a chave pública de Alice.
Estrutura de alto nível de um feed
Pubs são servidores de retransmissão conhecidos como “super peers”. Pubs conectam usuários usuários e atualizações de fofocas a outros usuários conectados ao Pub. Um Pub é análogo a um pub da vida real, onde as pessoas vão para se encontrar e se socializar. Para ingressar em um Pub, o usuário deve ser convidado primeiro. Um usuário pode solicitar um código de convite de um Pub; o Pub simplesmente gerará um novo código de convite, mas alguns Pubs podem exigir verificação adicional na forma de verificação de e-mail ou, com alguns Pubs, você deve pedir um código em um fórum público ou chat. Pubs também podem mapear aliases de usuário, como e-mails ou nome de usuário, para IDs de chave pública para facilitar os pares de referência.
Depois que o Pub enviar o código de convite ao usuário, o usuário resgatará o código, o que significa que o Pub seguirá o usuário, o que permite que o usuário veja as mensagens postadas por outros membros do Pub, bem como as mensagens de retransmissão do Pub pelo usuário a outros membros do Pub.
Além de retransmitir mensagens entre pares, os Pubs também podem armazenar as mensagens. Se Alice estiver offline e Bob transmitir atualizações de feed, Alice perderá a atualização. Se Alice ficar online, mas Bob estiver offline, não haverá como ela buscar o feed de Bob. Mas com um Pub, Alice pode buscar o feed no Pub mesmo se Bob estiver off-line porque o Pub está armazenando as mensagens. Pubs são úteis porque assim que um colega fica online, ele pode sincronizar com o Pub para receber os feeds de seus amigos potencialmente offline.
Um usuário pode, opcionalmente, executar seu próprio servidor Pub e abri-lo ao público ou permitir que apenas seus amigos participem, se assim o desejarem. Eles também podem ingressar em um Pub público. Aqui está uma lista de Pubs públicos em que todos podem participar . Explicaremos como ingressar em um posteriormente neste guia. Uma coisa importante a observar é que o Secure Scuttlebutt em uma rede social somente para convidados significa que você deve ser “puxado” para entrar nos círculos sociais. Se você responder às mensagens, os destinatários não serão notificados, a menos que estejam seguindo você de volta. O objetivo do SSB é criar “ilhas” isoladas de redes pares, ao contrário de uma rede pública onde qualquer pessoa pode enviar mensagens a qualquer pessoa.
Perspectivas dos participantes
Scuttlebot
O software Pub é conhecido como servidor Scuttlebutt (servidor ssb ), mas também é conhecido como “Scuttlebot” e
sbot
na linha de comando. O servidor SSB adiciona comportamento de rede ao banco de dados Scuttlebutt (SSB). Estaremos usando o Scuttlebot ao longo deste tutorial.Os logs do usuário são conhecidos como feed e um usuário pode seguir os feeds de outros usuários para receber suas atualizações. Cada usuário é responsável por armazenar seu próprio feed. Quando Alice assina o feed de Bob, Bob baixa o log de feed de Alice. Bob pode verificar se o registro do feed realmente pertence a Alice verificando as assinaturas. Bob pode verificar as assinaturas usando a chave pública de Alice.
Estrutura de alto nível de um feed
Pubs são servidores de retransmissão conhecidos como “super peers”. Pubs conectam usuários usuários e atualizações de fofocas a outros usuários conectados ao Pub. Um Pub é análogo a um pub da vida real, onde as pessoas vão para se encontrar e se socializar. Para ingressar em um Pub, o usuário deve ser convidado primeiro. Um usuário pode solicitar um código de convite de um Pub; o Pub simplesmente gerará um novo código de convite, mas alguns Pubs podem exigir verificação adicional na forma de verificação de e-mail ou, com alguns Pubs, você deve pedir um código em um fórum público ou chat. Pubs também podem mapear aliases de usuário, como e-mails ou nome de usuário, para IDs de chave pública para facilitar os pares de referência.
Depois que o Pub enviar o código de convite ao usuário, o usuário resgatará o código, o que significa que o Pub seguirá o usuário, o que permite que o usuário veja as mensagens postadas por outros membros do Pub, bem como as mensagens de retransmissão do Pub pelo usuário a outros membros do Pub.
Além de retransmitir mensagens entre pares, os Pubs também podem armazenar as mensagens. Se Alice estiver offline e Bob transmitir atualizações de feed, Alice perderá a atualização. Se Alice ficar online, mas Bob estiver offline, não haverá como ela buscar o feed de Bob. Mas com um Pub, Alice pode buscar o feed no Pub mesmo se Bob estiver off-line porque o Pub está armazenando as mensagens. Pubs são úteis porque assim que um colega fica online, ele pode sincronizar com o Pub para receber os feeds de seus amigos potencialmente offline.
Um usuário pode, opcionalmente, executar seu próprio servidor Pub e abri-lo ao público ou permitir que apenas seus amigos participem, se assim o desejarem. Eles também podem ingressar em um Pub público. Aqui está uma lista de Pubs públicos em que todos podem participar . Explicaremos como ingressar em um posteriormente neste guia. Uma coisa importante a observar é que o Secure Scuttlebutt em uma rede social somente para convidados significa que você deve ser “puxado” para entrar nos círculos sociais. Se você responder às mensagens, os destinatários não serão notificados, a menos que estejam seguindo você de volta. O objetivo do SSB é criar “ilhas” isoladas de redes pares, ao contrário de uma rede pública onde qualquer pessoa pode enviar mensagens a qualquer pessoa.
Perspectivas dos participantes
Pubs - Hubs
Pubs públicos
| Pub Name | Operator | Invite Code | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | |
scuttle.us
| @Ryan |scuttle.us:8008:@WqcuCOIpLtXFRw/9vOAQJti8avTZ9vxT9rKrPo8qG6o=.ed25519~/ZUi9Chpl0g1kuWSrmehq2EwMQeV0Pd+8xw8XhWuhLE=
| | pub1.upsocial.com | @freedomrules |pub1.upsocial.com:8008:@gjlNF5Cyw3OKZxEoEpsVhT5Xv3HZutVfKBppmu42MkI=.ed25519~lMd6f4nnmBZEZSavAl4uahl+feajLUGqu8s2qdoTLi8=
| | Monero Pub | @Denis |xmr-pub.net:8008:@5hTpvduvbDyMLN2IdzDKa7nx7PSem9co3RsOmZoyyCM=.ed25519~vQU+r2HUd6JxPENSinUWdfqrJLlOqXiCbzHoML9iVN4=
| | FreeSocial | @Jarland |pub.freesocial.co:8008:@ofYKOy2p9wsaxV73GqgOyh6C6nRGFM5FyciQyxwBd6A=.ed25519~ye9Z808S3KPQsV0MWr1HL0/Sh8boSEwW+ZK+8x85u9w=
| |ssb.vpn.net.br
| @coffeverton |ssb.vpn.net.br:8008:@ze8nZPcf4sbdULvknEFOCbVZtdp7VRsB95nhNw6/2YQ=.ed25519~D0blTolH3YoTwSAkY5xhNw8jAOjgoNXL/+8ZClzr0io=
| | gossip.noisebridge.info | Noisebridge Hackerspace @james.network |gossip.noisebridge.info:8008:@2NANnQVdsoqk0XPiJG2oMZqaEpTeoGrxOHJkLIqs7eY=.ed25519~JWTC6+rPYPW5b5zCion0gqjcJs35h6JKpUrQoAKWgJ4=
|Pubs privados
Você precisará entrar em contato com os proprietários desses bares para receber um convite.
| Pub Name | Operator | Contact | | --------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------- | |
many.butt.nz
| @dinosaur | mikey@enspiral.com | |one.butt.nz
| @dinosaur | mikey@enspiral.com | |ssb.mikey.nz
| @dinosaur | mikey@enspiral.com | | ssb.celehner.com | @cel | cel@celehner.com |Pubs muito grandes
Aviso: embora tecnicamente funcione usar um convite para esses pubs, você provavelmente se divertirá se o fizer devido ao seu tamanho (muitas coisas para baixar, risco para bots / spammers / idiotas)
| Pub Name | Operator | Invite Code | | --------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------ | |
scuttlebutt.de
| SolSoCoG |scuttlebutt.de:8008:@yeh/GKxlfhlYXSdgU7CRLxm58GC42za3tDuC4NJld/k=.ed25519~iyaCpZ0co863K9aF+b7j8BnnHfwY65dGeX6Dh2nXs3c=
| |Lohn's Pub
| @lohn |p.lohn.in:8018:@LohnKVll9HdLI3AndEc4zwGtfdF/J7xC7PW9B/JpI4U=.ed25519~z3m4ttJdI4InHkCtchxTu26kKqOfKk4woBb1TtPeA/s=
| | Scuttle Space | @guil-dot | Visit scuttle.space | |SSB PeerNet US-East
| timjrobinson |us-east.ssbpeer.net:8008:@sTO03jpVivj65BEAJMhlwtHXsWdLd9fLwyKAT1qAkc0=.ed25519~sXFc5taUA7dpGTJITZVDCRy2A9jmkVttsr107+ufInU=
| | Hermies | s | net:hermies.club:8008~shs:uMYDVPuEKftL4SzpRGVyQxLdyPkOiX7njit7+qT/7IQ=:SSB+Room+PSK3TLYC2T86EHQCUHBUHASCASE18JBV24= |GUI - Interface Gráfica do Utilizador(Usuário)
Patchwork - Uma GUI SSB (Descontinuado)
Patchwork é o aplicativo de mensagens e compartilhamento descentralizado construído em cima do SSB . O protocolo scuttlebutt em si não mantém um conjunto de feeds nos quais um usuário está interessado, então um cliente é necessário para manter uma lista de feeds de pares em que seu respectivo usuário está interessado e seguindo.
Fonte: scuttlebutt.nz
Quando você instala e executa o Patchwork, você só pode ver e se comunicar com seus pares em sua rede local. Para acessar fora de sua LAN, você precisa se conectar a um Pub. Um pub é apenas para convidados e eles retransmitem mensagens entre você e seus pares fora de sua LAN e entre outros Pubs.
Lembre-se de que você precisa seguir alguém para receber mensagens dessa pessoa. Isso reduz o envio de mensagens de spam para os usuários. Os usuários só veem as respostas das pessoas que seguem. Os dados são sincronizados no disco para funcionar offline, mas podem ser sincronizados diretamente com os pares na sua LAN por wi-fi ou bluetooth.
Patchbay - Uma GUI Alternativa
Patchbay é um cliente de fofoca projetado para ser fácil de modificar e estender. Ele usa o mesmo banco de dados que Patchwork e Patchfoo , então você pode facilmente dar uma volta com sua identidade existente.
Planetary - GUI para IOS
Planetary é um app com pubs pré-carregados para facilitar integração.
Manyverse - GUI para Android
Manyverse é um aplicativo de rede social com recursos que você esperaria: posts, curtidas, perfis, mensagens privadas, etc. Mas não está sendo executado na nuvem de propriedade de uma empresa, em vez disso, as postagens de seus amigos e todos os seus dados sociais vivem inteiramente em seu telefone .
Fontes
-
https://scuttlebot.io/
-
https://decentralized-id.com/decentralized-web/scuttlebot/#plugins
-
https://medium.com/@miguelmota/getting-started-with-secure-scuttlebut-e6b7d4c5ecfd
-
Secure Scuttlebutt : um protocolo de banco de dados global.
-
-
@ 41e6f20b:06049e45
2024-11-17 17:33:55Let me tell you a beautiful story. Last night, during the speakers' dinner at Monerotopia, the waitress was collecting tiny tips in Mexican pesos. I asked her, "Do you really want to earn tips seriously?" I then showed her how to set up a Cake Wallet, and she started collecting tips in Monero, reaching 0.9 XMR. Of course, she wanted to cash out to fiat immediately, but it solved a real problem for her: making more money. That amount was something she would never have earned in a single workday. We kept talking, and I promised to give her Zoom workshops. What can I say? I love people, and that's why I'm a natural orange-piller.
-
@ 8cb60e21:5f2deaea
2024-09-10 21:14:08 -
@ 8cb60e21:5f2deaea
2024-09-06 22:23:03 -
@ 8cb60e21:5f2deaea
2024-09-03 22:26:25 -
@ 8cb60e21:5f2deaea
2024-09-03 22:26:25 -
@ e88527b4:7ccf6efa
2024-08-30 12:12:39書いてみた。。
-
@ 8cb60e21:5f2deaea
2024-08-29 02:16:28 -
@ 8cb60e21:5f2deaea
2024-08-28 01:53:35 -
@ b83a28b7:35919450
2024-08-27 16:48:28https://image.nostr.build/df0721d6d45d82db35d06663a0318ffe68c0b2b3c694888d23694efcc4255de5.gif
-
@ 8cb60e21:5f2deaea
2024-08-25 20:26:43 -
@ 8cb60e21:5f2deaea
2024-08-24 23:57:19asdasdasdsad
-
@ 8cb60e21:5f2deaea
2024-08-24 23:54:44 -
@ 8cb60e21:5f2deaea
2024-08-24 23:52:38 -
@ 8cb60e21:5f2deaea
2024-08-24 23:33:51test
-
@ 8cb60e21:5f2deaea
2024-08-24 23:29:20 -
@ 8cb60e21:5f2deaea
2024-08-24 23:26:03hello draft
-
@ 8cb60e21:5f2deaea
2024-08-24 23:07:08 -
@ 8cb60e21:5f2deaea
2024-08-24 21:27:00 -
@ 8cb60e21:5f2deaea
2024-08-24 00:10:45 -
@ 8cb60e21:5f2deaea
2024-08-22 22:06:11 -
@ 8cb60e21:5f2deaea
2024-08-21 21:37:35 -
@ 8cb60e21:5f2deaea
2024-08-21 21:37:35hello world
-
@ 25191283:a4823315
2024-08-21 13:37:49This is Olive Grove Eggs, a brand new site from Huevos del Olivar that's just getting started. Things will be up and running here shortly, but you can subscribe in the meantime if you'd like to stay up to date and receive emails when new content is published!
-
@ 8cb60e21:5f2deaea
2024-08-18 22:20:04 -
@ 8cb60e21:5f2deaea
2024-08-18 21:01:07 -
@ 8cb60e21:5f2deaea
2024-08-18 20:57:03 -
@ 8cb60e21:5f2deaea
2024-08-18 20:50:48 -
@ 8cb60e21:5f2deaea
2024-08-18 20:46:51 -
@ 8cb60e21:5f2deaea
2024-08-18 19:04:49 -
@ 99fdaa11:3157ec8e
2024-08-17 04:41:50Wow
-
@ fa984bd7:58018f52
2024-08-16 13:22:12 -
@ 8cb60e21:5f2deaea
2024-08-09 22:58:36 -
@ 8cb60e21:5f2deaea
2024-08-09 17:45:54 -
@ 8cb60e21:5f2deaea
2024-08-09 17:28:40 -
@ 8cb60e21:5f2deaea
2024-08-09 17:05:03 -
@ 8cb60e21:5f2deaea
2024-08-09 15:32:27 -
@ 8cb60e21:5f2deaea
2024-08-09 14:57:34lorem ipsum
-
@ 8cb60e21:5f2deaea
2024-08-09 14:23:30 -
@ 8cb60e21:5f2deaea
2024-08-09 14:05:39 -
@ 8cb60e21:5f2deaea
2024-08-09 13:56:48 -
@ 8e7462a8:c723a97b
2024-08-07 00:46:52 -
@ 8e7462a8:c723a97b
2024-08-07 00:45:42 -
@ 8e7462a8:c723a97b
2024-08-07 00:45:04 -
@ 8e7462a8:c723a97b
2024-08-07 00:44:23 -
@ 8e7462a8:c723a97b
2024-08-07 00:43:41 -
@ 8e7462a8:c723a97b
2024-08-06 23:55:08 -
@ 8e7462a8:c723a97b
2024-08-05 20:59:07 -
@ 77b64ba1:87834c6e
2024-07-30 17:32:24another test blog post
-
@ e307396d:f43eabc5
2024-07-30 14:30:18Post
-
@ 8e7462a8:c723a97b
2024-07-29 22:20:43This should be a draft but pubbed at the right moment
-
@ 8e7462a8:c723a97b
2024-07-29 22:06:04lorem ipsum doggie
-
@ 0176967e:1e6f471e
2024-07-27 11:10:06Workshop je zameraný pre všetkých, ktorí sa potýkajú s vysvetľovaním Bitcoinu svojej rodine, kamarátom, partnerom alebo kolegom. Pri námietkach z druhej strany väčšinou ideme do protiútoku a snažíme sa vytiahnuť tie najlepšie argumenty. Na tomto workshope vás naučím nový prístup k zvládaniu námietok a vyskúšate si ho aj v praxi. Know-how je aplikovateľné nie len na komunikáciu Bitcoinu ale aj pre zlepšenie vzťahov, pri výchove detí a celkovo pre lepší osobný život.
-
@ 0176967e:1e6f471e
2024-07-26 17:45:08Ak ste v Bitcoine už nejaký ten rok, možno máte pocit, že už všetkému rozumiete a že vás nič neprekvapí. Viete čo je to peňaženka, čo je to seed a čo adresa, možno dokonca aj čo je to sha256. Ste si istí? Táto prednáška sa vám to pokúsi vyvrátiť. 🙂
-
@ 8e7462a8:c723a97b
2024-07-22 22:06:56 -
@ 8e7462a8:c723a97b
2024-07-22 21:42:02 -
@ 8e7462a8:c723a97b
2024-07-22 18:14:33 -
@ 8e7462a8:c723a97b
2024-07-21 15:46:37 -
@ 8e7462a8:c723a97b
2024-07-21 15:44:04 -
@ 8e7462a8:c723a97b
2024-07-21 15:42:55 -
@ 8e7462a8:c723a97b
2024-07-21 15:39:51 -
@ 8e7462a8:c723a97b
2024-07-21 15:38:33 -
@ 8e7462a8:c723a97b
2024-07-21 15:34:32 -
@ 8e7462a8:c723a97b
2024-07-21 15:33:27 -
@ 8e7462a8:c723a97b
2024-07-21 15:31:26 -
@ 8e7462a8:c723a97b
2024-07-21 15:30:52 -
@ 8e7462a8:c723a97b
2024-07-21 15:28:02 -
@ 8e7462a8:c723a97b
2024-07-21 15:27:39 -
@ 8e7462a8:c723a97b
2024-07-21 15:26:43 -
@ 6b0a60cf:b952e7d4
2025-04-01 11:53:31nostr:nevent1qqspynu0th85xlczqgnafy2na46mg276u0c5dmpd9utcz36npmqdmpsunn5rl nostr:nevent1qqs06cvm4qq9ymt2j58u0p7c46j2atxevjkp5vpezvlzesxcp7v03fqm0tp5k nostr:nevent1qqs8vjpu7wd5h7p0elysezzml7wzhaxgjwnp5h7yst0uudyy8pjt3pckcapzl nostr:nevent1qqswmpc5vghej8uz5mk8nta2szx3ejdsvdrvxtspmc3mld683j53mfsf0ujes nostr:nevent1qqs9cwaua4gvrxms3qz8rntj7jmuyvv953sm9lcwk5j4p8jfc4qxpgc7sfhw2 nostr:nevent1qqsx4f2m3njh0cpgqe376xpqde65ujq0aq50nj45ttfqls3yzluqujgpuum60 nostr:nevent1qqsrx7q02xfyak54zcmh233trqtpw725ywasfyg9dz08prxdvcnnuhqdnymnw nostr:nevent1qqsdllaud8mjpfhfzgu9nxjgvys5g08eu344909nyekrrn92pzhpxac56vtuj nostr:nevent1qqsxhx3skvs8xeddpwvhct3yhp02vgmdu90my67ttlj70muhcu3malqjadl5f nostr:nevent1qqs2k5q965ppnvxs7tna9wwx3njtp9r40ur4ahud8ykug85vth03haqe6m4py nostr:nevent1qqspzh3q002ssre56emu2kkhel82sd9j2sacd75fm998km8p6cxn8gg7agpxy nostr:nevent1qqsy8v9vj7u3jfnmhl6867n847d2gs7gpvdn5zdnm98nes9zlgu3rnqjkwmt9 nostr:nevent1qqsq559y4mj940540zhzxa9teknz74l9d6tqptste7l4lqu5yfvu2tg74dky7 nostr:nevent1qqs8gq3t2wk6qluhcjqy5cp8v3y20wmtw3uyfujmga7njpq3fe76pcgtgp34k nostr:nevent1qqsztaj9ut2lxru8la8lcs95lgyrpypwhgx92jc74r5nj7ss8tf9fvsr70m5v nostr:nevent1qqsghxwhmfywe40sdrq2cw750ug5f62nfh2u3jwe476zj6s0xmgcgpchj5qwx nostr:nevent1qqsdaw986p4qwujz99a0eg0yqtpjqhl6rcamxa0hn0yyg8pcwch6cysmans7p nostr:nevent1qqsyh8g0et5catuar388v56eahc4qmf7l6t79cs6scuuqa72vxj5lxq7de8wr nostr:nevent1qqszvxdc8vf2tjlayf7qf839p2j245nt7447ytqnju65s4ypz402gecrcsp8q nostr:nevent1qqspyx8mxme44n9vjspewch8s2tmtezt3z87kpytzetn68m39f0yhfsskl808 nostr:nevent1qqsdu6r2sf6npr3xn5gwkdc6st62zvy6r6r8u7sh078rjd7cjvy5jdcy8crru nostr:nevent1qqsrc0j0xa769ymehgxjem3lchwccndwj3ms922ltu7r7sy567lyzncddqjsv nostr:nevent1qqs0gcr269zzgcmrq6fjyzgqh7lqerhqqaknfrd5k563xnr9vanmtgcfzza5l nostr:nevent1qqsru4vxn5sw02zq4v44xtcpkt0qxqp9yc6gyy5pyavvvwa96dxyzscp3apme nostr:nevent1qqsp0ajlpxnvu64recf69efhxzv6sgu7yk235u59nj2v529dq92x2wgvcna9c nostr:nevent1qqsdmcrqmdkzf9tptgh5mytuan9q3ur7l50a5kjfrskfr54gxqq5k0szyhfsj nostr:nevent1qqsfk0duvuamrutcpansw3hqarnmhcr4vp0zt9r8pta9zlycma2jscs5wz0fm nostr:nevent1qqs82xxv600mtzxhhped2vn9yw7aer487ws8yy5hk5ppyuzxjw92hzs06hxp6 nostr:nevent1qqsfs96nd96mvulw9yp0dyygdtsegxkmnvytkq5xgmepkrh0504x0ns0rnm60 nostr:nevent1qqspa5f2fc5w4f9ghq2eryjnc44hs3grmaq6eyrx4s7ggkpjdmx2gjckswv0a nostr:nevent1qqs96s99kv7h207twu8s9mhmms7e5ck2s9qhndnp0m2w3uqpsh724ysnd6esu nostr:nevent1qqs8z5jzrlmeenpst0xtrm336tt0racrx63cnchskgs2d9cgmrtugdgmluxwa nostr:nevent1qqs9aqladqaf2jvanehny0mhd6mq9cdrgwr838z68p8h9clmcgf0zygqfvdd9 nostr:nevent1qqsd2m5tlpztgfqhzhc09upzzc876j6s60299m9lha2sxvnyjrvfasctaurj9 nostr:nevent1qqsg2yq7mw55vqnjmrfetc453v3z6vzzynmevt2ljgg4yppn5m2ry3ce2jlfe nostr:nevent1qqsr3vckac3re8ayyhv3m3g5s8a4rat5720un7qle8am2lfn7ew3magu6vk8f nostr:nevent1qqsg73fke3mszmuz0nh7r34sl3jlgdx70npfjc5almxrpycykhvnersq3rfaq nostr:nevent1qqsr73gdk6n0dgvg7nv6c390qf0c2j80t7qf99nftmze3dlr7k3nhpsfhl2ql nostr:nevent1qqs2mfw8a5vz3tjrnuerw6vxge0t6kd6snyeaj5jpfye7jvkqyqsv8cdw09np nostr:nevent1qqsr3qpal7xkhkttp4jrmjehm86ulh8hzarusgnyhhuf4ttdkqq0vhg7279w0 nostr:nevent1qqs0m4l3rza008tax28s3mh0tpexeqpzk8y2hlx2h8dgaqcft4rvm5c8xz2sq nostr:nevent1qqszt96jl70h9ku86s8mldsa8vk7m2vtwgfc2sksxcqfmkl2dksjntsjhz5zx nostr:nevent1qqsqdhulqcal3edfn2tu5lsj2tcgyq73zft3z6sa0xaqt4rd7m2gq4qpgs30l nostr:nevent1qqsygu35a9rrlh8ld5nuucjj9nw4up0d8mx6dmq98hqpj7j2kc6w7ts44y0wh nostr:nevent1qqsfnzz55mveegemu9nmqvfvm4wyarpevh29m778946lphw4wya23ms7z8ll2 nostr:nevent1qqs02ft4599adqeu9v3ny04k5x3mdued0rnj2hgg5lsg82xmqnpgxvsr48clp nostr:nevent1qqstkr7gr3flahhe9e6gl70sudqm5qz23rq2f2q9as3ys9s6l9c06lsgrduvd nostr:nevent1qqsqzmjj8rn6pl8wrn5km7an00cfhy5wzqzz9nlne5hzhktwlnsp0ag0qd665 nostr:nevent1qqsfc2x5vx23yyztnvr3n59dv9kyw64jc88pxxfgawt4c8m32qq5ekqqe4neh nostr:nevent1qqs0f7fkwlky42jxsdgr33xttz3rkg7gk200qkmv2rulrlauqwee7ts7mzn5q nostr:nevent1qqsg3c8qyp4n86qdtkyzcnk6kr7gnmad3sd2vhel52m3r64ala9rqugrcnnv6 nostr:nevent1qqsw9dn2cuhe4xu76z2xyugh8gaah92rdyazyg0s2mvkll0qrll02gs4uvvvk nostr:nevent1qqsv0pymkvfqz53jyqwqjj5wypp375ljlstav67zzpdlq536xpm8d6snawjc0 nostr:nevent1qqs20fpumlhmzs49mlsvd2f0s7kfgjq68auzkfvf6s3yr7a0njy782qv778m2 nostr:nevent1qqswqq7pl8g5redm0t82k4ys50w65z03m5xl6ayr374c2vknqfwjcrgguyt5s nostr:nevent1qqsp0fn3adqdq3jvcna0vwkwjnaq32lx6ac7qzpquvdt8zpugx5gvhshhkgez nostr:nevent1qqsvtd6surkas9nrvnlndk3r53aqq82dedmm8ayf2zhrv9w9lf90g8gslhagd nostr:nevent1qqsqw56qfhvkv56ss5r066yrf2hnwchcn4ldav576ldhvk3jk543clcsayyfz nostr:nevent1qqsxq9faxju2wp9zl5gw7usu00rkm7n0x9ylnlujsjjn323wppqpausm4etyu nostr:nevent1qqsrl7gdwgd5mqf3s3ygn2e5j34qnjxeldr99qwn7lge3ncfdwhf4usl70dm2 nostr:nevent1qqsd2a32drg7teet8fnkauxede52lyrau8ey24dzzqflu7pad2fhsvsdgtyr4 nostr:nevent1qqsv5uqj4zxhdtdapzk44tfuxyft55tlp900r4l7rf9vtma8d6cgjms2hjwde nostr:nevent1qqszcepleg57p2k03e06et848frekk79x3f523nmx8t3guxmuyfgsyqeat4pt nostr:nevent1qqsvklay6j4ukvc0w9n74u5hzselsrmclm9jfmezrztqf3xf74522ac0rlcen nostr:nevent1qqs909ldkkvchacs32hpj4zphwxdyxtnvv2nz0wdk7d26ec25j7xyfcsx997r nostr:nevent1qqs0nyvnc4j8xen06z9t784htam8e9jsucpm7g0xq2cdtenxrcx4qdgmgtj8q nostr:nevent1qqsfq3gqv98x97s0wu2cyenz5ng0v52fsv8erzyuj8q7ls9kwaaafggwt30r0 nostr:nevent1qqs2pu4lcqakjgkx524jvd967vk2fkuw6urtp7tw38q3accra6hf0xqd99kc3 nostr:nevent1qqsvgwlfeju2qsnllqgexscdrta9lnqamxlq2kvansadmhyy0g0eqhg02dpeg nostr:nevent1qqsvveq4k9cz0t3xh55cudydkweh58aekjrmqh6zut7ekqsnuv3hfyqdrru6x nostr:nevent1qqsfn29l63mfggnvq2j3ns9u09su2zrsahrxmczh4mk6q8mq45lxkps5alh6e nostr:nevent1qqszg3s0jdwj4qug6plqe865ul8zh6j60gue9c5f897dclmvu5xc2zqv77xmu nostr:nevent1qqswla2n4l5cu2z3czyt8vyawylv2hxj2avjg0lx6lnl7cw9p3kn5ac9nf5u8 nostr:nevent1qqsf8qufcluup4tl8rcngu5z8tarzxl7the3wfe0xnfdyjht9rzvpaqyzcn57 nostr:nevent1qqs8turf9zhsjc7uunw8wgqtd7dc5wtlrgxf2wrvsnw2cgz534wd6sghzcgw4 nostr:nevent1qqsqwngx9nxgf7slse6yeh9uvnpmwz3exa95qyh6x3ez00z72y2jvwsrfqdhk nostr:nevent1qqsv8z7leemtzl5cfexxynl7243uqd4nr7kacdaumyx8rq46kune2psgz47rc nostr:nevent1qqsp0ttn3kcnds34zjew7w7e8hwnaa8hwx29t3tej2guawf8pdt9csgz4m9nv nostr:nevent1qqszy0yufenkexssavnv0p5k98e3vu77f4r4tze5v6p94gmgcrgpx4qd27h77 nostr:nevent1qqs2xj626q46rpzwnas5259t5ywpwzltnvj3pwvrjcqseddtyu500qg5rn883 nostr:nevent1qqsw02jdkpg2vzs5k5c3ymvndsrkje6uwkxf0dqmz0yvycfwt6lvq6qjqgfgz nostr:nevent1qqs2d237yzkmuxl82fc2u7wdpzxyvjw2gje6vgadtw4dzmnp483jgrcval8vd nostr:nevent1qqsrwqj390vqwp7e6nwu3k8m6h4luks86gq3sql99k5tnvy4w52kamqp73nl8 nostr:nevent1qqstdtqpxl78ecn9x8dzylvzul0cfsxh64gfunzts72l3sqmvzt0ylqwp9c8n nostr:nevent1qqswcvajl70frlhwtuch6cwlsehl0u7f2hfw27vhxvzwhzatm2ugjss4zle92 nostr:nevent1qqszfrq6zdsclykmeke3a7znqgp7y975mslf5w0fk0hfujajj9jh4hssc4s7f nostr:nevent1qqsp253cwmp33yedu7asa6k2f09w08j34zcky52ks6jh97msqsrh9nqylwer9 nostr:nevent1qqsd3u0gms7u8gqkvhpfqlvk2jrttjzs5zuvc8qdl3g5pse4dt8ugcsqcez79 nostr:nevent1qqsxq8t0u67schrxvv0dtuf2j6nlvqytkez42f0jmhpjtnkap5ssvsgm7pdcc nostr:nevent1qqsvp878n0zlqkge6famsdwcqp8k92flz2wf97c0emxlsrf7f6gqt8gyzkgp8 nostr:nevent1qqsx3xnxupzzfvws2etneycjyvcx0n7mcqru09gyym5x20s3n9ewcrgcsetd6 nostr:nevent1qqsf666tlstrgssclusaam50nfk0xjs7m849f70fuv5hw9h7tsmqpegaduhy9 nostr:nevent1qqs23eqhwhvah5yjn54m7n5klw4e5efg8s6994pamz5ejcgnsq4d2wss89y7y nostr:nevent1qqs2q84pdl6qvf8h7yu9g6hfvfzj49z28ea5m6k4lpmwvl86tnuedxqkxxajr nostr:nevent1qqsyf0quzl6ttedn7qftse9386uh0pvp8795egxumyvs8sjckm8xgxs2srhmy nostr:nevent1qqsf7n8rqr2wsjpcuczlcee85227rylnv0kanj4mca0hllptyerd8csnyspns nostr:nevent1qqsycgshmjcqsr76tlhuppp23a49zy4e995lj5wnqm8jkz5vmv9l55cjpughr nostr:nevent1qqsp4vwephtxxlv2pjgupymfl6k288qh6gdzsy8qesmu0natsh095tsnfrpnk nostr:nevent1qqs297q9e00dpmj78rdx2qrjg3hva5ye9p7nke8avagn844jxucudwg2mtxgq nostr:nevent1qqs9c08g0fxv3vy7v5c9gsme0jx6fujkv88k3rtnmxjcd89ejpy72hcadrjas nostr:nevent1qqsvmwsetretl7dm42c3g690llwylyn37cunkauepzj3le3qhaytrjsh2ga9h nostr:nevent1qqsgyqu6zjppqek23fgpzlmg7hqfl4knryjvuflx54ypx70m58gt6rs5s9dms nostr:nevent1qqspxcsk7g56qhapmzek243az6zhv9v5hwupnyg4nn352kvc2z0fw7qklkcv7 nostr:nevent1qqsxwe7u49q4yc4ney5kt6gkfep0v9jlx68r5u0uf9upl7u9mcfxpkcqpu7z8 nostr:nevent1qqsrmyeh30f4kfdleq23w9vgcx9jcqgkv3stg9au5m593tlywlca0lgylty6g nostr:nevent1qqsg2v2e7tthtd8m39ctt7yyqw0lqkx23s7e2fqt4s2ymlnn33n5axg7fy4da nostr:nevent1qqsvtgfln33c2nllxt2797xfqttcuy6qtlh8we8q9lv9gn7r5jy4ahsfqpyg7 nostr:nevent1qqsz2al0emnaf5cjtrtdfv9c9t5ey8475yx5kp5442cg0afmlys6dgg29jq4x nostr:nevent1qqsg8lvelaeq9uyv7hzrxgpelckuz5hpf5g3ajyghj8nsk2ycckv63sllv797 nostr:nevent1qqsxhp4g53ltg7qjz2puzvsdwxk54xev46n8jmc2tlg2pdp529ckgfg2329m7 nostr:nevent1qqs82j5zgk3plkk8fugmflertrl8uc6x36elfeet643npvyuxr39tvcrr2u63 nostr:nevent1qqsd4vye657t504chaqf2d5gwgd5946t9tfg6aq0fnkjljnnmkfmadg3ss3uw nostr:nevent1qqsxhr5lanyrce0c6amgvxzd77a26fpap505hl74jztuc5svst8dtrcvtcl4f nostr:nevent1qqsrdap3r0ptlwxgd0dav04y53w04x0jzh22d4sxksuzfpetf6j8zwgtmay55 nostr:nevent1qqsvyqj4lr5g5swahxxjrpmga3569qlmd96xk6f4xwm84gmwu7aqw4c69zqtx nostr:nevent1qqsf9dntcjdmmzsu0s2t7pnlx6ver9usvaz53hvgtjggfgn8da6eydc7l5gc2 nostr:nevent1qqs9njwwgechxesqycm29asghutvq0e2fec2v4jc0gvpsk2dsnujq8c9vnuuq nostr:nevent1qqs9ahfkkycdlkemndn0dc7am5djnp8pwjnu72sng2tg0pk5kq7jv2skfv95c nostr:nevent1qqsflgngaeu8w2xz2lkzly5rvr3rudcvq4yyrn2w724dlr32p2mulpqasv6vj nostr:nevent1qqswg7qfwtdj38kr9xfp7f6gfvaxm5kpuwp22ueqny5pp6da7snl92svggqww nostr:nevent1qqs256vewt769a0q8teqh3n5eggjvw0jddl4xzejx4rykhcrrx2k4zcr70g2w nostr:nevent1qqstf7w5lej9qqm63x2r9c5ztc7s9tre65f3e27p5mhqjzy3555856g0lptxq nostr:nevent1qqsfzchhw84ldh2egvqethzychr8jvaaurdacvav3qhgelwzldy7adslwelmw nostr:nevent1qqsqy4uzgsedu94j6jyjpavrmn35khc7nsdmhxnwqehy9umdkgac79skwad40 nostr:nevent1qqsrzxkswpug72gc6eqf4qklemc29quyscds2ftwuqmf0lwvz78fckqxq9r9d nostr:nevent1qqsfzvl36d5k89q0frn9gfepwjrd65cgarh3gtj6gmqffjh9v7ncpesfxuyug nostr:nevent1qqs9vcndnjwtjcg2p5yj2jcktscn8lyf766kqtjef2a3fmyhsga0mgg6d5vp7 nostr:nevent1qqsdf65dzcvx2pkwh297amygfcdypu80g3hc2w0hzl6l8ed8ptcd83ccux9kt nostr:nevent1qqsr69tp6y6dj6agued5vqvv8wrhwngtl9nk6yln2amzg4j0fnxfsksj59765 nostr:nevent1qqs0jjfn0tnjgvech67ks5n3x9zrpredskg67twea7m2x8hvuq3zvvsjdgjcx nostr:nevent1qqs8s9wuwnqmkdjwmrxmqrjyktq3egkxlaqzx7t6q9e53yalga55xuq5ez8ug nostr:nevent1qqste2hugs0txe9xqzle5y60t2m5sakxfcq4flw9e6gtxvdlpuy2qqq3ksyc5 nostr:nevent1qqsxrns3rez8vhnym5qvqkg434w26r2paw8jm9640lzmhzs7jc00r2sk5nqq7 nostr:nevent1qqs05du8xmstnuajfj6cqetxv06xk8xgj23eepfpyjk8hdz3v5hx3hqg7tcwf nostr:nevent1qqswq92249238q2gp6cjcuup5w0e60htyqrp22cepc6uelysmewp46s3n3c76 nostr:nevent1qqspwxsck6zz60gc8tr48l4qqdnlnva0s9gay2hmdckutrz5sk8mnpcueftjt nostr:nevent1qqsywqjwwnuycnzkar8cnua5lerl80kr9wvwdr4yy07k2r7enlup08s0w3tg6 nostr:nevent1qqs87m5zz4x2cctfvxrvxx9546fe9rl5j82dxcrz4s89qzk47huyalgrd3rk7 nostr:nevent1qqst7lun76xhcmaw84s7cwqu9wu5dfterxxhjptlw54gxhnz5duxcaceaky47 nostr:nevent1qqsyexk849hlfxhnqlt4t6y23jshgeevrvtu53dh95w6xfeuuxrvz7c2aj87m nostr:nevent1qqsglmpnfw3jgl9ekwanzlgzhndce6pmncvunkswpc3y2n40vu33m0cwds2v5 nostr:nevent1qqsdaw8rm6yww2ks8300m2xw22c8xdemnkspdvwrjh2jn6hnuvuh9zc6quvml nostr:nevent1qqs0p6d8ny8kunevc8capqu9ntjmd9ze24ql2sjam0j0h8ju0xjydygkm9ffq nostr:nevent1qqswu057ppwc2lars6nu8sc8j4rupnahsrn79a8zktsqawq6p5fh46s5t4yqn nostr:nevent1qqs270vsqqtjwjyswfmqyldjnmnvrrp5g5q7wh3k5qj8cuhljwn0j5c8md0u6 nostr:nevent1qqs2ypcx6p5cqe8dqqmrm36qvgucflgvss885r8czcal6zv0axqdr7sn0x2df nostr:nevent1qqsqvf477f73gm2qfkuly89sy4sadju6wh4t6dcqgh4zwr8ds9g9txg9gppkp nostr:nevent1qqswnmvwph8x9xnqr4n6ytxnfz8nl89a7hfrk2453ldxudtql3j4yns2fj3hs nostr:nevent1qqs2ecqgkcgmlvzj90c8trmw3nld0trtuujnv28f5ezt3huhvvtegmcagpf0y nostr:nevent1qqs9s9zkznyxu6qk7svajntw0v02ldr8462dgt7n5f9slq7aleycsusl96zph nostr:nevent1qqsp7nux9qjzsx4ypcrjexrz25clr9586ar5n5ahc70r7yhakzvaeasd63ulx nostr:nevent1qqsp5gp2xg8lx4kneqrhv990x0velm85s5u2jmggkwwzt8yrxygdc8qgfsp3z nostr:nevent1qqsxdt30myarjhkprzt8xx4kfy7fhyjxshaza0z52nq0pkgwkqguhugt0jswa nostr:nevent1qqs2qq3wpva3lt07xrde3y2vehqy0cwyzye52cvhjnlyw5x3rghsgrq93jycs nostr:nevent1qqsw0959762aa5pxz9hhaa6saszqrnqjrr5umtl5kkj00prqka4fc5qnpfek9 nostr:nevent1qqsx5htpawdvx500074r0skyxhrezkfs7rctuu4afp4puykuvth9kksr9dc64 nostr:nevent1qqsf7kexs3s0g0f4dzv9c8qdns6jh6e26qvecu59d579ud0fta8a7ag7pss04 nostr:nevent1qqszkphl8n8vtgfnrpkudwe8nsm47pm95ajy9a7cdaz3k7shadjynaccpqzv6 nostr:nevent1qqsgrperqd4nrjegephrrdcj0qwkk22glfeq3msumte2evup3f5f29cv9e5vq nostr:nevent1qqsqueyp46tjgh4s6fc7af8r6nnpdetrutmemalfkk0ruqp93zt4ltc3hdj29 nostr:nevent1qqsd34zcm5gm0aws879q9t7sdm7r7rvd75sj4uzxxslwa25ffay3pnc4x9wmg nostr:nevent1qqsz233vcgpjrtkn03kh2wv93jwt0m042jpqp06uank9vfummhdrqxgvq0hnj nostr:nevent1qqsxdtchwzjvxvml4h27ta75542vgc6zpdtzeuma4hrz55v9trswdns9dpxna nostr:nevent1qqs922qlylqjrmr3uaj0f29s82smytg67cxcl208memnktx4h7fhhxqd2wzwc nostr:nevent1qqsrpzxupddee90chcj8psnlhhd8s2r68tvz5u09u7u46wj5a0hyyvs98d2z7 nostr:nevent1qqsfkl9ukp2gss96ut95rwyg3gfcdft4qnkzjc6mg2x4dnpxsezwx3g7dl4fg nostr:nevent1qqs03mv7zygd5stzm6mlh3v57mszuhvnumwfpa94m2axlwqhrtyjfacm9hfaj nostr:nevent1qqsg0k2f4l79804jydkq3ryekkjk95rcysswg02ktrg3cftwq5jnvdc6pcn0x nostr:nevent1qqsw8fnh3x09dj7m4w0engzftejh5pq0dgjzcr23erpg38kyvgz6taq9hg083 nostr:nevent1qqsycaw0y5z5te9r8m3sx8cngczuc0dtzcltf6khwgwhls4y3vxv7wcehkkgx nostr:nevent1qqswpdv0jy9ag757st0c29efprl6jttz3jvrgaxg382txm4r38shhcgfnzhvu nostr:nevent1qqswzt4yac0p8536j4venvexgt03shq94xnsp7lmxuy0vq9wl9dj69qqtr6tg nostr:nevent1qqsw5p0cm9wxvwjlv3z2kewze2t4lw073h7x5lql0g3az7h7jnd0pagxxsmwp nostr:nevent1qqsz92z4pa6zdhhchrygypy39x3j8u4mv98dflxmsw39dyuerfgy2xsp7rg2g nostr:nevent1qqsqur6s28xh68lzft7k6suklrv5knjp4hysunyr7g79caucc8vt7yq6kl0zd nostr:nevent1qqsf02sunq6yqjcpjlm8a4ku8txkyte68gmtvmhyez0lx424cxk65zsv6gk3q nostr:nevent1qqspexe5ew6dt7g3ps9tk2cd345y3jd0asfuyj8pgxv4m5ywqw990lqyhzv9m nostr:nevent1qqsyedkwvv6u4ludqgz623ftuj4mncn5c3tzf533q6xgc4k5xgn435s62yr3l nostr:nevent1qqs0qr3al6we2zeqr4lrkz6nk9cp7cvf9ymt06khw7d4377k7ar5n2gxtem3f nostr:nevent1qqsg5x0qrjk38xpmxh83n2wspg32gwwr4hxqjsc6xz60wess9efy4eg6cpn6v nostr:nevent1qqs9swl3twdd9zjr55gsq43gctczv4cjn0an58gn83wf3ujquu0l7lcff4ma9 nostr:nevent1qqsv9sc8m3e36a253p4jg5am9ay92ncjnx9nttsh5ss37ndr4znu97g0lg0hz nostr:nevent1qqs90fava6xzrjhdpkwld3utw3xl6ghddfmlu9ceql8p82mkv6luvwswptxe2 nostr:nevent1qqsrx0h5jz7vjv7ul0w30rjqzg0eey8r0ff0k9cf8jfcjjr5a57kg8s8tz2qy nostr:nevent1qqsfwln27aduh4yw80cqwml5f7vh5z6v7q80gxmrv3a97x8zfw0a7us40qsmx nostr:nevent1qqsyyl03g27p9ekau4v483800dwc02sfeay8txxn67mr3h3zt476sdqv7dc0g nostr:nevent1qqsgup96lkscndr7jdze308kt495s65uura9vjl8yucfcd0depzpe8cdvlxjr nostr:nevent1qqs0c0zwxpfv4krj0vfku448tl3jpudw56nw4wr4whlje7cexauhd0g6zqjxn nostr:nevent1qqs0dvc82lc2mmzvkmqtcua7kt0vwz4am48kj9sq0rk8xpsxjxw5pgg4qe329 nostr:nevent1qqsxzttj97g67mag82fww0aglmvt5qwvk59e7euswn3nmjtpx5j6thg6c3nz7 nostr:nevent1qqs0gxfve8yz6m93jaseldl8xzhsmpt7k3gkqlv8xlje4q6aqjnna0gezcl83 nostr:nevent1qqspj6puxtaj06z2shd9nr82t2rwwmh6mszapee4gjyj7vra6pwfj4q22x99e nostr:nevent1qqspcrj2zg0jyy7ardz4kt4d5n95wz84jl65hmrdxum7nneeglwtnzcxxzdt7 nostr:nevent1qqsd4ddx493uj3wuxscwfjl9le3f7t2f78yh385666knu26vr9luz4gwa0w24 nostr:nevent1qqsx4w8ztgk5m3wz59mm0sqr7nyzx9hzu005vae6kqaepnpxqw0svwqaq9le0 nostr:nevent1qqsztgtzz4nqf8znh8u3q5fwtnx84mzrjur8gq6dmg3mj2kn3ugx2xca4g2nv nostr:nevent1qqsv6m42nk6uerh02wnflytfvj4nuj0sp43s9lzuvd5thprz9k7jjgqgywnf9 nostr:nevent1qqsvennjay5vvk40t99jwnuefa4lw6zuhya4mg74fsd0klrwyfwjjus0atnfx nostr:nevent1qqs8awph7hzu76df5w8k4xx6j5wmc8tnddxa4sfwnuruea78wr4tg8c47rsa3 nostr:nevent1qqst2222z58smd36lltudxlme8fpyupg8t2c34z803n668t5pmt0ypgsv3ryg nostr:nevent1qqsvjphy6fz8ae244jzdha9xxmz2jcy0pz6zfcse626t9ms5xlcyeecmpdyt6 nostr:nevent1qqs93ghgzxt4ywr404yn4jm5lx8m7l964mmgqtl55khza7jfwsk3klcyup39u nostr:nevent1qqsq0lhuuwewq2kgtjk44z8wnuhv9x0lrvym08dk5p70zk3l9gupp3sv3dlrp nostr:nevent1qqsyq8u0tnangar2w7ft0cfzwglxmwk7kkczpj8k7wqjnasz3sq2sgqssvy50 nostr:nevent1qqsyh3f6lhft7mxmf57v68ypfa4j5fdkuvf43c9q0g5w83jtzwsg86gwhjqtp nostr:nevent1qqsysgrlqjk2wayzw0dymw0r0wv30lk0c5qeagc8h7lmulyffj75clg4t4anr nostr:nevent1qqswcpe2hfr6zk46p0jv65kl3wtp63smv6uxe6j4evsav9dlcpe7xmcx9kqrq nostr:nevent1qqsxv5tuzmfjm3dcz05xng5e9gl6e7vqx84h37p83d6qstzx3hwqwlqtw59hv nostr:nevent1qqs86k2c9akxtzvw7upchwu4pnesj4ds3d3fsg8m76mjdpvj38zwcac6vud53 nostr:nevent1qqszltfvvs22flkqd2v9jzuu222nq9jud78z5sjk8z6y7jmqnd3f3fgme3yek nostr:nevent1qqsrglucq53e84kgkaa2hsq6a5xahraethlykzx6znymtg4gvxenkssx4un3a nostr:nevent1qqsvaq0lwefwnrfkvmrul84fneecua2g7eg8henlkuht0r8u0sp79cqqwt7s8 nostr:nevent1qqsfrah0av2l3dc7valuqklryz2a687t7cenharuq7r6xelm0e0yv4s494vpz nostr:nevent1qqsrt7uykaetqwl2q90x6kd5xhgh6apn8kz7gvy6hgsa42xe6qmqgxcmyll46 nostr:nevent1qqsgl80erg8t5cqdz3wnxzd2g6ekhdtm7rt3nxszzvzxft7v7x8lqgc084p04 nostr:nevent1qqs8gsthklfdzy6fku378tf6807qk86kjcgrgaavrjtdffh2e57la8cwltl53 nostr:nevent1qqswjgler7slw0lncaxhtne5kz3np3tu5umdef2aqavy5atq0tvgm9gns8h40 nostr:nevent1qqsr2ka8n6zv0z4mk6ty9nztqd9qz8rkgt6cjck4ce6mtpm8sxupmsqj7s257 nostr:nevent1qqsrudy60t40q9vup3p0kxrrnlllwnwnyh8kt4x623d3f74jctpnrvsmd8zam nostr:nevent1qqsqskyce40lmwc9v94tkxy5phnzf4p55q090g02wt0x40czw8mkk4svtu7a2 nostr:nevent1qqs24dsj4x02x80lvgtj3khkcqpqv6qyypfse2676et46phrztxs75shwde3x nostr:nevent1qqs2cyspyllevj6ahmzep5jhlnnfc8448uh3jn5m2qfmn8y3dma2qggcrtvve nostr:nevent1qqs0k044ntscwad95k8347wuflpchrl0aszzltfyp2nxpv3g6kr2cass8k459 nostr:nevent1qqsqq9cce7umtkm9e3588n7nl4y3dktlskssapph5z6004hqg9setaq4zcqr3 nostr:nevent1qqsdsxzfqhwxg42a652t4234z7p703lwrulfnz9drsus8erjvnag74c3606pt nostr:nevent1qqs0wjxh4ze8xfk7sec3zu4cepwtwexqty80qpvp5nxxgvutk9lqydch9jzp4 nostr:nevent1qqsgavz69cxs6mx2y42j4qnqn7q5xdwvmnaae2tj2px8zdep0j8rs6g87hl3t nostr:nevent1qqsru6z84jtjmycunulyzf5ns3rq0dweseseyq5rxmuzvcs7ylenu9sykk9re nostr:nevent1qqs2kxhn4sl0p8wyxzcv4gpqqwztky37p2j22qhpjqgn0cy407yn03qmsctfx nostr:nevent1qqsf7ug82cd5c02jkm7uahc4p7kc8j32q2dgvuun46ywmlfmrwu6xns3r0egn nostr:nevent1qqszckunp53566u6grgw75gy2c9ce6902zd3jp9cfg20paq66lxxdjs9l259l nostr:nevent1qqs07qw0kashdjyxgj6w92p44hnd3l9jeamxhc63fkdz9cr8na85pwgqlset5 nostr:nevent1qqsga4g5haatk09u4vkm6nfmw6ngctg6p5jzam5kax27lcnc74vcsdc5fwjjf nostr:nevent1qqs8uu57ukvxfvve900uvynudvazpu8xuw7zvexkctm62rdgtpu600qcdwg0y nostr:nevent1qqsgdc297tvnh06kqrg3e68ftyu6prwjqtvxj782f549jugart2jc5gqcqjyp nostr:nevent1qqsqkus0qg7nnl5jkjzhugjpd6vfn70m0r7xtpyz3mhq9k49unuwg6shprvut nostr:nevent1qqsgxaedjvy4s3rlfg8235c7yh0uxc0e7n967p9j6uuz90tzvafzy6qrmcrwe nostr:nevent1qqsv2j2dchuyajecmrqxv9pra3cju03fwkes5qy3xrjtf55twjmx64cjvx347 nostr:nevent1qqsqmnnasdsf5zmqlq3alycl5r2uestvx5mshvnl56fdjk0qx4t2hkgnzn7ww nostr:nevent1qqsvdm79znu685uehrmmegcmq836jj3qeqtym8cv356wx8y5tscjg9c0dvw4y nostr:nevent1qqsy8wx4ujy7z3e6svmz72zaapu7xqx7y4xsuthuk6ynwkzfl9u92nsl42f8c nostr:nevent1qqswccl50t2p57wdfam07p2lvdqzxeg6dzm72vrjsf0xjl88uk03m4gzx25jj nostr:nevent1qqstv4gslzxfte85yckx07fdn5phluvcnj7a7pf28j7hgthkngs7fgqhl5fay nostr:nevent1qqspeada7h3749ex026n4gp60pkv7rtt5nzn4p76dyz9vfzyhxp5puqw6uech nostr:nevent1qqs88tlgk2gd2dsf3mre36e5nurg8afmynkafwlj59p5295wq2dycccjtp7l7 nostr:nevent1qqstu5z907epgq3rechx0ezqyge3uj7nm2j2ty93hj9rwuxxzrljffc4zr0qc nostr:nevent1qqs2r67wggz466rv4kh3vrhyl8e4t26a5s4tq7wgfrglghnhcw47n6q9mhltw nostr:nevent1qqszerzkulum87k7ykzzg0t7wa2lww8ttt7xlu6m385hl5p07lsk9ych3s90p nostr:nevent1qqs804wfmxcdt6gev9qmyasz7mxq6m8k287ulsfz39umqcgpqqf2jnca7xk42 nostr:nevent1qqsgusg06zl58x44778cskde5n8uudgwwajfdq28nvq38kt8nwsyu8qyw6hhx nostr:nevent1qqsy8ecclr3p6s9r7d0ge060fsc6qveuj8509nkndq9stzp4aslejuqw9j892 nostr:nevent1qqsyxns5ze0qm54f3nhpc0dygqnq60e2nmmgpvlhkg99zt2fp7umedc7latuk nostr:nevent1qqs27g6c4vaqxkc2gvnvuged60095fwdsk4e4ze77ylazg9lgz0mlng67q65m nostr:nevent1qqswcy0v5pn5v9wx6uzln6nr4nl4w5d0c688gx5z3qhepswmhu4zgdcrvux38 nostr:nevent1qqst3l22tc9thmnks3nxa9lqdtejktk44ved3xkyqy34dzuzcz92npcdvgtlr nostr:nevent1qqs0jnryazxjjl8g3hxw2xh4fastfy9cu47lpm2qgh2fc6tf4d78sqcphuvzg nostr:nevent1qqsva8k2qn9pjm4wpg879k37f9hxtrpa6twa4ck9uf33e4udzq308rsavs72j nostr:nevent1qqsggahcy8q0zgyvjdpxpljykjahjsx4tkg7z8qr6m28y0hjvfkredsyu0tfj nostr:nevent1qqspayr6m5dcevp96sgew5zn7dye0gm2lrvwmlhr0nlv8kcayarlp9qlntm3p nostr:nevent1qqsdssqj635ee355wdugls0lr7hgfwjjxdzr3appz2pc0wrsp228wrghtxuzg nostr:nevent1qqs0end22ejwqry63pt4yq99ez2jsxj2d35kpy3dfnkmsdx8pk53pjcw2qdwy nostr:nevent1qqsw5t6gr0svp9wefrve6przj6hqlkp7ma787ac8tauxwtc53ws2a8sru5vm9 nostr:nevent1qqsr53vq37g7mm6chgsafpgn9hscgaku6m00mu96d05lryqx285k0yq7ujhye nostr:nevent1qqs8w3ds968pe2jeazwt3ra5y6r3dlgxqgt0an7fd0zy7wm2lkgc2ucahcjqq nostr:nevent1qqs26szux5exxukg7ht579uytrcs72j2j9h2xf4dwvz044jpntsynagqv9sdz nostr:nevent1qqsrej9r6kazt3eda4hhu70tkax4j5ft9l3ve4apnh5u8p9ltj6allgmn68a7 nostr:nevent1qqsq64h92pdffc50xvmlwdfyms802x029qf5pe8fwlu9n4v4rg93t8gfa7kee nostr:nevent1qqs8hhmaww599xz682l2hx0uvn4sfluc6aa7lydk4nugxejqjeaqeugyg0glt nostr:nevent1qqs832edsy9yxhq765zfummutc0r54zc4xj7n9lcuwcf60c66q494zc7tlqgx nostr:nevent1qqs8etkcd8f2aw2s7efjdsj8w5ch8r8ej9capyx976w343ps9sm7s4g0l37gr nostr:nevent1qqsfwaetdhzn3z6fqs50usmktug5v4stcet3lus70p5hffjq8kcpuhqpu5ef4 nostr:nevent1qqswnvtzachtgqc9gwqvcu4s0mtmwxnl78v544p22u6cuud95s2jgmgaz5glx nostr:nevent1qqspmckx784xjj7mkn70tu6rfnyq0kmpcg4p8jr6dmlh98um8dcqnvgj8n426 nostr:nevent1qqsdxeatzq42tstmculgf62rhj84mpgfzsa54gjsh4hrl6e64jv3wfcvr8fec nostr:nevent1qqspcksa07zqnc0xf9h57mpvna4ke5fd5g8lw0v6wycf980lhh9fzes3k5t94 nostr:nevent1qqsy8kvy6s5spzhyfjvj6lzesj0ynnp5d30pqzuwe93d2t3xmrl77dcjz5sfg nostr:nevent1qqsyh342up3pkjfkvzr0yjaxtu4qg5syquz93xyd6fgatdwqxy8e7mgklaf0f nostr:nevent1qqsyp94g3puhpz0k9vaft8tvpqew024n3asxpklgnax6fdsu2mu4kcqkq7fqz nostr:nevent1qqsznp4zqx06tjmplxdr0q548f3kcn7pj4hvf4g4rgm74yk62c59lnswzsdn4 nostr:nevent1qqs29ffntcwt0t5zv7ecrzjgpd6v2r0nqwg9ymm5luhehgrzhlr4f4shqhwee nostr:nevent1qqsfrn6h3hjk4zrs6pamcdzapap0gvemrm2akxlur005chgh4vaps9sx4y5sl nostr:nevent1qqsql32xdfshaa73ex68fz8e4r6e0lhpcgsgdhczwfsq6e7lqqt703cuhue8l nostr:nevent1qqs952dv2ycq0a2tdvyj7st7sd87pxzh7hceth96hhhwjq7gs95m5ccdf764h nostr:nevent1qqs29kzdduhtv7v2gr40nhzkykls6pwmn9maspl2qs83gqkk23ql42cmxwq3n nostr:nevent1qqspwpz06fysr7xqyjfxg296e5d7hcycp3wkmladpe39tkwtmyyaprgycny5j nostr:nevent1qqswsj30jgpyt623gqpy5gk434xeff94cwqrpzpm2tdznhqlvs6dghcuxdx4l nostr:nevent1qqsvty7umlq35gydcj4n2tmzv334yuf5dnw9p662q22rzfq5yhwpk4gz7fnyp nostr:nevent1qqsppkpezwkyfezakg9se8uzvx8j6z33e7k3f4xrpad378m5jua5z4cms7k8m nostr:nevent1qqsykvscexq75xect594xvyp0yzlstagqa62kmpwr94wl7q0exg8h9cwfxcmz nostr:nevent1qqstfqwlc8rmrqrhdt7zdd082eehssdt4r66h3j3ns42cxvnzjegfrc7qr8wd nostr:nevent1qqs0prhhhyvtz3fwwsu93ndvc6ye32zp885eyg6rkxldc37f0jck2eqe3kqr2 nostr:nevent1qqsvr4nsccw9dehyettdc0tr4t3yycvldjxka6cte8uth5r6xz8vhxcat20d4 nostr:nevent1qqsfkxvh4h3ga60l3w3x5ngu777up09sxrqdjgkrnv3yzdhdn2ljsnsylcsge nostr:nevent1qqsfc83pkdtd4jph9r4hjyc4xqczdcem3ytkvp732zalqkl8jhxaq6c26cp54 nostr:nevent1qqszd2hpl8h2uljcgqe0r4zqrk9v0us4nwu5x03v02cx52hkgrlykjqehsv2d nostr:nevent1qqsdz3m0pc789hk8vv7ldhwnz2ydj93qatn5t6g995y9nqkylcfh8hsex7w94 nostr:nevent1qqsvpr85pg2gammm3fqzhw8lme342mplaau3zeeku0up372eps75cfssvpzkt nostr:nevent1qqsq8j9f0vg5an20rdxfpgylaslpf6nt33srglu9f2pthesfqhjgy4s8w3qmn nostr:nevent1qqsyxu3dg4fprxjc4rneslkgucnwx5h4sc7zvd0w0yydkv2hzymletcksa04g nostr:nevent1qqs08n09gvne3d46y8dhxhv68duzvlkwmg9mnv7467cz4x5utgu3rmc0dcuny nostr:nevent1qqs8tcakcm8dqnzef535ylh8j7m5n98s5qu2zydj9w8d2kfa5mgsv2ccpxcqw nostr:nevent1qqs2sm3kfej6t258k6su7krggu362slve3m9gayjyskgvwt0m49ahdsgdmjnm nostr:nevent1qqs8dvmywjutfgx5cw3r9h355dmfufsxwse495svdx79kq820g2u9fgap3umm nostr:nevent1qqsdqram3x44q994z4e93ufqqav5dwa2la28j4fmwqr5swympy5k8esk2py04 nostr:nevent1qqst0vhcp4sy6h7h6c3cfe957z9pj48ujvhw7yhmgjjmqe0d4u5x3hq45hqan nostr:nevent1qqs28z599avfsddedq8dwulzhyhqggs9wukc6jqdp60fp0kcruck7gg048zc5 nostr:nevent1qqsptwc7rfkt7lhkvwz0h2hrrwxj9v0kak9dqg0lph3pfsxq4mna8ac38gqdm nostr:nevent1qqs04rh8vcey9p78kjugs9xvlmyl5m6043n6turhg0d6xrnn745y5fcqkes8f nostr:nevent1qqs0j9h04kfesvcqeax0ynawe7g7j62jhdanmzp0eal57ayqhgn67qqvs8d6h nostr:nevent1qqsrg4gvrwhvj3np8hqyyl6nsz4twjnxdy3wtd99try3t5pkz07e3pc3sn26m nostr:nevent1qqsga3tc0kc02g726fwrwrjm2e5x7tl3vzmv80sd2as9ywht58gcztcgfcrad nostr:nevent1qqsr5srauwprlzlfl0gxnfkaya0rlqwusqnrnkjzmta03kqxx2xc25s5ctflc nostr:nevent1qqs0fjpmu9w0dgc4a808vvals2j23ny6lrp0u0dz89w5mn9749xsalqva29uj nostr:nevent1qqstrrhjlp5h0qetmyll3dzg95yj4rr0m7rzfvp4f0yla2f3g5uj7hcdkkep0 nostr:nevent1qqs9p5z3djta5r223lpdvjgrcc9y9vcm4lsvj69zqfuhrgw3zqeapccfk9dcw nostr:nevent1qqsfrz8sp6sk0u75zwfskwxqgk2t495ymf5fqtalwdptagrx85d0yhsnejvgv nostr:nevent1qqs9a6ujeew8mzmuh8tewk89cv53fahgwyl552hq2qd5zjp5dccc3uq34j4s4 nostr:nevent1qqs8rhur5klw8pfu32nrqh0cp8n6fwgppvpjzpf9q437csc48x5gmmsngq8hr nostr:nevent1qqspr3sgff05240mlyg9y0j7x45qck8x7edzfeqrdafc9l3jwl490wsm4ll68 nostr:nevent1qqs2vzfrp2082gm88uc34zh7pe5zqypgsxkhed4f2aluep2265955vsatghhe nostr:nevent1qqsfjfaz8932tlxz9gqppvmvk9jpqclp6ejg6cdk488xexp5l8jn44gslrmke nostr:nevent1qqs06kyqpy4y6p24p8rpjc728hzn5cu5yvg57nl393t3hzhs4zrhmdgx7s02z nostr:nevent1qqsw5ez3ew4jmeuvz5tg2whsggqfn4097du4jspawxpun375njduxxq4s79hy nostr:nevent1qqsxrrmedupcnyjkv9azw656c0h70x7allk6kv3wqcqq2enar97xc0qmfsdgd nostr:nevent1qqsf88gx3w544ukdxz6wsr70vnhx42ruf7mn6p93e57jqpff4ty3adcgsu5sq nostr:nevent1qqsg7tef7jx07yp4udwnr3mhk4zc9ckdymqsre2xcjcu8y3ejszk0yqes906u nostr:nevent1qqswmqh45286p5uw83kcy38e0qz65xycn06xlwwg48g99kn6mkmmh4sn4nudp nostr:nevent1qqsdgdmdrnk6mf4rcfnqanjtptkazlkry3dnv5wt49znt4xn2ycyvvq2hp8ke nostr:nevent1qqswyueph6kfgwacrdhttat5pnk732m7qcsqt59sptu3cux9hzjw3scte3kfv nostr:nevent1qqs9gw4n83hgclvurawkhpqwtfdqm257kgkzve9gf6gx6n8p0k46acclzglst nostr:nevent1qqsvf9heuqcsxw05uhmnu67884h73mhq27rcv46lhdjhvly9e5eq4lgsalqhu nostr:nevent1qqs0s3mu4k6wey5zjj7rrff26q7nxpt8r2d3qex5mww00dpfqdltpvq56r5nj nostr:nevent1qqsty4e39zsmsax4m5m06wmw3fe05tlkqujk05k9d0sdz053zguagtstnfgu0 nostr:nevent1qqs9rz3at95dava3wnp05wdp7f6s7kl0rzfzpmm04ahk7a38akspzdqw7slkq nostr:nevent1qqs0vwqx7edy8z7m6sr4tjqjscgqf2fmqynkqequq6cp2cw98te5ags908vau nostr:nevent1qqspf7ms32mqyzt46jss7e2eurk66p2j0kdjt4mxx840e4fnfmd0fpgpnanv3 nostr:nevent1qqsfjtqrw4wmzc926gzkmval7s99p0m36vkkag206y25r0yevaw5dqcvk53zu nostr:nevent1qqsdhhmptxgvjxv30r3zkg48kjangs9u9yyfncjs7j26y3xq04r0e6sgktj68 nostr:nevent1qqszzmmc2krvwn6auf9nvhr9uwau66kymjajwzlfukq7evfyee4ukecs0kgyy nostr:nevent1qqst6w7u8lhjzat6vdl5ys7m4dpr2dp07kqrw6qzflehkd2chhu3u6qlwvdha nostr:nevent1qqsgl48cu28690ns7endh3es2ydjv5wjeexv5gqhjmhmgj2alp352tgdzzss3 nostr:nevent1qqs2dzyjlj99mhxznnuvhlqrn9rma6ydatj63umwaxw7yzvlltafyqcv3f9mz nostr:nevent1qqsgu088v434nqvnnqrsltnuvhh68698gm5acgmne3k67lh48au8vtc6ys0jz nostr:nevent1qqsvvp5wg5mrnc4226c9ukl7kydyd4v0zgte24nff9l7qad4wx7xpqgc2x3h2 nostr:nevent1qqsfwqwgttstups774qu448437tn6wx9ffw7l5w5fu5ljs5s7efh0zq7csjfn nostr:nevent1qqs0n9gqdjrant7lx2vd77023kh9csr256apwv2f7lsucewuz0kzwzgtmxda2 nostr:nevent1qqsreqlk6ncm7j0zsy7ym2kthv0mc93vgjl5l5jkn3s083ztswsujfszcyhyw nostr:nevent1qqsznlsfkf7ptq4rnegqsd0uvz38mmtk2eeshkmw4y7z2klupzrmgqc2rhluu nostr:nevent1qqstfheaq9cfq96w8kyvwc4herjnt5ehru3zen2yjfh4muc8zx9kmtgehnpyc nostr:nevent1qqs8ac3g79el94kgudcce80h6j6u3nnwagh2rgh87fu0ffky09tx6ugsyxd7g nostr:nevent1qqs0vvczfx44sk9vx7f7fd0l5d8nu9jp9mgv8n0n4rx03ytsx9rh64cml8am0 nostr:nevent1qqsyrk88pql3s2ue85cuwr56pude6f7ay67ylymmtezxdl855tu0pfc2sdwre nostr:nevent1qqs06nhur8vlwf2evmjt2fujamcka38v5krpzfs0yh0n7lk25vtj03ct8nxy4 nostr:nevent1qqsdetdugy6me4l44svtrsy4nc6lsvy8fha9824lca5v9ejdfdasclqd9jf2t nostr:nevent1qqs22th6z0g63dswxjxfwnk92tmpzafec4p9j93cw99tvelervzj2ys3lrsgf nostr:nevent1qqswyktlpagzpjfmv7ldtgkpdzt93zt76s04sa96ngkl976wjpm3dagat2pny nostr:nevent1qqs9pv0457acvajt7ln7tlq39nhlt7tcn4u2l8pvmtjm0f3n3ueuvggxtjsq4 nostr:nevent1qqsztv6rh9s3mx3h237nywtz3z86w6ydsynyp9nzyu43qhuejx5kj5cmc4sv4 nostr:nevent1qqsdu6aqu9y06pw9uk5zah408f5whnuunc3eafmemh5pfeyh20gwc9gr2m00g nostr:nevent1qqsdctkdrz4d0vnendwrekj9uhfw4lkxfjny2gnyrmjvgn0huj3u2xc3aavvw nostr:nevent1qqsp477v4mk2d4qvpj4xt6ua43rj53eqs48qk6jh7lm4c300fq6nm2qxmqz68 nostr:nevent1qqsfgl3x0mv25ytjtr0p5vq2acm4hhnmuxynwxe9a0whvvylsff9ajg0r6du2 nostr:nevent1qqsyvy3qd2hg5tmatgzgzrw9nuqk7tnqtuzzvxhfj7cf9mn06nsq3psxv56se nostr:nevent1qqsgx7lwjaj65ey59m42lvquam85l0vxvx9fcky43nhff3fxy8t7a4su60nr7 nostr:nevent1qqsv6g20rdeq229sfanduu2c497gp9gttejyd9hcpalm4u2f6af3gjc8ynpjf nostr:nevent1qqsqqrmzka388vxuq3ly3urust3svxr7lewxjnhul6v2f9na0xwr3ncxu638f nostr:nevent1qqsxdx9heupdzvhepkq52j0655p94j5w5z72hsy9dcst8h9dgcnq82qwssgfj nostr:nevent1qqsrdvpmljkwdxf4m8jj3ju63w7f42cy869ukwhmgxk5u47vr9q4vsgg54903 nostr:nevent1qqswyy7rwkrfv0q98tdhv43sln0m6gt2yy585m5km70ylxds76g9shst6r9e8 nostr:nevent1qqsw2e5a6hn8hca8xe0aywrgrgd89800xy8680f7cmwc9vtnag47jwqxplvu0 nostr:nevent1qqsywxjm4ay8lcxqvrxqvfgfcfsck29w67uf6fpwas0u2vvm5e772dq6unz4j nostr:nevent1qqsxa9w7lyydy3kxwnnm0a8w2vzjt2px7xklegw2apyvr68wgeepq6qjvmm32 nostr:nevent1qqszt2x6zft0f39yxu2er5qhh7z09xh67kcas9cunwshx7pz3w2xlzg8w6yyx nostr:nevent1qqsvj9q04sw0hlwvfc9ul7yufjd8uy9v0zlhlplr36u9r9t37ffl3ggtx7ard nostr:nevent1qqsgwj2umphzxm82njqzqhm3ujhyept9wd5pvxyzl0u8yctvh4feugcl83uh6 nostr:nevent1qqs93wup3yx2l85rs427uzucujaym9xpkrq6frnhyl8cd9rl8atp6hsak3a3t nostr:nevent1qqs22gxegsg8jwqzptdu9v0m0z9a33tnr42asuujp880qegvakdfasqzzz8tn nostr:nevent1qqsvx3na0fj2k5z9n9jjmcfnxjscq4j58mhpk9yd5ga29z7tq5rayug2pd030 nostr:nevent1qqsgalz2tjnszu03qja9tqmh3fnfhmpmdav9khcwh9506wq9dx50s0gqxe550 nostr:nevent1qqstd0rl52dcjacw8v072e40kc54nyygv436fkja6k2npka0h4x8qhgg87n9y nostr:nevent1qqsyj0hhcgdj3s97zvdnlpwktru2e0f6g002674spyyektxqxky5mpsqym78u nostr:nevent1qqs8tyugskp6gyl89qeynpjp485vsfpltyqx0v5d6cvuacv773q9eqquleude nostr:nevent1qqst2u3y6w830ef6a3sp66gxceryenl3k36ch36mvl9e2d6jwfmgkwqkv4v3e nostr:nevent1qqsy8qhhxhh36xq4kaksyhxm2vy7vuyujrjdxu9m80mw889wx0va3eghz6xc6 nostr:nevent1qqsz7spxfkrzawcwge0hqt9l2q6kc5fc3s5h7pcwj8kqmdtgwsft56q32ezp9 nostr:nevent1qqsrtj4xvtx6tdjv4zmm6axugf29t8xrzp2nmdyh09rzfmaukzp79nckyr3p6 nostr:nevent1qqsrthfeuwsw8ty32lgk6jxqnt2mcr2g7sajze29tyztzys0lxavhkgn609w9 nostr:nevent1qqs8afxujdxjw2jcdjtfsmux72xufzwhhvtc6f44e4yawlcygu9mhvckpdr2f nostr:nevent1qqsfuz3xezyq9e3y99wz6u4z68e09ult0urcyk80rrd4w38jxrcp08gh2hp8f nostr:nevent1qqsrc9nth6vef28sylzxsp7a7ydzqq3slsuas2ydcm4chz76erzpy3qu52mes nostr:nevent1qqsvqr903utwyynxkqyt3nf4jd3gtk355t0rfj6vec6yfp5huqvu39g5tt923 nostr:nevent1qqsgs0alua2ftak3yjp2dkvaxtxk59q8jr6fl3z02z9dt5ecalgjsmqyvpnz8 nostr:nevent1qqsx7sg2tshm7fgku6y86krp2sfvk7evua8mzy86agqfrwphtf5zk9q0rszzc nostr:nevent1qqs95ztf6g0w0k88d8ts5zcc72sw2f0lc0anhcp0f590sxrya70vlas3p0fzr nostr:nevent1qqsq4fsrzz7r60qk7lhmpq9j3e38edee4uuuhqnlpgw90dmqyz3jkscwh3emm nostr:nevent1qqsgnsekfcu53ser5pdnrfpwghsjl57r69xdgjnrn0qxflrvwhv0yxcnw8yyu nostr:nevent1qqswwf3wnj082vrpdjzjd8th0lkes6rdvtzgx0wfftn9398hajvypqc7fvpxs nostr:nevent1qqsyjdhjarz0dmpzpqd0ywhmnyenhmmy28lwj8nkca9av3fxme3s4xsc459u8 nostr:nevent1qqsyqkuylp78memrx58atm4pjggfjpnqmv2z6u0unngpgm89xrp7wtg0qtdus nostr:nevent1qqsv9sdnzjpk98ezcldylxmp7cr5207uxq3em0qdq4mxlc9rw3uflzgsra6wt nostr:nevent1qqsqalxng8fyvyzm5x9rvmu8f6g2mc4fvl42s8qks3v23admjjva9rst7th07 nostr:nevent1qqs245rsx9q22ycamy0dcm6p8gmawzlwj8eq9lp6v0kw96ssdzs2zxswfywrz nostr:nevent1qqsxjvyqjmy9h42kz5pud7uhl87kj3ceagdv4pseyjgrst9aj4r45nqxpwv47 nostr:nevent1qqsr97gg0jm0f87dqvt5dq97jx32uj004lkvapvkqy59wspuytup8zq6skp4k nostr:nevent1qqsy7xuzq5dewwfwrvwannr6vvdxhkxg7njjhqd435nq2k4vcm2ecns4d0agk nostr:nevent1qqs9e5ztm2fhqzm0283u2mzkvgnuv94cvx2h8p0946ch75g03lwr7xsg8mqt7 nostr:nevent1qqs0fvyf9w00k7cfdr7r8hptptx5t7q9gchw40twx24l4e7jcuv605gq34ugz nostr:nevent1qqs9zswmvckn4tke053m9tvhurpf7pwuc3kq82evun9vmvczdz9r5ec95k43c nostr:nevent1qqsrxpxjylc2fjtvwjvt7grk5ae5mwtsp9frkemm2lygfhqurfnfqwcm9k48f nostr:nevent1qqsw6p2j9g9yq0lh3d794nt20flzms2nyvq2752ypfwj2rnlx5sw4tghd5rvx nostr:nevent1qqswrv27dzmtavpcz6d9aphrg8anarhv7jvzfw3twfu43j03qahuc7g3j7pu7 nostr:nevent1qqsvqjgqkw0nfj0yph2ahgfhutw28u5ntyv6s8sz7lxn4jyg6mtw99ga78gwz nostr:nevent1qqsgp93wmz9uyzmzwunh8zvaz8wndg36x04kryw565fwgs6glprlfjqxu537m nostr:nevent1qqszrqjw83xkxdwkp9k45e5fnulp7gjf9ct5zqwxuy8e0mdx2r9fsrcdyay6n nostr:nevent1qqsdyvrhkvdwz6m73sckckr4esauq09u9dhphskxa22kl408gkpmdmg4f85pz nostr:nevent1qqs9g7dhjwlnludgsnkutdf2mnuc4tvagn4jcg7z4uufr3h2w9jd5zsv777kv nostr:nevent1qqsgdwljd9dynp9zd6c2c5l6fyy0j8sh5c44tv55rn5l24lfcq0pz3q2r0hmw nostr:nevent1qqs2atfxw3lzqtawhksqdvzqx7qw3xgp30knlks6lp0rtzhhdczafdqugctck nostr:nevent1qqstr87at5uetk975gwa26evejf9uuhdja84uc602dq7u3ktgfculkc8z948c nostr:nevent1qqsw6kt9s9hqc0p6cd97gxgfdgntdc4kwsf06t8r5q8k7syllr5nffc3e2ved nostr:nevent1qqs2vvsyxxsf73g68nnfkpskyjrhd655852w9w39m4t9yfxk70t2amsqtvlc8 nostr:nevent1qqs9qha3elys5qneel0rlt0s5ch6y6hytt8umpp25knpfu5lm3kvs8snxet5m nostr:nevent1qqs2gkprq3kd4dqf7lzqhg9mgqa9dnagjgaresvgcv63syf0zma0jagdcykl0 nostr:nevent1qqsdn093lcfapk0ke2zqe0982yx66auxvnjklq0ytsxmv7txsn5l06q76jefa nostr:nevent1qqsx2yxa4y7u4trxgtkyvp4jfssdm3lfrtkk7cpkewnpuflq522mkccttn0m9 nostr:nevent1qqsfpphq39tphc0znfdvzty88fdejm4wjr5l0n7ksld3vff0kuhak2cas8yhv nostr:nevent1qqsfvzmk7cfanupzthrjh0t600z6szxj0mz40hrrm4rd7kwqqcehrec27k2qw nostr:nevent1qqsqamgz56h7lqg96p3a42mhr9f7rxjprpsaawz9n2uhgh8n7kaukvglw2xvy nostr:nevent1qqsqt3wp8htyhre4d9n22ldml7k9vs655h55n8758yeenwnc2c8yxmc4fn77d nostr:nevent1qqsrurt0gcz8jzlkyqahz288ex3mqwu8tyh0rcpwlrmu5jckhj3wg5sd6m3a8 nostr:nevent1qqsrsz2uyqvakvwpkne2aqhl3d9yjjyzz2wemsj6vv63rcvcylra6cge70xu7 nostr:nevent1qqs93dzpp2acdw7aq9nwtjg4ap6ytjrc6z99mz0x4l6gq2arpd4r8nq3vzw6u nostr:nevent1qqsvam60cggvxtgxdelm4ja6n8wkqjlsdvwau4yqpr67q85jrc8fmcs6tud72 nostr:nevent1qqsztc59n4p23tw3zwewzn88nz99pwal0fh37aw3gg3ymzlg8np5ghguh0r69 nostr:nevent1qqs9p8k384u2qmugnzusxnna2ge3wldg4rvs895zu5pq6l9df24h0ygrytc6v nostr:nevent1qqsvh2lfpxvp7x7cs9d8ttr9ra9m6xl5405lal7x6f2uf5xymlz6j9gqp4ut3 nostr:nevent1qqspndcrk2lxd86tvdy3yd5gqmytvr543pa2cpsgmjylprk33zcsk3crx34t7 nostr:nevent1qqspr3nmus3ch4zy8js73gvqxyz5p5ed8ch6rxl4ymqs2x9fql4ys8gn9x9qw nostr:nevent1qqspslhp7kzfgu0t8rgf0nhm0s4rgnj9rx329vuze8f62r0qmtpx8xcm0tprj nostr:nevent1qqsg3hk5mdre8ny2fpp5xwct7cary359ld8cx97f5h388epg9flwgeqfuzwzy nostr:nevent1qqs9d7dqsqfp2cv3mstn7fnwdsemtct44wan43uy4kkfchd49l65lxg5h2cjz nostr:nevent1qqszn7ycnfn9suns5xxam2207v70ast0w07yq9shwzv6e9cuvz2w0vq22kafd nostr:nevent1qqsdyfrj2n0mxtkgmdy562qdahj8vzrt8drjphvw4cfgp45qvwq06lgu8tzea nostr:nevent1qqs0tja3rdn95q3plklyvz2swkyj8wmfnf5sese5882mh40yj85mdkgcx9sdt nostr:nevent1qqsdfj4zf20wpg8ldkdt2pdnr0tjmjfgc0mz8e2t7l4kf7syrelxhnqnplcq8 nostr:nevent1qqsp9wva4ujkvzyl7ve05h95quq6shnvsgexkw6n588n8wym6tutujcrmdcp8 nostr:nevent1qqs2f6t7et6tag8qms6vkzwpw9tn3fvxqp86hh7dxrr4pxfeeunge6cgaykdg nostr:nevent1qqs0lnhgz0khlsjjq6404p2hug3pwvcqt6x2x6l7yfmfqwzxf364y2gawq8xh nostr:nevent1qqspj2ar7xc4zs3catcks73ppvs77sj59zfdd6vu0h99ukqdt7wf0cgpdcq7s nostr:nevent1qqsyytgaxazjm8gnj64g5l4hushyu9040r336xs4sl0s79jet77esyspcmfel nostr:nevent1qqsw0jdhk5sytywvpn4gzfy6ahrjsmarellyjwy6vm4t82l83x9h4zca63vzu nostr:nevent1qqsgs9q52e920wx0gsy29egqch5x6aey9mtt3jl8kv340uw7lmcgceg43ecjv nostr:nevent1qqsdj0awygazadajkysga3anet6s38vrxrvj55kvhyguvyagqxk2z3sjla65v nostr:nevent1qqsypmjgxeqt9rah3sfxraudpdfhfj0k0sut39n07e4xwtpw5fmju8qfdh234 nostr:nevent1qqspaqxwrg9trpcg4sp2gtjjw6jw6u2rj9yu8al2hscdfdv8ra60f2s5z56vf nostr:nevent1qqsdp3kg2f7ena80zkpw68uc8x4fatccul56jf5j87nhzaqk8mwgsccczcc57 nostr:nevent1qqs9p8wdx53y57ysg39jjgzt5gu67ntqq0u8zv7gsgp3v3xsxw6ta4ssvh6vp nostr:nevent1qqsppejxz438ummams5427fzzfg4lnuswfww6ha2yapf4kkl73mhm6sjtlans nostr:nevent1qqsfewzswnqzwkp76qp7rga0007v2er0s797eqcd2z8cee57u74xv0cn290jt nostr:nevent1qqsq9vjah3gtma3gz99y4m7ey6df8p34n8u572cmaqzwq95xl9xm72gwfrqg8 nostr:nevent1qqsw2qm4664k4f6633j57t7vrwxn9rht6x0sf2suaejjgttrgxm52ccvv9lrj nostr:nevent1qqsplx6sls8ga3eez376m6umwszjj6lmuardvzs72pyekgzyanf0c5s5d5q2r nostr:nevent1qqs8cast93yvaxl0zj20aakl6h4hz6wx8vr7sv4cy4sz20frpdj9ezslrvq4s nostr:nevent1qqswku45leeulqe574ustynud357jwneu3t02qatw0atr3zyclxzaqscxj0sj nostr:nevent1qqsfmsqlukjx47aumecfhq979c53mmyv99ftfgj2luz9h8fe54m9x7sg0jcy9 nostr:nevent1qqsyquj9cquhsmzescerqjyur4cct2eatd6yrp7cxlfjzr0502s7fccyggrwq nostr:nevent1qqsxxurfn8xd83nz52jw2z37cvc3pdnsxvtp6fn9wkzysezh600wl0qs3mdws nostr:nevent1qqsdalre0nscl5mcg8z5tj2rwc08qpjphzvdy56fqvshtuuuvaqgjtskgr03s nostr:nevent1qqszln2q627ef64djy5pn05jzuh8alnuurl4z67fagtehucfg24pkscrgnnth nostr:nevent1qqs0ztxssvt4kt7kuwyts6z4pm7k46undqpccfvn6r54snuzax66z8qw8fyvk nostr:nevent1qqsw8h3n6xc6f5tpqtcqud68tdczruae32hqwdenes34k5dup6kqxqgnwawsu nostr:nevent1qqswjh2qdz0dgmj3va747seu5eu9lnr49zt9kws4lx8lczw74x5gj0c70r6lg nostr:nevent1qqswvkdqtkxy627hvxue8jsam0m93scj7p6jjgqh0mn2r6m9u4pfq9g6q882j nostr:nevent1qqsd4uhh42gq9sj4vtwcr6cnkpwd9k3mzm0g8myakg9ynglfkxyvlqca64zcs nostr:nevent1qqs8wnayqec04sqvl6rt9kyylty09jng6g4ktv8h594x95vn352a43suhqvtu nostr:nevent1qqsfsguft8a77ttqff88emq8dfrvqs8v8lc8ka5d2pjt57wesq6tk8cz4a84y nostr:nevent1qqsf99szvuzldnvgg49dnvlttttd89xpkc9rhfn4wghsfwalrsplesqvw5tpd nostr:nevent1qqsv4vptazj68zgxvf8z5zy3ptz8vwfgkq99a65l2s7hslc5y8vafequjwp3t nostr:nevent1qqsqa5zjxcdu3t7qxlqnrgcgyvftwr8adns8eq6anevwalawpshjs2g48e9gl nostr:nevent1qqsx92uj3cg62w3fsnys7vepwvf9x347hdm3cgww4nvqetdc8h6y5aszzrs7z nostr:nevent1qqs97wu7kt8g3u9sp06rduksjh22uz28etjv7d9fqccfzh2rcajc5ssx6660y nostr:nevent1qqszrjy9qltpxrmqelm39s8f68p3mzq3mz6hy535kt576ryd4xj45rc6m42vz nostr:nevent1qqsz3tzzg2cp2qqu0wpcvg3lgdz7t5jalrl3z9vnhh4qxacx3mt370gma2eur nostr:nevent1qqs8ys6zj6ta8c9m4f47g04tyc4s0uk3rzlj8nzyvn88rqjsak8d3acd9m46w nostr:nevent1qqszc99x43vh4y6g6ufa6s4ffrppjgjmun27je898u90fdml6p2hz8g3dtnhp nostr:nevent1qqs8k903clgruktvagvadtf5huyx4leedd0w9shcrgwyg90y0g7tzmck89mzp nostr:nevent1qqsydxc8mzmsf0qyx8paweap69qaw8fgssz56xmg5q6grxqee2uz75gszqegy nostr:nevent1qqsdscwrfvt0fr0847qd2edna8lduuh7fk2g8jhktvr0r3gmrs7l4kgw08n9r nostr:nevent1qqsrf7tduyxx0h3ywed0pfjtnf7wxjde6xqzeu9qczwar50ptql64uc2cytg3 nostr:nevent1qqstnwlulgt689cwygappskjlexnt3ejzlh380w6gsx93e4mg2smt8gdrz8l9 nostr:nevent1qqsdmke8e87qvy54lz0u3twz36wsz02t8cp0qp5v5hepwd2nf4lfg3seyp84n nostr:nevent1qqszrr2k94yve0v5lxnm82x55vkwu3g36eqf8nya5cgxz9utwc7tlvccuu63k nostr:nevent1qqswgyad2qu6ltmnfasetun80hctvkx5npnwqamse33auvpm2tev5usvx5xd2 nostr:nevent1qqs9cxp7w8tjzed2aaxfscglmac4ddcqzmt667pv2qxck6zmfs7gmkcdxpzps nostr:nevent1qqsgdknwqqa6gkr0x403s6eh3xxjxqd0gy8hxp9mkxkuffaxqmffk9gya2fhh nostr:nevent1qqs0rq7r8s56jhnrysnkg4k99f0q96uphl7vjvjexaazufpzmjl2ldc8ppz5l nostr:nevent1qqsx24ratma6qgt65vj30k5vtcf8ls5l9swrxhe82t3f7xev92n2ckgxepk7g nostr:nevent1qqs06jpjgw56t0xuuu82td6sd8yjnpu9d78z4vvxc6q9gxq5axh0n6spryvch nostr:nevent1qqspa75xvvkw6zpavvrgp3mk30y6shjsg43v0yekk2nqf582xek3mvqr4vjw4 nostr:nevent1qqsvlz88ahc6uq7yqfuuus2vgk035ywa582amt3umaxq0a4hw7sdvzchnavfj nostr:nevent1qqs908tjsfvv9hwn64v800da3p2lkgwcwv695eksc6hhkavgqk6wleg3ue08p nostr:nevent1qqs97hyy2zm3lsah7r3d6u536xf5wn2w8afyqlz7zgqwmaqsn0flsnczp2q4f nostr:nevent1qqsg2hatn34sm5qpsxsykdk35nwrp68n5ggjlgac2qrhjxrzp6vgvlc8v8nuj nostr:nevent1qqsyu8evwrh0kagzjcpcfy8nhdvt5gdnf5q0pex7vukagnm3llzljycp4d3h0 nostr:nevent1qqsvj2hnvgme0zzf8p6u0ehlk27z5yn4zwlravn9ft3smgks77gnxnst533zf nostr:nevent1qqszhfx4aq8qllq3xd2cnyqyenwzu0gysqr9fdrwsx73zp5rv9uflegmeqz70 nostr:nevent1qqsqmga4dkcqkw8tzugg23p7qck622wlgxhhtfshppuzpt8a8xpneac9avf4s nostr:nevent1qqsp3tf4vamjezdpcc4d9jxjrqj6mpunehw4n0p0m6cwdzxy2rgllyqeves5g nostr:nevent1qqs8vnfc2uuvsce0c88kyz5qpn954zv5wqdksprq20c84x0m8axndlg3wc3v2 nostr:nevent1qqsgvctjju645q2yuleqmmt7ku4pwjrf0pjgher4um87k6t33h4yycg5ewtzj nostr:nevent1qqs0ud2vpw9mp59dq5pm9hyxhu6vye9z68k9syrhfjsdqed89zhureqycl52m nostr:nevent1qqszkwqymc8xhvn0afnw9j4ax3dts6e7rv5v9n5zhqmxuxgqmv09kns8rjn00 nostr:nevent1qqs8e6kcap8ae2es6t34053pfvpkeucpt34ve6hhrfgnvh7j2fa4u7qnxaaw0 nostr:nevent1qqsvjd08zysyj93ypsze3jraww4hjdqgr25kzee86c2mutz08rzjgac4k4ef0 nostr:nevent1qqsqqgqnayjy80wfa3qkws83a0ef2rxfnpdet5f33ph0csz3gcqap8gjjnyf8 nostr:nevent1qqsp5m8ar6rsuaah2s8mz8knsq7fm3vlqk60pkvs9xvgugxt99c46wq8va8vg nostr:nevent1qqszptmufg2y38v2cy6v57ptnf27mg7kvh5hmp8uhk9cjwl9m8zrnqc6vf5dx nostr:nevent1qqsg9jl952dq4qvzyfklverpt5aqkp6lmw04kzz6z3zz3n9qg5unt7qjchphg nostr:nevent1qqs9e8jgsv4kyulgz0r7x5z3mxuw2l5ya8las4tkf5z8sy97elvud8qq9s88n nostr:nevent1qqsw0w3f0jvx6pa203kqm8lmhaf2qq69tvnt0f7pedp8ksmtazmjunqzvz5d5 nostr:nevent1qqs25shxc9l6mcudx8su646etmfmx7ywv87dcewjxu87qax49lnkylglpk47n nostr:nevent1qqsfj00j5sk7fuxuxxt8wpf9d60vysfqk0mz53478tfvccx4s4ys7rc2l0uzj nostr:nevent1qqsfwdnw4qfc7j3hnhcrxdu7ecxvgpjmveftu9g29fxg4ra7k9vvehgd744hs nostr:nevent1qqsfqm6phetgyjr7f5zt67gq6k8dv2lgh7j4leax75wk0ry4wfral4sp9pv56 nostr:nevent1qqsrtl8wtsxcrmncwkjrshm3d7ys633zswz5y7r530ywlfpsjk8qtpsprkh4r nostr:nevent1qqs2mqqlpq3s5scaz9dsvn4vnqwzyyp8wtxe43k2pmlfvn9qk9ck8ksts3ll3 nostr:nevent1qqsyl7rhny5et457dm6l23z6hercuvv5hch7pm5xs4v2ekn44c27zaqjpx0r2 nostr:nevent1qqsp3yaj6hzzfd840kmvsct9nw7y94c7pdfw2cnkdgqwaswx2xr0wcqeusc5d nostr:nevent1qqs2ze6chukganrfwmnspce3nuu02zmh0r4nn3z5ed62xx8qtvdjfzsyzp75l nostr:nevent1qqs0kq8eevn32v0karl0naywzeqck2m9sqsync2p0z4phc2tdx2mf2cqer0ws nostr:nevent1qqs9h77g2c3t72q4l9n7e76me8488qkdxyjw2l95nztx36kzxd73tjq973dat nostr:nevent1qqszq5lza048954nq30pwfmqaapentajp7zjqmjtw8zvh0zunt662vsvuqzz5 nostr:nevent1qqsxwhlaqhtkhpsn209e0a7lla3upc0gyse4pyg9np44lc7vg0nuzhcjtljuf nostr:nevent1qqsg2a04k9r6mggptyxjjt9d5whjull77d3aw8xfel8e29eeje8ugzqd8frp4 nostr:nevent1qqs8sk0p79mn9cgcjgxhycyrtq0fxzxepvlnd706mfyrhyyj7jqyk5qhuqfpw nostr:nevent1qqsx9t68ffff4cnz2z36n52eezk6ayqefud340j5thdft7fjt2upd3q0vyzc7 nostr:nevent1qqsw6cn4w95ku93u9atcrduz6st8vuwf9zf4qjge3w6xkpa8lp6rzesufawc4 nostr:nevent1qqsv9yjmw4gq3xgxy4fq02rqk8gsqxk7wyh4uvhppezxrcp7utacdyq233x8j nostr:nevent1qqsrlgvn2uu0zueultxv7stkaalw7vdu2z2ukvttfdw5sj2y865g50gws5cds nostr:nevent1qqsgarz5ppp3mn4m77t2xzzjqq0tps5sjxuve3k2w0ylf55vd4a4uqsxvd9xj nostr:nevent1qqs95z85mhl75j27g5aqw8s3ntm5kasmlglsg3w3u2h6lncyrg0rvkqc5zgjf nostr:nevent1qqspdzkrtk8h8h67egltafs7s32j9vvzxcpycm8dd689e572atr8xfg30a8ce nostr:nevent1qqsq2kd7c2flkrwqz4344gpwx4al4ekrr9wxe3kt7rjz7amcutnzcpsej2atv nostr:nevent1qqsfhz5rx22f5m3x60dpe08fjjpu7mrkeqpq0z2jjn54yh3uzdw257gpws5nq nostr:nevent1qqszc7l3tp70y0ml3zvppuyj2kvs07knxq6d8je3saemv2pgthc2hgczy6pw9 nostr:nevent1qqsta6ec23jz9jpxg8cfy0ae84xcqrcka6u7vsknjfwsq7ec9cx2k2gyfmgup nostr:nevent1qqsyad6h6dpykmhehuaseh2cu53reqf4q5ff7g0k494jvqwjua2dmesxdjwtq nostr:nevent1qqs0g5nm4jajj9rfzd42cueqhakyevs0zg3zsmnv2y6va6dqfnzx79cds0u6e nostr:nevent1qqs8kzvkgq7judfywvt6vaekwn9azslavl75xe40t8wnzhtar24p3kcndx7ld nostr:nevent1qqs24ynaypvt745e0nmdux5cjt57fxs9wtda3p7nnn5jslmxv9g9q4g2zt603 nostr:nevent1qqsp2nujt5m6ypp5cn4yauz58stjn4m3jguecklw7hgyjdg73zc4ddsdz32p3 nostr:nevent1qqsx9sqkyv5afv03mdc2w0ay3t0u872nme3c6ryvs48r5hd7gjg6raq9qa7sq nostr:nevent1qqsv0jsyde7lndup8czlzft8dw9mg06w3evmhtz4ezj2zteepzxacwgdsv7jw nostr:nevent1qqsdu644w6mrn3u468vzuhprckkc8xjqznev2h602ft74c76vx2350cgrqv3a nostr:nevent1qqsg6v7z35vjrfrqkly6fewjjk0yxd5rwdepp28t9ghnt3s9kpdynhce8w5t9 nostr:nevent1qqs9l446svwqwr5h54ygrceqvf20guta566ezwkneu2hx49ha5vdalcjevmxl nostr:nevent1qqsfurxh37ap65w8c87ju4pr4jr9245drjf3ua4l7hc29429cse7e5cw46m4c nostr:nevent1qqs2q76mjpqq8p9kz86869gs65ccrjye2uml887tdau9znqg43k7phg0mzlx2 nostr:nevent1qqsdq24a356ep48la4yt74tcyt5as37ux0ejxfzpthzd5y85ws0n4xqars3lu
-
@ 726a1e26:861a1c11
2024-07-08 18:01:28 -
@ 82b30d30:40c6c003
2025-03-17 15:26:29[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
-
@ ee74c5c7:8aa2898a
2024-07-05 18:26:19Test!
-
@ 06639a38:655f8f71
2025-03-17 14:59:40https://ccns.nostrver.se is a (Drupal powered) website that I started to build in January 2024 (source on Github and Gitlab). It's a fork of an earlier (abandoned) project https://cchs.social/.
Currently CCNS is a link aggregration website and for now it's only my who is using it to save and share Nostr related links. When you post a new link, you have the option to cross-post it as a Nostr note (example here).Kind 39700
Last month Jurjen and Abir have started to work on a social bookmark client built with Nostr (inspired by Del.icio.us from the past). Earlier this month they changed to event kind 39700 for broadcasting the Nostr event with the bookmark / link data accross the network. They did this because Sep already created a social bookmark like client called Pinja when fiatjaf raised this idea.
With these developments to me it was very obvious to integrate the feature that new created CCNS links are now also published as kind 39700 events to the Nostr network. This means that links are now also distributed on multiple relays as kind 39700 events and are accessible in multiple clients (Yumyume and Pinja).
Here you can see the same data, from left to right:
Structure
The current data structure for the 39700 kind looks as follow:
- "id": "event_id"
- "pubkey": "pubkey author"
- "created_at": unix_timestamp
- "kind": 39700
- "tags":
- "description", "description text here"
- "d", "unique-slug-value"
- "t", "hashtag"
- "content": "https://book_mark_url"
- "sig": "signature"
As there is no NIP (yet) for this event kind, I see some possible improvements:
- Use the bookmark URL as
d
tag so it can be used as a unique identifier for every client - Use the content field for the description
- Use the
a
tag for an addressable event following NIP-01:["a", "39700:pubkey_of_author:", recommended_relay_url_optional]
On short-term I don't have any plans to developer CCNS further, as most of my attention goes to the development of the Nostr-PHP library and Drupal related contribs using that library. That said, CCNS is a Drupal project but all the Nostr stuff is done client-side (Javascript) with NDK and Nostr-PHP is not used (maybe this will change in the future).
-
@ 683211bd:bd3b715e
2024-06-20 14:23:16Does this work?
-
@ 2cb8ae56:84d30cba
2025-03-06 07:40:38どうも、Nostrまとめ(2024)ぶりですね。
記事として出すのはかなりお久しぶりかも、お名前変わりまして「フェゼレント」でございます。 意味としては以下の通りです
1.Fezer(フェザー)という英単語 2.ent(エント)という造語 2-1. netを崩した形、よくこれに打ち間違えます。 2-2. Entertainment(エンターテイメント)の略語、なんか娯楽とか話題を生み出せる人になりたいですね。
1と2をガッタイ!!!(トムブラウン風)しまして、フェゼレントです。
なんとググってみますと、Fezerent及びフェゼレントの検索結果が0。 これは...一種のチャンスでは!?と思って、使っています。
さて、そこで出てくるのが「薄味のキャルピス」と「IVstrook」の今後ですよね。 後者に至っては3年分の料金を払ってドメインまで取っているわけですし、前者はかなりネットとかラジオでも浸透しています。
というわけで、こんな風に置き換えます。
Nostr、YT、Discordはフェゼレント及びFezerentを使用します。 それ以外(ラジオを含む)では薄味のキャルピス、IVstrookを使用します。 そして、NHKなどAM波を使用して放送を行っているラジオ局用で使用していた「テックジャンカー」ですが、使用を停止します。 あんま浸透しなかったわけですからね
そんな感じでやっていきます 最後に、記事最後に使用する署名のような奴ですが、そちらは変更なく「IVstrook」単体で行います。
また、ニコニコ動画及び各種ポッドキャストサービスにて配信しておりました「Small Room Space」ですが、今後はzap.streamというNostrのシステムを使用したサービスを用い、番組名の変更は行わないものとします。 zap.streamでの配信開始は「4月7日」 ちょうど#1が公開されてから1年が経過した日です
重ねて、当名義を使用したニコニコ動画への投稿は「3月8日」をもって終了とし、zap.streamへ移行します。
以上、今年に入ってからまともにニコニコ動画で投稿できていませんでしたが、そのような運びとさせていただきます。
2025/03/06 IVstrook
-
@ ec42c765:328c0600
2025-02-05 23:45:09test
test
-
@ 88cc134b:5ae99079
2024-06-19 08:28:45lets try this out nostr:note14vqza005ngr0nk2ft8v4t3qejezqxvulmerna0g5gvs4wjsstqgsmeupgy and nostr:note1gehzcmj6tyzzk3renzvcshkazys8g9q7f8x9p70zatgx7salcsjqax60pz or nostr:note16c3k4ygg39kv77yzeefvmrzngekjcyqcul59ry8jsvg250w4k42qk9d4dw or nostr:note1cxyk4l049r32v24sls2m3cpjpm6c7yrg2d36n34j64ym0ygz73rqzplrn7 and some users nostr:npub13rxpxjc6vh65aay2eswlxejsv0f7530sf64c4arydetpckhfjpustsjeaf and nostr:npub13rxpxjc6vh65aay2eswlxejsv0f7530sf64c4arydetpckhfjpustsjeaf
-
@ ec42c765:328c0600
2025-02-05 23:43:35test
-
@ ec42c765:328c0600
2025-02-05 23:38:12カスタム絵文字とは
任意のオリジナル画像を絵文字のように文中に挿入できる機能です。
また、リアクション(Twitterの いいね のような機能)にもカスタム絵文字を使えます。
カスタム絵文字の対応状況(2025/02/06)
カスタム絵文字を使うためにはカスタム絵文字に対応したクライアントを使う必要があります。
※表は一例です。クライアントは他にもたくさんあります。
使っているクライアントが対応していない場合は、クライアントを変更する、対応するまで待つ、開発者に要望を送る(または自分で実装する)などしましょう。
対応クライアント
ここではnostterを使って説明していきます。
準備
カスタム絵文字を使うための準備です。
- Nostrエクステンション(NIP-07)を導入する
- 使いたいカスタム絵文字をリストに登録する
Nostrエクステンション(NIP-07)を導入する
Nostrエクステンションは使いたいカスタム絵文字を登録する時に必要になります。
また、環境(パソコン、iPhone、androidなど)によって導入方法が違います。
Nostrエクステンションを導入する端末は、実際にNostrを閲覧する端末と違っても構いません(リスト登録はPC、Nostr閲覧はiPhoneなど)。
Nostrエクステンション(NIP-07)の導入方法は以下のページを参照してください。
ログイン拡張機能 (NIP-07)を使ってみよう | Welcome to Nostr! ~ Nostrをはじめよう! ~
少し面倒ですが、これを導入しておくとNostr上の様々な場面で役立つのでより快適になります。
使いたいカスタム絵文字をリストに登録する
以下のサイトで行います。
右上のGet startedからNostrエクステンションでログインしてください。
例として以下のカスタム絵文字を導入してみます。
実際より絵文字が少なく表示されることがありますが、古い状態のデータを取得してしまっているためです。その場合はブラウザの更新ボタンを押してください。
- 右側のOptionsからBookmarkを選択
これでカスタム絵文字を使用するためのリストに登録できます。
カスタム絵文字を使用する
例としてブラウザから使えるクライアント nostter から使用してみます。
nostterにNostrエクステンションでログイン、もしくは秘密鍵を入れてログインしてください。
文章中に使用
- 投稿ボタンを押して投稿ウィンドウを表示
- 顔😀のボタンを押し、絵文字ウィンドウを表示
- *タブを押し、カスタム絵文字一覧を表示
- カスタム絵文字を選択
- : 記号に挟まれたアルファベットのショートコードとして挿入される
この状態で投稿するとカスタム絵文字として表示されます。
カスタム絵文字対応クライアントを使っている他ユーザーにもカスタム絵文字として表示されます。
対応していないクライアントの場合、ショートコードのまま表示されます。
ショートコードを直接入力することでカスタム絵文字の候補が表示されるのでそこから選択することもできます。
リアクションに使用
- 任意の投稿の顔😀のボタンを押し、絵文字ウィンドウを表示
- *タブを押し、カスタム絵文字一覧を表示
- カスタム絵文字を選択
カスタム絵文字リアクションを送ることができます。
カスタム絵文字を探す
先述したemojitoからカスタム絵文字を探せます。
例えば任意のユーザーのページ emojito ロクヨウ から探したり、 emojito Browse all からnostr全体で最近作成、更新された絵文字を見たりできます。
また、以下のリンクは日本語圏ユーザーが作ったカスタム絵文字を集めたリストです(2025/02/06)
※漏れがあるかもしれません
各絵文字セットにあるOpen in emojitoのリンクからemojitoに飛び、使用リストに追加できます。
以上です。
次:Nostrのカスタム絵文字の作り方
Yakihonneリンク Nostrのカスタム絵文字の作り方
Nostrリンク nostr:naddr1qqxnzdesxuunzv358ycrgveeqgswcsk8v4qck0deepdtluag3a9rh0jh2d0wh0w9g53qg8a9x2xqvqqrqsqqqa28r5psx3
仕様
-
@ 256a7941:b828ba8d
2024-06-15 16:41:38FREEING HUMAN ENERGY AND CAPITAL