https://area31.net.br/wiki/api.php?action=feedcontributions&user=Coffnix&feedformat=atomÁrea31 Hackerspace - Contribuições do usuário [pt-br]2024-03-29T11:05:09ZContribuições do usuárioMediaWiki 1.41.0https://area31.net.br/wiki/index.php?title=MediaWiki:Sidebar&diff=5197MediaWiki:Sidebar2024-03-22T20:14:59Z<p>Coffnix: </p>
<hr />
<div>* Sobre o Área31<br />
** BLOG|Blog Oficial<br />
** Eventos|Eventos<br />
** Fale Conosco|Fale Conosco<br />
** Fornecedores|Fornecedores<br />
** Logos e temas|Logos e temas<br />
** Categoria:Membros Fundadores|Membros Fundadores<br />
** Categoria:Membros Honorários|Membros Honorários<br />
** Categoria:Membros|Membros<br />
** Parceiros|Parceiros<br />
** Área31 na Mídia|Reportagens e entrevistas para a imprensa<br />
** Repositório|Repositório GIT oficial<br />
** Revistas e Zines|Revistas e Zines<br />
* Armamentos<br />
** Como_se_tornar_um_CAC_para_obter_armas_de_fogo_legalmente_no_Brasil|Como se tornar um CAC para obter armas de fogo legalmente no Brasil<br />
** Solicitação_de_compra_de_armamentos_para_CAC|Solicitação de compra de armamentos para CAC<br />
** Como_adquirir_um_fuzil_legalmente_no_Brasil_sendo_CAC|Como adquirir um fuzil legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_espingarda_legalmente_no_Brasil_sendo_CAC|Como adquirir uma espingarda legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_pistola_legalmente_no_Brasil_sendo_CAC|Como adquirir uma pistola legalmente no Brasil sendo CAC<br />
** Como_comprar_munições_sendo_CAC|Como comprar munições sendo CAC<br />
** Vídeos_educativos_sobre_armas_de_fogo|Vídeos educativos sobre armas de fogo<br />
** Canais_de_armamentistas_recomendados_no_youtube|Canais de armamentistas recomendados no youtube<br />
** Orientações_e_fundamentações_legais_para_o_CAC_levar_consigo_em_auxílio_à_autoridade_policial|Orientações e fundamentações legais para o CAC levar consigo em auxílio à autoridade policial<br />
** (I)legalidade_da_prisão_do_atirador,_colecionador_ou_caçador_(CAC)|(I)legalidade da prisão do atirador, colecionador ou caçador (CAC)<br />
** Como_o_racismo_pautou_as_restrições_de_armas_nos_Estados_Unidos|Como o racismo pautou as restrições de armas nos Estados Unidos<br />
* Crypto Docs<br />
** O que é um Cypherpunk|O que é um Cypherpunk<br />
** Manifesto Criptoanarquista|Manifesto Criptoanarquista<br />
** Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks|Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks<br />
** Quem é Ralph Merkle|Quem é Ralph Merkle<br />
** Quem é David Chaum|Quem é David Chaum<br />
** Quem é Charlie Lee|Quem é Charlie Lee<br />
** Quem é W Scott Stornetta|Quem é W Scott Stornetta<br />
** Quem é Wladimir Van Der Laan|Quem é Wladimir Van Der Laan<br />
** Quem é o Zooko Wilcox|Quem é o Zooko Wilcox<br />
** Quem é Timothy May|Quem é Timothy May<br />
** Quem é Martin Hellman|Quem é Martin Hellman<br />
** Quem é Luke Dashjr|Quem é Luke Dashjr<br />
** Quem é Nick Szabo|Quem é Nick Szabo<br />
** Quem é Satoshi Nakamoto|Quem é Satoshi Nakamoto<br />
** O que é criptografia|O que é criptografia<br />
** O que é criptografia assimétrica|O que é criptografia assimétrica<br />
** O que é um hash|O que é um hash<br />
** O que é HashCash|O que é HashCash<br />
** Qual é o algoritmo de assinatura ECDSA|Qual é o algoritmo de assinatura ECDSA<br />
** O que é Cryptojacking|O que é Cryptojacking<br />
** O que é um Replay Attack|O que é um Replay Attack<br />
** O que é um ataque Sybil|O que é um ataque Sybil<br />
** Len Sassaman e Satoshi: uma história Cypherpunk|Len Sassaman e Satoshi: uma história Cypherpunk<br />
* Blockchain Docs<br />
** O que é um razão distribuído (razão)|O que é um razão distribuído (razão)<br />
**O que é a Cadeia de Blocos (Blockchain)|O que é a Cadeia de Blocos (Blockchain)<br />
** Como funciona a Blockchain- Cadeia de Blocos|Como funciona a Blockchain- Cadeia de Blocos<br />
** Qual é a altura do bloco|Qual é a altura do bloco<br />
** Qual é a recompensa em bloco|Qual é a recompensa em bloco<br />
** O que é o Bloco de Gênesis|O que é o Bloco de Gênesis<br />
** O que é uma árvore Merkle|O que é uma árvore Merkle<br />
** O que é uma falha bizantina|O que é uma falha bizantina<br />
** O que é tolerância a falhas bizantinas (BFT)|O que é tolerância a falhas bizantinas (BFT)<br />
** Glossário de contratos inteligentes de Nick Szabo|Glossário de contratos inteligentes de Nick Szabo<br />
* Bitcoin Docs<br />
** Raízes e motivos da criação do Bitcoin|Raízes e motivos da criação do Bitcoin<br />
** O que é uma criptomoeda|O que é uma criptomoeda<br />
** Qual é o consenso em criptomoedas|Qual é o consenso em criptomoedas<br />
** O que é Bitcoin e como funciona|O que é Bitcoin e como funciona<br />
** O que é uma unidade de conta em Bitcoin|O que é uma unidade de conta em Bitcoin<br />
** Quantos bitcoins realmente existem|Quantos bitcoins realmente existem<br />
** O que é Bitcoin Core|O que é Bitcoin Core<br />
** Bitcoin Core Wallet, tudo o que você precisa saber|Bitcoin Core Wallet, tudo o que você precisa saber<br />
** O que é mempool no Bitcoin|O que é mempool no Bitcoin<br />
** O que é uma transação com base em moeda|O que é uma transação com base em moeda<br />
** Transações Bitcoin, como funcionam|Transações Bitcoin, como funcionam<br />
** O que é uma transação de poeira|O que é uma transação de poeira<br />
** O que é mineração de criptomoeda|O que é mineração de criptomoeda<br />
** O que são os mineradores ASIC|O que são os mineradores ASIC<br />
** Mineração de bitcoins, o que é e como funciona|Mineração de bitcoins, o que é e como funciona<br />
** Mineração de Bitcoin Como você cria um bloco|Mineração de Bitcoin Como você cria um bloco<br />
** Qual é a dificuldade de mineração em Bitcoin|Qual é a dificuldade de mineração em Bitcoin<br />
** O que é uma pool de mineração de criptomoedas|O que é uma pool de mineração de criptomoedas<br />
** O que é Crypto Wars e como você definiu o mundo criptográfico|O que é Crypto Wars e como você definiu o mundo criptográfico<br />
** Satoshi Nakamoto criou a Monero|Satoshi Nakamoto criou a Monero<br />
* Crypto Projects<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** Armazene seus bitcoins de forma segura em uma carteira local|Armazene seus bitcoins de forma segura em uma carteira local<br />
** Aprenda_a_minerar_criptomoedas_via_CPU_e_GPU_no_Linux|Aprenda a minerar criptomoedas via CPU e GPU no Linux<br />
** Atomic Swap - Bitcoin (BTC) vs Monero (XMR)|Atomic Swap - Bitcoin (BTC) vs Monero (XMR)<br />
** Bots_recomendados_para_cryptos|Bots de redes sociais recomendados para cryptos<br />
** Crie seu próprio robô para trade automático de crypto moedas|Crie seu próprio robô para trade automático de crypto moedas<br />
* Hacking Projects<br />
** Configure seu próprio proxy sock5 via openvpn|Proxy sock5 via openvpn<br />
** Biohacking|Biohacking<br />
** DFSS USBkiller|DFSS USBkiller<br />
** Hackaratê Coding Dojo|Hackaratê Coding Dojo<br />
** Hacking Apple TV|Hacking Apple TV<br />
** LiveCD_oficial|LiveCD oficial<br />
** NN-CFA|NN-CFA (Nothing New Crypto for All)<br />
** ONION PI - REV BR|OnionPi Rev BR<br />
** Redes_DTN|Redes DTN<br />
** Router RTA04N Backdoor|Router RTA04N Backdoor<br />
** Storage_criptografado_em_roteador_residencial|Storage criptografado em roteador residencial<br />
* Maker Projects<br />
** Categoria:Impressoras_3D|Impressora 3D<br />
** Linux on the BeagleBone|Linux on the BeagleBone<br />
** Linux on the Cubieboard A20|Linux on the Cubieboard A20<br />
** Linux on the Raspberry pi|Linux on the Raspberry Pi<br />
** Raspberry Pi Lapdock - Raspdock|Raspberry Pi Lapdock<br />
** MSP430_-_Texas_Instrument|MSP430 - Texas Instrument<br />
** FabScan - Scanner 3D|Scanner 3D<br />
* Artigos<br />
** Bio + Hacking = Ética Hacker aplicada a biologia|Bio + Hacking = Ética Hacker aplicada a biologia<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** HackForge|HackForge - Boas práticas de defesa (Linux)<br />
** Como_fazer_perguntas_inteligentes|Como fazer perguntas inteligentes<br />
** Funtoo_Linux_vs_Gentoo_Linux_-_Diferenças_técnicas,_estruturais_e_filosóficas|Funtoo Linux vs Gentoo Linux - Diferenças técnicas, estruturais e filosóficas<br />
** Hacktivismo|Hacktivismo<br />
** Heartbleed para não técnicos|Heartbleed para não técnicos<br />
** Manifesto_Hacker|Manifesto Hacker<br />
** O_COMPUTADOR_e_a_constituição_Algocrata|O computador e a constituição Algocrata<br />
** The_Extinction_of_Hackers|The Extinction of Hackers<br />
** Money for Nothing - The recent hullabaloo over NFTs|Money for Nothing - The recent hullabaloo over NFTs<br />
** Rootfs_criptografado_com_LUKS_usando_LVM| Rootfs criptografado com LUKS usando LVM (Linux)<br />
** Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|Desbloqueio de LUKS com um dispositivo USB no Boot<br />
** ZFS_com_DKMS_no_OpenSUSE|ZFS com DKMS no OpenSUSE<br />
** ZFS_on_LUKS|ZFS on LUKS<br />
** Proteja_seu_acesso_SSH_com_chave_ED25519_e_Yubikey_via_FIDO2|Proteja seu acesso SSH com chave ED25519 e Yubikey via FIDO2<br />
* IA<br />
** Faça_seu_próprio_GPT_offline_e_privado|Faça seu próprio GPT offline e privado<br />
* Ajuda<br />
** Como_escrever_artigos_na_wiki|Como escrever artigos na wiki<br />
** Special:Upload|Faça Upload de imagens<br />
** Especial:Categorias|Ver todas as categorias<br />
** Especial:Todas_as_páginas|Ver todos os artigos<br />
** recentchanges-url|Ver mudanças recentes<br />
** randompage-url|Ver páginas aleatórias<br />
* navigation<br />
** Categoria:Humor|Humor<br />
* SEARCH<br />
* TOOLBOX</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Proteja_seu_acesso_SSH_com_chave_ED25519_e_Yubikey_via_FIDO2&diff=5196Proteja seu acesso SSH com chave ED25519 e Yubikey via FIDO22024-03-22T20:03:15Z<p>Coffnix: Criou página com 'Membro do hackerspace feliz por ter seu acesso SSH protegidinho com chave ED25519 usando Yubikey (FIDO2). Autor: * Coffnix '''"Network Defense"''' __TOC__ = Motivo = Se você já usa chave SSH para se conectar a servidores, está na hora de proteger essa chave com FIDO2. É possível proteger uma chave SSH utilizando um yubikey. O app Termius criou essa feature: Image:Captura_de_Tela_2024-03...'</p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu acesso SSH protegidinho com chave ED25519 usando Yubikey (FIDO2).]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
'''"Network Defense"'''<br />
<br />
__TOC__<br />
<br />
<br />
= Motivo =<br />
Se você já usa chave SSH para se conectar a servidores, está na hora de proteger essa chave com FIDO2.<br />
É possível proteger uma chave SSH utilizando um yubikey. O app Termius criou essa feature:<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_16.08.56.png|600px]]<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos Termius para MacOS com Yubikey 5C NFC.<br />
<br />
[[Image:28db99dd-7a90-40f9-8062-a11a9b5fbe78.jpg|400px]]<br />
<br />
<br />
= Procedimento =<br />
== passo 1: Crie a chave SSH protegida ==<br />
<br />
===Instale o termius e configure sua chave FIDO2 com seu yubikey via NFC ou USB===<br />
<br />
[[Image:E3debb83-ccce-4399-bfdf-549b97765274.jpg|800px]]<br />
<br />
===Exporte essa nova chave SSH ed25519 para o servidor desejado===<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.07.37.png|800px]]<br />
<br />
===Selecione o host e clique no botão export and attach===<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.10.00.png|400px]]<br />
<br />
====Digite a senha e clique no botão continue & save====<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.10.06.png|400px]]<br />
<br />
<br />
==passo 2: Conecte no servidor e digite o pin do yubikey==<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.14.35.png|500px]]<br />
<br />
<br />
==passo 3: Encoste fisicamente o dedo na chave yubikey==<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.14.41.png|500px]]<br />
<br />
<br />
==passo 4: Seja feliz, vc tá logado==<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.14.52.png|500px]]<br />
<br />
[[Image:Captura_de_Tela_2024-03-22_às_15.15.10.png|900px]]<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:28db99dd-7a90-40f9-8062-a11a9b5fbe78.jpg&diff=5195Arquivo:28db99dd-7a90-40f9-8062-a11a9b5fbe78.jpg2024-03-22T19:56:53Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.15.10.png&diff=5194Arquivo:Captura de Tela 2024-03-22 às 15.15.10.png2024-03-22T19:12:53Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.14.52.png&diff=5193Arquivo:Captura de Tela 2024-03-22 às 15.14.52.png2024-03-22T19:12:39Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.14.41.png&diff=5192Arquivo:Captura de Tela 2024-03-22 às 15.14.41.png2024-03-22T19:12:12Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.14.35.png&diff=5191Arquivo:Captura de Tela 2024-03-22 às 15.14.35.png2024-03-22T19:11:41Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.10.06.png&diff=5190Arquivo:Captura de Tela 2024-03-22 às 15.10.06.png2024-03-22T19:11:03Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.10.00.png&diff=5189Arquivo:Captura de Tela 2024-03-22 às 15.10.00.png2024-03-22T19:10:43Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_15.07.37.png&diff=5188Arquivo:Captura de Tela 2024-03-22 às 15.07.37.png2024-03-22T19:09:38Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:E3debb83-ccce-4399-bfdf-549b97765274.jpg&diff=5187Arquivo:E3debb83-ccce-4399-bfdf-549b97765274.jpg2024-03-22T19:09:01Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Captura_de_Tela_2024-03-22_%C3%A0s_16.08.56.png&diff=5186Arquivo:Captura de Tela 2024-03-22 às 16.08.56.png2024-03-22T19:06:07Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Revistas_e_Zines&diff=5185Revistas e Zines2024-02-28T23:54:11Z<p>Coffnix: </p>
<hr />
<div>= Revista H2HC =<br />
{| class="wikitable" id="h2hcmagazine"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| H2HC ED 1<br />
| https://heyzine.com/flip-book/3ed1a7dd6c.html<br />
|-<br />
| H2HC ED 2<br />
| https://heyzine.com/flip-book/990b2dde3a.html<br />
|-<br />
| H2HC ED 3<br />
| https://heyzine.com/flip-book/f90895ed11.html<br />
|-<br />
| H2HC ED 4<br />
| https://heyzine.com/flip-book/d42b788dd4.html<br />
|-<br />
| H2HC ED 5<br />
| https://heyzine.com/flip-book/3bd678616e.html<br />
|-<br />
| H2HC ED 6<br />
| https://heyzine.com/flip-book/21f2e0913c.html<br />
|-<br />
| H2HC ED 7<br />
| https://heyzine.com/flip-book/2c4de0a028.html<br />
|-<br />
| H2HC ED 8<br />
| https://heyzine.com/flip-book/1f1efcfb53.html<br />
|-<br />
| H2HC ED 9<br />
| https://heyzine.com/flip-book/f061052e3f.html<br />
|-<br />
| H2HC ED 10<br />
| https://heyzine.com/flip-book/733c9bad6a.html<br />
|-<br />
| H2HC ED 11<br />
| https://heyzine.com/flip-book/d3bd98f640.html<br />
|-<br />
| H2HC ED 12<br />
| https://heyzine.com/flip-book/db10b98595.html<br />
|-<br />
| H2HC ED 13<br />
| https://heyzine.com/flip-book/d61eaa35c6.html<br />
|-<br />
| H2HC ED 14<br />
| https://heyzine.com/flip-book/2f8984c77b.html<br />
|-<br />
| H2HC ED 15<br />
| https://heyzine.com/flip-book/ec1d363b5e.html<br />
|-<br />
| H2HC ED 16<br />
| https://heyzine.com/flip-book/278b8ec88f.html<br />
|-<br />
| H2HC ED 17<br />
| https://heyzine.com/flip-book/698bae4256.html<br />
|}<br />
<br />
<br />
= Outras revistas =<br />
<br />
{| class="wikitable" id="listaderevistas"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Enigma<br />
| Nacional<br />
| http://www.enigmajournal.org<br />
|-<br />
| Security and Privacy<br />
| Gringa<br />
| http://www.computer.org/portal/web/computingnow/securityandprivacy<br />
|-<br />
| Hack in the Box (hitb)<br />
| Gringa<br />
| http://magazine.hitb.org/hitb-magazine.html<br />
|-<br />
| Segurança Digital<br />
| Nacional<br />
| http://www.segurancadigital.info/<br />
|}<br />
<br />
<br />
= Slackzine =<br />
{| class="wikitable" id="slackzine"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackzine Ed. 1<br />
| https://heyzine.com/flip-book/2bda13017b.html<br />
|-<br />
| Slackzine Ed. 2<br />
| https://heyzine.com/flip-book/9012f0cbc6.html<br />
|-<br />
| Slackzine Ed. 2.5<br />
| https://heyzine.com/flip-book/8f1368f763.html<br />
|-<br />
| Slackzine Ed. 3<br />
| https://heyzine.com/flip-book/bd7e882914.html<br />
|-<br />
| Slackzine Ed. 3.5<br />
| https://heyzine.com/flip-book/19282049e0.html<br />
|-<br />
| Slackzine Ed. 4<br />
| https://heyzine.com/flip-book/8e111d531b.html<br />
|-<br />
| Slackzine Ed. 5<br />
| https://heyzine.com/flip-book/36bfe28844.html<br />
|-<br />
| Slackzine Ed. 5.5<br />
| https://heyzine.com/flip-book/1152ba2c20.html<br />
|-<br />
| Slackzine Ed. 6<br />
| https://heyzine.com/flip-book/77c5523e8b.html<br />
|-<br />
| Slackzine Ed. 7<br />
| https://heyzine.com/flip-book/69c1ac9414.html<br />
|-<br />
| Slackzine Ed. 8<br />
| https://heyzine.com/flip-book/0d9b41bee1.html<br />
|-<br />
| Slackzine Ed. 8.5<br />
| https://heyzine.com/flip-book/1219fc6937.html<br />
|-<br />
| Slackzine Ed. 9<br />
| https://heyzine.com/flip-book/37fe9ce092.html<br />
|-<br />
| Slackzine Ed. 9.5<br />
| https://heyzine.com/flip-book/f77d9e36b9.html<br />
|-<br />
| Slackzine Ed. 10<br />
| https://heyzine.com/flip-book/de68a4b384.html<br />
|-<br />
| Slackzine Ed. 10.5<br />
| https://heyzine.com/flip-book/9b96844636.html<br />
|-<br />
| Slackzine Ed. 11<br />
| https://heyzine.com/flip-book/9f19522f19.html<br />
|-<br />
| Slackzine Ed. 11.5<br />
| https://heyzine.com/flip-book/fee0431d9f.html<br />
|-<br />
| Slackzine Ed. 12<br />
| https://heyzine.com/flip-book/d738a232ac.html<br />
|-<br />
| Slackzine Ed. 12.5<br />
| https://heyzine.com/flip-book/0e110f7a35.html<br />
|-<br />
| Slackzine Ed. 13<br />
| https://heyzine.com/flip-book/381df9d1f2.html<br />
|-<br />
| Slackzine Ed. 14<br />
| https://heyzine.com/flip-book/6721541ae3.html<br />
|-<br />
| Slackzine Ed. 14.5<br />
| https://heyzine.com/flip-book/44a09ec77f.html<br />
|-<br />
| Slackzine Ed. 15<br />
| https://heyzine.com/flip-book/b83b9de9c8.html<br />
|-<br />
| Slackzine Ed. 16<br />
| https://heyzine.com/flip-book/599f5959e2.html<br />
|-<br />
| Slackzine Ed. 17<br />
| https://heyzine.com/flip-book/c09ea021de.html<br />
|-<br />
| Slackzine Ed. 18<br />
| https://heyzine.com/flip-book/ddd4a06610.html<br />
|}<br />
<br />
<br />
= Outras Zines =<br />
<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Axur05<br />
| Nacional<br />
| https://area31.net.br/downloads/axur05/<br />
|-<br />
| Cogumelo Binário<br />
| Nacional<br />
| http://www.mentebinaria.com.br/zine/<br />
|-<br />
| H+<br />
| Gringa<br />
| http://hplusmagazine.com/<br />
|-<br />
| Spectrum<br />
| Gringa<br />
| http://spectrum.ieee.org/<br />
|-<br />
| Barata Eletrica (por motivos historicos)<br />
| Nacional<br />
| https://sites.google.com/site/barataeletricafanzine/<br />
|}<br />
<br />
= Slackbook =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackbook ptbr 1.0.2<br />
| https://heyzine.com/flip-book/088d62c79b.html<br />
|}<br />
<br />
[[Categoria:KnowledgeBase]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=MediaWiki:Sidebar&diff=5184MediaWiki:Sidebar2024-01-15T15:33:04Z<p>Coffnix: </p>
<hr />
<div>* Sobre o Área31<br />
** BLOG|Blog Oficial<br />
** Eventos|Eventos<br />
** Fale Conosco|Fale Conosco<br />
** Fornecedores|Fornecedores<br />
** Logos e temas|Logos e temas<br />
** Categoria:Membros Fundadores|Membros Fundadores<br />
** Categoria:Membros Honorários|Membros Honorários<br />
** Categoria:Membros|Membros<br />
** Parceiros|Parceiros<br />
** Área31 na Mídia|Reportagens e entrevistas para a imprensa<br />
** Repositório|Repositório GIT oficial<br />
** Revistas e Zines|Revistas e Zines<br />
* Armamentos<br />
** Como_se_tornar_um_CAC_para_obter_armas_de_fogo_legalmente_no_Brasil|Como se tornar um CAC para obter armas de fogo legalmente no Brasil<br />
** Solicitação_de_compra_de_armamentos_para_CAC|Solicitação de compra de armamentos para CAC<br />
** Como_adquirir_um_fuzil_legalmente_no_Brasil_sendo_CAC|Como adquirir um fuzil legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_espingarda_legalmente_no_Brasil_sendo_CAC|Como adquirir uma espingarda legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_pistola_legalmente_no_Brasil_sendo_CAC|Como adquirir uma pistola legalmente no Brasil sendo CAC<br />
** Como_comprar_munições_sendo_CAC|Como comprar munições sendo CAC<br />
** Vídeos_educativos_sobre_armas_de_fogo|Vídeos educativos sobre armas de fogo<br />
** Canais_de_armamentistas_recomendados_no_youtube|Canais de armamentistas recomendados no youtube<br />
** Orientações_e_fundamentações_legais_para_o_CAC_levar_consigo_em_auxílio_à_autoridade_policial|Orientações e fundamentações legais para o CAC levar consigo em auxílio à autoridade policial<br />
** (I)legalidade_da_prisão_do_atirador,_colecionador_ou_caçador_(CAC)|(I)legalidade da prisão do atirador, colecionador ou caçador (CAC)<br />
** Como_o_racismo_pautou_as_restrições_de_armas_nos_Estados_Unidos|Como o racismo pautou as restrições de armas nos Estados Unidos<br />
* Crypto Docs<br />
** O que é um Cypherpunk|O que é um Cypherpunk<br />
** Manifesto Criptoanarquista|Manifesto Criptoanarquista<br />
** Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks|Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks<br />
** Quem é Ralph Merkle|Quem é Ralph Merkle<br />
** Quem é David Chaum|Quem é David Chaum<br />
** Quem é Charlie Lee|Quem é Charlie Lee<br />
** Quem é W Scott Stornetta|Quem é W Scott Stornetta<br />
** Quem é Wladimir Van Der Laan|Quem é Wladimir Van Der Laan<br />
** Quem é o Zooko Wilcox|Quem é o Zooko Wilcox<br />
** Quem é Timothy May|Quem é Timothy May<br />
** Quem é Martin Hellman|Quem é Martin Hellman<br />
** Quem é Luke Dashjr|Quem é Luke Dashjr<br />
** Quem é Nick Szabo|Quem é Nick Szabo<br />
** Quem é Satoshi Nakamoto|Quem é Satoshi Nakamoto<br />
** O que é criptografia|O que é criptografia<br />
** O que é criptografia assimétrica|O que é criptografia assimétrica<br />
** O que é um hash|O que é um hash<br />
** O que é HashCash|O que é HashCash<br />
** Qual é o algoritmo de assinatura ECDSA|Qual é o algoritmo de assinatura ECDSA<br />
** O que é Cryptojacking|O que é Cryptojacking<br />
** O que é um Replay Attack|O que é um Replay Attack<br />
** O que é um ataque Sybil|O que é um ataque Sybil<br />
** Len Sassaman e Satoshi: uma história Cypherpunk|Len Sassaman e Satoshi: uma história Cypherpunk<br />
* Blockchain Docs<br />
** O que é um razão distribuído (razão)|O que é um razão distribuído (razão)<br />
**O que é a Cadeia de Blocos (Blockchain)|O que é a Cadeia de Blocos (Blockchain)<br />
** Como funciona a Blockchain- Cadeia de Blocos|Como funciona a Blockchain- Cadeia de Blocos<br />
** Qual é a altura do bloco|Qual é a altura do bloco<br />
** Qual é a recompensa em bloco|Qual é a recompensa em bloco<br />
** O que é o Bloco de Gênesis|O que é o Bloco de Gênesis<br />
** O que é uma árvore Merkle|O que é uma árvore Merkle<br />
** O que é uma falha bizantina|O que é uma falha bizantina<br />
** O que é tolerância a falhas bizantinas (BFT)|O que é tolerância a falhas bizantinas (BFT)<br />
** Glossário de contratos inteligentes de Nick Szabo|Glossário de contratos inteligentes de Nick Szabo<br />
* Bitcoin Docs<br />
** Raízes e motivos da criação do Bitcoin|Raízes e motivos da criação do Bitcoin<br />
** O que é uma criptomoeda|O que é uma criptomoeda<br />
** Qual é o consenso em criptomoedas|Qual é o consenso em criptomoedas<br />
** O que é Bitcoin e como funciona|O que é Bitcoin e como funciona<br />
** O que é uma unidade de conta em Bitcoin|O que é uma unidade de conta em Bitcoin<br />
** Quantos bitcoins realmente existem|Quantos bitcoins realmente existem<br />
** O que é Bitcoin Core|O que é Bitcoin Core<br />
** Bitcoin Core Wallet, tudo o que você precisa saber|Bitcoin Core Wallet, tudo o que você precisa saber<br />
** O que é mempool no Bitcoin|O que é mempool no Bitcoin<br />
** O que é uma transação com base em moeda|O que é uma transação com base em moeda<br />
** Transações Bitcoin, como funcionam|Transações Bitcoin, como funcionam<br />
** O que é uma transação de poeira|O que é uma transação de poeira<br />
** O que é mineração de criptomoeda|O que é mineração de criptomoeda<br />
** O que são os mineradores ASIC|O que são os mineradores ASIC<br />
** Mineração de bitcoins, o que é e como funciona|Mineração de bitcoins, o que é e como funciona<br />
** Mineração de Bitcoin Como você cria um bloco|Mineração de Bitcoin Como você cria um bloco<br />
** Qual é a dificuldade de mineração em Bitcoin|Qual é a dificuldade de mineração em Bitcoin<br />
** O que é uma pool de mineração de criptomoedas|O que é uma pool de mineração de criptomoedas<br />
** O que é Crypto Wars e como você definiu o mundo criptográfico|O que é Crypto Wars e como você definiu o mundo criptográfico<br />
** Satoshi Nakamoto criou a Monero|Satoshi Nakamoto criou a Monero<br />
* Crypto Projects<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** Armazene seus bitcoins de forma segura em uma carteira local|Armazene seus bitcoins de forma segura em uma carteira local<br />
** Aprenda_a_minerar_criptomoedas_via_CPU_e_GPU_no_Linux|Aprenda a minerar criptomoedas via CPU e GPU no Linux<br />
** Atomic Swap - Bitcoin (BTC) vs Monero (XMR)|Atomic Swap - Bitcoin (BTC) vs Monero (XMR)<br />
** Bots_recomendados_para_cryptos|Bots de redes sociais recomendados para cryptos<br />
** Crie seu próprio robô para trade automático de crypto moedas|Crie seu próprio robô para trade automático de crypto moedas<br />
* Hacking Projects<br />
** Configure seu próprio proxy sock5 via openvpn|Proxy sock5 via openvpn<br />
** Biohacking|Biohacking<br />
** DFSS USBkiller|DFSS USBkiller<br />
** Hackaratê Coding Dojo|Hackaratê Coding Dojo<br />
** Hacking Apple TV|Hacking Apple TV<br />
** LiveCD_oficial|LiveCD oficial<br />
** NN-CFA|NN-CFA (Nothing New Crypto for All)<br />
** ONION PI - REV BR|OnionPi Rev BR<br />
** Redes_DTN|Redes DTN<br />
** Router RTA04N Backdoor|Router RTA04N Backdoor<br />
** Storage_criptografado_em_roteador_residencial|Storage criptografado em roteador residencial<br />
* Maker Projects<br />
** Categoria:Impressoras_3D|Impressora 3D<br />
** Linux on the BeagleBone|Linux on the BeagleBone<br />
** Linux on the Cubieboard A20|Linux on the Cubieboard A20<br />
** Linux on the Raspberry pi|Linux on the Raspberry Pi<br />
** Raspberry Pi Lapdock - Raspdock|Raspberry Pi Lapdock<br />
** MSP430_-_Texas_Instrument|MSP430 - Texas Instrument<br />
** FabScan - Scanner 3D|Scanner 3D<br />
* Artigos<br />
** Bio + Hacking = Ética Hacker aplicada a biologia|Bio + Hacking = Ética Hacker aplicada a biologia<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** HackForge|HackForge - Boas práticas de defesa (Linux)<br />
** Como_fazer_perguntas_inteligentes|Como fazer perguntas inteligentes<br />
** Funtoo_Linux_vs_Gentoo_Linux_-_Diferenças_técnicas,_estruturais_e_filosóficas|Funtoo Linux vs Gentoo Linux - Diferenças técnicas, estruturais e filosóficas<br />
** Hacktivismo|Hacktivismo<br />
** Heartbleed para não técnicos|Heartbleed para não técnicos<br />
** Manifesto_Hacker|Manifesto Hacker<br />
** O_COMPUTADOR_e_a_constituição_Algocrata|O computador e a constituição Algocrata<br />
** The_Extinction_of_Hackers|The Extinction of Hackers<br />
** Money for Nothing - The recent hullabaloo over NFTs|Money for Nothing - The recent hullabaloo over NFTs<br />
** Rootfs_criptografado_com_LUKS_usando_LVM| Rootfs criptografado com LUKS usando LVM (Linux)<br />
** Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|Desbloqueio de LUKS com um dispositivo USB no Boot<br />
** ZFS_com_DKMS_no_OpenSUSE|ZFS com DKMS no OpenSUSE<br />
** ZFS_on_LUKS|ZFS on LUKS<br />
* IA<br />
** Faça_seu_próprio_GPT_offline_e_privado|Faça seu próprio GPT offline e privado<br />
* Ajuda<br />
** Como_escrever_artigos_na_wiki|Como escrever artigos na wiki<br />
** Special:Upload|Faça Upload de imagens<br />
** Especial:Categorias|Ver todas as categorias<br />
** Especial:Todas_as_páginas|Ver todos os artigos<br />
** recentchanges-url|Ver mudanças recentes<br />
** randompage-url|Ver páginas aleatórias<br />
* navigation<br />
** Categoria:Humor|Humor<br />
* SEARCH<br />
* TOOLBOX</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Ra%C3%ADzes_e_motivos_da_cria%C3%A7%C3%A3o_do_Bitcoin&diff=5183Raízes e motivos da criação do Bitcoin2024-01-13T20:48:13Z<p>Coffnix: </p>
<hr />
<div><br />
[[Image:Logo-bitcoin-1536.png|thumb|250px]]<br />
<br />
<br />
Responsáveis:<br />
* [[Usuário:Eksffa|Eksffa]]<br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
<br />
Antes de iniciar a leitura, assista esse vídeo:<br />
<br />
<br />
<youtube width="640" height="360">9vM0oIEhMag</youtube><br />
<br />
<br />
<br />
==Raíz ideológica==<br />
O Criptoanarquismo é uma vertente do anarcocapitalismo que tem como principal preocupação garantir a privacidade e a liberdade extra-estatal, por meio da utilização de criptografia assimétrica.<br />
<br />
O termo popularizado por Timothy C. May, é descrito como a realização ciber-espacial do anarquismo. Os cripto-anarquistas tem entre seus objetivos a criação de um software criptográfico capaz de impossibilitar processos judiciais e outras formas repressão ao se enviar e receber informação nas redes de computadores. Timothy C. May crypto escreve sobre o cripto-anarquismo no Cyphernomicon<ref>http://dicionario.sensagent.com/Criptoanarquismo/pt-pt/</ref><br />
<br />
<br />
<br />
=Introdução=<br />
==Motivos da criação do Bitcoin==<br />
As motivações por trás da criação do Bitcoin estão profundamente enraizadas nos ideais do movimento Cypherpunk, um grupo de ativistas que, no final dos anos 80 e início dos 90, defendia fortemente a autonomia dos indivíduos sobre seus dados e a segurança na internet. Este movimento, caracterizado pela sua paixão pela criptografia (cypher) e influenciado pela subcultura cyberpunk, estava empenhado em discutir e implementar políticas de privacidade e segurança na era digital.<br />
<br />
Os Cypherpunks não apenas debatiam ideias; eles também desenvolveram vários projetos alinhados com seus ideais, muitos dos quais se concentravam na criação de um sistema financeiro distribuído e protegido pela criptografia. Estes projetos visavam aumentar a proteção individual em relação aos dados pessoais, desafiando os sistemas convencionais de poder e controle.<br />
<br />
O termo cypherpunk é um trocadilho com as palavras cypher, referente à criptografia, e cyberpunk, nome da subcultura underground aliada às tecnologias de informação e cibernética, conhecida também pela sua resistência ao “establishment” e ao “mainstream”.<ref>https://www.tecmundo.com.br/criptografia/41665-cypherpunk-o-ativismo-do-futuro.htm</ref><br />
<br />
Diferente de projetos anteriores, o Bitcoin se destacou por sua capacidade de operar eficientemente e atrair um grande número de usuários. A criação do Bitcoin é frequentemente atribuída a uma pessoa ou grupo conhecido como Satoshi Nakamoto, mas suas raízes são muito mais amplas. Inspirado nas discussões e inovações dos Cypherpunks, o Bitcoin foi projetado como um sistema de caixa eletrônico peer-to-peer, sem a necessidade de uma autoridade central, utilizando criptografia para garantir segurança e utilizando pseudônimos para proteger as identidades dos usuários.<br />
<br />
O Bitcoin também emergiu como uma solução financeira para aqueles que, devido a restrições de crédito ou ao puro '''desejo de anonimato''', encontravam-se excluídos dos sistemas bancários convencionais. Sua natureza descentralizada e baseada em pseudônimos oferece uma alternativa acessível e privada, alinhada com a visão dos Cypherpunks de promover a autonomia financeira e a proteção da identidade pessoal em um mundo digitalmente conectado.<br />
<br />
Assim, o Bitcoin se tornou a materialização do ideal Cypherpunk de um sistema financeiro descentralizado e privado, desafiando as noções tradicionais de dinheiro e sistemas financeiros, e oferecendo uma nova forma de interação econômica e liberdade.<br />
<br />
Ludwig von Mises, Murray Rothbard, e Hans-Hermann Hoppe, teóricos proeminentes do anarcocapitalismo, provavelmente veriam o Bitcoin como uma inovação alinhada com os princípios anarcocapitalistas. Eles poderiam argumentar que o Bitcoin representa uma forma de moeda livre do controle estatal, promovendo a liberdade econômica e a soberania individual. Em sua essência, o Bitcoin poderia ser considerado um exemplo prático da teoria do dinheiro de livre mercado, onde a criação e a regulação da moeda são resultado das ações descentralizadas e voluntárias dos indivíduos, em vez de serem impostas por uma autoridade central.<br />
<br />
<br />
<br />
==Contexto do Anúncio – Crise do subprime==<br />
[[Image:Btc-subprime.png|700px]]<br />
<br />
Após a crise do subprime, em 2008, quando o sistema financeiro dos Estados Unidos colapsou em virtude de políticas de crédito altamente arriscadas e questionáveis, passou-se a desconfiar do sistema financeiro tradicional.<br />
<br />
O gráfico abaixo mostra a mudança na relação de confiança que as pessoas tinham no sistema financeiro (2008-2013). Observe como a população da Europa e dos Estados Unidos perderam substancialmente a confiança nos seus sistemas financeiros, passando para baixo a linha dos 50%. <br />
<br />
Gráfico de confiança nos Bancos<br />
E foi nesse propício momento que surgiu a proposta de criação do Bitcoin. Embora a forte coincidência temporal, não podemos afirmar que o Bitcoin surgiu em resposta direta à crise do subprime, pois há diversos sinais de que a ideia já vinha sendo trabalhada e aprimorada há um tempo. <br />
<br />
<br />
==Surgimento. Quem criou?==<br />
Dentro desse contexto, no final de 2008, surgiu uma proposta inovadora na internet, através de um documento técnico chamado de Whitepaper. O Whitepaper foi denominado: “Bitcoin: A Peer-to-Peer Electronic Cash System” e assinado por “Satoshi Nakamoto”. <br />
<br />
Então temos a resposta objetiva para a pergunta quem criou o Bitcoin: a(s) pessoa(s) que se apresentou(aram) como Satoshi Nakamoto. No entanto, uma aproximação ao tema mostra que se trata de um pseudônimo (nome fictício), sendo que o(s) criador(res) até hoje não teve(tiveram) sua identidade revelada. <br />
<br />
Permanece um mistério em torno de quem criou o Bitcoin. E, por respeito à intenção do(s) autor(es), nós preferimos deixar o mistério vivo. <br />
<br />
<br />
<br />
==O que é?==<br />
Nakamoto propôs a criação de um sistema financeiro alternativo ao sistema financeiro tradicional, combinando trocas e liquidação de pagamentos, no qual as trocas financeiras pudessem ser feitas diretamente de pessoa para pessoa (peer-to-peer – P2P), sem a necessidade de intermediários. <br />
<br />
Sua intenção é que as pessoas pudessem fazer transferências e pagamentos sem a necessidade das instituições tradicionais do sistema financeiro, como bancos privados, bancos centrais, corretoras, etc.<br />
<br />
O Bitcoin, então, é um sistema financeiro de base tecnológica, à base de governança descentralizada. <br />
<br />
Houve outros projetos com intenções semelhantes à do Bitcoin, no entanto, ele foi o primeiro projeto do tipo que de fato ganhou adesão em escala mundial e não teve problemas que comprometessem seu funcionamento, permanecendo ativo até hoje e ganhando cada vez mais usuários.<br />
<br />
<br />
==Ou seja...==<br />
Se você está conhecendo esse novo mundo agora, fique calmo que aos poucos os conceitos começarão a fazer sentido.<br />
<br />
Realmente, o Bitcoin trouxe um novo paradigma de sistema financeiro e entender todo seu funcionamento em um primeiro momento não é simples.<br />
<br />
E agora você já sabe um pouco do seu histórico, o contexto do surgimento e, ainda, uma definição para o que é Bitcoin.<br />
<br />
Persista nessa caminhada, porque esses conhecimentos serão muito valiosos no futuro.<br />
<br />
<br />
== Bitcoin é pirâmide? ==<br />
Não, o Bitcoin não é pirâmide ou crime contra a economia popular. Para ser um crime, tem que ter um autor, um responsável. Quem seria neste caso? “'''Satoshi Nakamoto'''”? A casa de câmbio que compra e vende Bitcoins? Ou simplesmente o próprio consumidor, que entra num negócio que ele não entende direito?<br />
<br />
=== Já em 2012 o BCE determinou que Bitcoin é legal ===<br />
Vale a pena ler integralmente o relatório sobre Bitcoin de 2012 do '''Banco Central Europeu''' <ref>https://www.ecb.europa.eu/pub/pdf/other/virtualcurrencyschemes201210en.pdf</ref>, uma autoridade cuja reputação no mínimo se compara à de '''Paul Krugman''' e '''Nouriel Roubini'''. A página 22 (pdf: 23) do relatório é dedicada à justificativa teórica de Bitcoin, referindo-se à '''escola austríaca''', que se posiciona contra “'''fiat money'''” em favor do padrão de ouro.<br />
<br />
<br />
A questão se Bitcoin é uma pirâmide (“Ponzi scheme”) é extensivamente discutida na página 27 (pdf: 28). No terceiro parágrafo, diz que, em teoria, não existe um organizador central que pode minar (burlar) o sistema Bitcoin e desaparecer com os fundos, condição necessária para ser um “Ponzi scheme” . Mas admite, no parágrafo seguinte, que existe uma assimetria de informação, devido à alta complexidade do sistema Bitcoin, e portanto é um esquema financeiro de alto risco. Ou seja, entre por sua própria conta e risco.<br />
<br />
Seguindo esta linha, o Banco Central da Holanda decidiu que Bitcoin não é dinheiro, e a Autoridade Financeira decidiu que não é produto financeiro. Em maio de 2014 a justiça holandesa determinou que o Bitcoin deve ser tratado como se fosse um metal precioso, como ouro ou prata <ref>https://uitspraken.rechtspraak.nl/inziendocument?id=ECLI:NL:RBOVE:2014:2667</ref>. Em outras palavras, é um meio de troca, mas não é dinheiro. Desses metais o mercado determina um valor, e Bitcoin não é diferente.<br />
<br />
<br />
<br />
== Bitcoin é permitido no Japão, EUA e Europa ==<br />
<br />
Observe que existem casas de câmbio para Bitcoin no mundo inteiro, em legislações muito atentas a essas novas tecnologias. Por exemplo, o documentário Banking on Bitcoin do Netflix (que todo mundo deve assistir) mostra como as autoridades financeiras de Nova York explicitamente permitiram Bitcoin e seus casas de câmbio.<br />
<br />
Portanto, a observação que eu faço é que todos os países europeus, os Estados Unidos, e Japão chegaram ao consenso que Bitcoin em si é legal. A preocupação deles, como mencionado no relatório do BCE e recentemente repetido no G20, é com suas transferências não-rastreáveis, incentivando sonegação de impostos, pagamentos de drogas, lavagem de dinheiro etc. Mas repare, quando o FBI fechou Silk Road em 2013, ele poderia ter fechado Bitcoin também. Mas optou para deixá-lo aberto, preferindo tolerar e entrar com legislação, ao invés de lidar como uma reencarnação de Bitcoin 2.<br />
<br />
E agora você me diz que é ilegal? Então, será que todas estas pessoas e autoridades estão erradas e que você tem razão? Com quais argumentos? Recorrer a Krugman ou Roubin não adianta. Krugman disse que Bitcoin é uma bolha (concordo) mas não que é ilegal <ref>https://www.nytimes.com/2018/01/29/opinion/bitcoin-bubble-fraud.html</ref>. Nouriel Roubin vai além, dizendo que o blockchain também é uma bolha (tendo a concordar) mas tampouco disse que Bitcoin é ilegal. Na verdade, nos EUA a questão da legalidade de Bitcoin já foi decidida alguns anos atrás, como Krugman e Roubin bem sabem.<br />
<br />
<br />
<br />
== Qual é o valor do Bitcoin?==<br />
<br />
Então, qual é o valor de Bitcoin? Antes de responder, deixe-me fazer mais perguntas:<br />
<br />
Qual é o valor de um quadro de Van Gogh? Qual é o valor de uma tulipa negra?<br />
<br />
Qual é o valor de um grama de ouro? Qual é o valor do Empire State Building? Qual é o valor daquela chácara no meio da mata? Como se diz em holandês: é o que o tolo paga. Ou seja, é o mercado que decide . Como disse o relatório do BCE: "'''[Bitcoin’s] exchange rate with respect to other currencies is determined by supply and demand and several exchange platforms exist.'''"<br />
<br />
<br />
Uma diferença óbvia é que ouro e prata têm uma realização física, enquanto Bitcoin é apenas uma sequência de bits. Mas isso é um argumento? O negócio da Google e Facebook também é “apenas” uma sequência de bits. Um documento assinado digitalmente com um certificado digital da ICP-Brasil também é “apenas” uma sequência de bits. E por outro lado, aposto que a grande maioria das pessoas que negociam ouro, nunca sequer viu uma barra do ouro na vida. Eles simplesmente negociam documentos, promessas. E se esses são digitais, sequências de bits.<br />
<br />
Vale lembrar que, no passado, a humanidade usou vários objetos como dinheiro: conchas, pedras, contas, colares etc. (como Pato Donald já sabia :-). <br />
<br />
[[Image:Donald_Duck069_03.jpg|700px]]<br />
<br />
<br />
<br />
O caso dos Yap seja talvez o caso mais curioso — o seguinte vídeo no YouTube faz uma analogia interessante com Bitcoin: <ref>https://www.youtube.com/watch?v=Fy8BfVrj4dk</ref>. Também vale a pena ler o artigo do prêmio Nobel Friedman que, além de citar o dinheiro dos Yap, cita uma transação de ouro entre França e os EUA em 1933 (antes do Bretton-Woods e o “fiat money” de 1971), no qual o ouro não foi transportado mas ficou em Fort Knox, num armário separado com uma etiqueta: “Ouro da França” (final de pg. 2)<ref>https://miltonfriedman.hoover.org/objects/56723/the-island-of-stone-money</ref><br />
<br />
<br />
<br />
Como o valor de ouro é sujeito aos caprichos do mercado, o Bitcoin também é. Concordo que Bitcoin é especulação de alto risco. É uma bolha? Sim. É volatil? Sim. É tolice? Sim, porque a grande maioria das pessoas nem entende o que é Bitcoin, mas quer entrar somente porque o valor está subindo, o que faz a valorização subir ainda mais. Repito: entre por sua própria conta e risco.<br />
<br />
Mas não vejo onde está a pirâmide ou o crime contra a economia popular. Se pessoas optam por comprar ações numa empresa que não dá certo e levam prejuízo, eles também não podem reclamar no Procon. E apostar na MegaSena também é permitido, enquanto as chances de perder são bem maiores que no Bitcoin. Se amanhã, ao invés de comprar Bitcoin, todo mundo comprasse ouro, o valor de ouro também subiria para patamares atmosféricos, mas você não reclamaria, provavelmente. Seria uma bolha, mas não uma pirâmide, estou certo? Já houve este tipo de reclamação, de que o preço do ouro do mercado não tem relação com a realidade <ref>https://daytradingacademy.com.br/2015/08/07/o-atual-mercado-de-ouro-e-prata-se-parece-um-esquema-de-piramide/</ref>. Então, em termos económicos, onde exatamente está a diferença intrínseco entre ouro e Bitcoin (além da volatilidade atual do Bitcoin, claro)? Eu não consigo ver.<ref>https://jornalggn.com.br/mercados/bitcoin-e-bolha-mas-nao-e-piramide-por-jeroen-van-de-graaf/</ref><br />
<br />
<br />
Referências:<br />
<br />
<br />
<br />
<br />
<br />
[[Categoria:CryptoDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Ra%C3%ADzes_e_motivos_da_cria%C3%A7%C3%A3o_do_Bitcoin&diff=5182Raízes e motivos da criação do Bitcoin2024-01-13T20:43:58Z<p>Coffnix: </p>
<hr />
<div><br />
[[Image:Logo-bitcoin-1536.png|thumb|250px]]<br />
<br />
<br />
Responsáveis:<br />
* [[Usuário:Eksffa|Eksffa]]<br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
<br />
Antes de iniciar a leitura, assista esse vídeo:<br />
<br />
<br />
<youtube width="640" height="360">9vM0oIEhMag</youtube><br />
<br />
<br />
<br />
==Raíz ideológica==<br />
O Criptoanarquismo é uma vertente do anarcocapitalismo que tem como principal preocupação garantir a privacidade e a liberdade extra-estatal, por meio da utilização de criptografia assimétrica.<br />
<br />
O termo popularizado por Timothy C. May, é descrito como a realização ciber-espacial do anarquismo. Os cripto-anarquistas tem entre seus objetivos a criação de um software criptográfico capaz de impossibilitar processos judiciais e outras formas repressão ao se enviar e receber informação nas redes de computadores. Timothy C. May crypto escreve sobre o cripto-anarquismo no Cyphernomicon<ref>http://dicionario.sensagent.com/Criptoanarquismo/pt-pt/</ref><br />
<br />
<br />
<br />
=Introdução=<br />
==Motivos da criação do Bitcoin==<br />
As motivações por trás da criação do Bitcoin estão profundamente enraizadas nos ideais do movimento Cypherpunk, um grupo de ativistas que, no final dos anos 80 e início dos 90, defendia fortemente a autonomia dos indivíduos sobre seus dados e a segurança na internet. Este movimento, caracterizado pela sua paixão pela criptografia (cypher) e influenciado pela subcultura cyberpunk, estava empenhado em discutir e implementar políticas de privacidade e segurança na era digital.<br />
<br />
Os Cypherpunks não apenas debatiam ideias; eles também desenvolveram vários projetos alinhados com seus ideais, muitos dos quais se concentravam na criação de um sistema financeiro distribuído e protegido pela criptografia. Estes projetos visavam aumentar a proteção individual em relação aos dados pessoais, desafiando os sistemas convencionais de poder e controle.<br />
<br />
O termo cypherpunk é um trocadilho com as palavras cypher, referente à criptografia, e cyberpunk, nome da subcultura underground aliada às tecnologias de informação e cibernética, conhecida também pela sua resistência ao “establishment” e ao “mainstream”.<ref>https://www.tecmundo.com.br/criptografia/41665-cypherpunk-o-ativismo-do-futuro.htm</ref><br />
<br />
Diferente de projetos anteriores, o Bitcoin se destacou por sua capacidade de operar eficientemente e atrair um grande número de usuários. A criação do Bitcoin é frequentemente atribuída a uma pessoa ou grupo conhecido como Satoshi Nakamoto, mas suas raízes são muito mais amplas. Inspirado nas discussões e inovações dos Cypherpunks, o Bitcoin foi projetado como um sistema de caixa eletrônico peer-to-peer, sem a necessidade de uma autoridade central, utilizando criptografia para garantir segurança e utilizando pseudônimos para proteger as identidades dos usuários.<br />
<br />
O Bitcoin também emergiu como uma solução financeira para aqueles que, devido a restrições de crédito ou ao puro '''desejo de anonimato''', encontravam-se excluídos dos sistemas bancários convencionais. Sua natureza descentralizada e baseada em pseudônimos oferece uma alternativa acessível e privada, alinhada com a visão dos Cypherpunks de promover a autonomia financeira e a proteção da identidade pessoal em um mundo digitalmente conectado.<br />
<br />
Assim, o Bitcoin se tornou a materialização do ideal Cypherpunk de um sistema financeiro descentralizado e privado, desafiando as noções tradicionais de dinheiro e sistemas financeiros, e oferecendo uma nova forma de interação econômica e liberdade.<br />
<br />
<br />
<br />
==Contexto do Anúncio – Crise do subprime==<br />
[[Image:Btc-subprime.png|700px]]<br />
<br />
Após a crise do subprime, em 2008, quando o sistema financeiro dos Estados Unidos colapsou em virtude de políticas de crédito altamente arriscadas e questionáveis, passou-se a desconfiar do sistema financeiro tradicional.<br />
<br />
O gráfico abaixo mostra a mudança na relação de confiança que as pessoas tinham no sistema financeiro (2008-2013). Observe como a população da Europa e dos Estados Unidos perderam substancialmente a confiança nos seus sistemas financeiros, passando para baixo a linha dos 50%. <br />
<br />
Gráfico de confiança nos Bancos<br />
E foi nesse propício momento que surgiu a proposta de criação do Bitcoin. Embora a forte coincidência temporal, não podemos afirmar que o Bitcoin surgiu em resposta direta à crise do subprime, pois há diversos sinais de que a ideia já vinha sendo trabalhada e aprimorada há um tempo. <br />
<br />
<br />
==Surgimento. Quem criou?==<br />
Dentro desse contexto, no final de 2008, surgiu uma proposta inovadora na internet, através de um documento técnico chamado de Whitepaper. O Whitepaper foi denominado: “Bitcoin: A Peer-to-Peer Electronic Cash System” e assinado por “Satoshi Nakamoto”. <br />
<br />
Então temos a resposta objetiva para a pergunta quem criou o Bitcoin: a(s) pessoa(s) que se apresentou(aram) como Satoshi Nakamoto. No entanto, uma aproximação ao tema mostra que se trata de um pseudônimo (nome fictício), sendo que o(s) criador(res) até hoje não teve(tiveram) sua identidade revelada. <br />
<br />
Permanece um mistério em torno de quem criou o Bitcoin. E, por respeito à intenção do(s) autor(es), nós preferimos deixar o mistério vivo. <br />
<br />
<br />
<br />
==O que é?==<br />
Nakamoto propôs a criação de um sistema financeiro alternativo ao sistema financeiro tradicional, combinando trocas e liquidação de pagamentos, no qual as trocas financeiras pudessem ser feitas diretamente de pessoa para pessoa (peer-to-peer – P2P), sem a necessidade de intermediários. <br />
<br />
Sua intenção é que as pessoas pudessem fazer transferências e pagamentos sem a necessidade das instituições tradicionais do sistema financeiro, como bancos privados, bancos centrais, corretoras, etc.<br />
<br />
O Bitcoin, então, é um sistema financeiro de base tecnológica, à base de governança descentralizada. <br />
<br />
Houve outros projetos com intenções semelhantes à do Bitcoin, no entanto, ele foi o primeiro projeto do tipo que de fato ganhou adesão em escala mundial e não teve problemas que comprometessem seu funcionamento, permanecendo ativo até hoje e ganhando cada vez mais usuários.<br />
<br />
<br />
==Ou seja...==<br />
Se você está conhecendo esse novo mundo agora, fique calmo que aos poucos os conceitos começarão a fazer sentido.<br />
<br />
Realmente, o Bitcoin trouxe um novo paradigma de sistema financeiro e entender todo seu funcionamento em um primeiro momento não é simples.<br />
<br />
E agora você já sabe um pouco do seu histórico, o contexto do surgimento e, ainda, uma definição para o que é Bitcoin.<br />
<br />
Persista nessa caminhada, porque esses conhecimentos serão muito valiosos no futuro.<br />
<br />
<br />
== Bitcoin é pirâmide? ==<br />
Não, o Bitcoin não é pirâmide ou crime contra a economia popular. Para ser um crime, tem que ter um autor, um responsável. Quem seria neste caso? “'''Satoshi Nakamoto'''”? A casa de câmbio que compra e vende Bitcoins? Ou simplesmente o próprio consumidor, que entra num negócio que ele não entende direito?<br />
<br />
=== Já em 2012 o BCE determinou que Bitcoin é legal ===<br />
Vale a pena ler integralmente o relatório sobre Bitcoin de 2012 do '''Banco Central Europeu''' <ref>https://www.ecb.europa.eu/pub/pdf/other/virtualcurrencyschemes201210en.pdf</ref>, uma autoridade cuja reputação no mínimo se compara à de '''Paul Krugman''' e '''Nouriel Roubini'''. A página 22 (pdf: 23) do relatório é dedicada à justificativa teórica de Bitcoin, referindo-se à '''escola austríaca''', que se posiciona contra “'''fiat money'''” em favor do padrão de ouro.<br />
<br />
<br />
A questão se Bitcoin é uma pirâmide (“Ponzi scheme”) é extensivamente discutida na página 27 (pdf: 28). No terceiro parágrafo, diz que, em teoria, não existe um organizador central que pode minar (burlar) o sistema Bitcoin e desaparecer com os fundos, condição necessária para ser um “Ponzi scheme” . Mas admite, no parágrafo seguinte, que existe uma assimetria de informação, devido à alta complexidade do sistema Bitcoin, e portanto é um esquema financeiro de alto risco. Ou seja, entre por sua própria conta e risco.<br />
<br />
Seguindo esta linha, o Banco Central da Holanda decidiu que Bitcoin não é dinheiro, e a Autoridade Financeira decidiu que não é produto financeiro. Em maio de 2014 a justiça holandesa determinou que o Bitcoin deve ser tratado como se fosse um metal precioso, como ouro ou prata <ref>https://uitspraken.rechtspraak.nl/inziendocument?id=ECLI:NL:RBOVE:2014:2667</ref>. Em outras palavras, é um meio de troca, mas não é dinheiro. Desses metais o mercado determina um valor, e Bitcoin não é diferente.<br />
<br />
<br />
<br />
== Bitcoin é permitido no Japão, EUA e Europa ==<br />
<br />
Observe que existem casas de câmbio para Bitcoin no mundo inteiro, em legislações muito atentas a essas novas tecnologias. Por exemplo, o documentário Banking on Bitcoin do Netflix (que todo mundo deve assistir) mostra como as autoridades financeiras de Nova York explicitamente permitiram Bitcoin e seus casas de câmbio.<br />
<br />
Portanto, a observação que eu faço é que todos os países europeus, os Estados Unidos, e Japão chegaram ao consenso que Bitcoin em si é legal. A preocupação deles, como mencionado no relatório do BCE e recentemente repetido no G20, é com suas transferências não-rastreáveis, incentivando sonegação de impostos, pagamentos de drogas, lavagem de dinheiro etc. Mas repare, quando o FBI fechou Silk Road em 2013, ele poderia ter fechado Bitcoin também. Mas optou para deixá-lo aberto, preferindo tolerar e entrar com legislação, ao invés de lidar como uma reencarnação de Bitcoin 2.<br />
<br />
E agora você me diz que é ilegal? Então, será que todas estas pessoas e autoridades estão erradas e que você tem razão? Com quais argumentos? Recorrer a Krugman ou Roubin não adianta. Krugman disse que Bitcoin é uma bolha (concordo) mas não que é ilegal <ref>https://www.nytimes.com/2018/01/29/opinion/bitcoin-bubble-fraud.html</ref>. Nouriel Roubin vai além, dizendo que o blockchain também é uma bolha (tendo a concordar) mas tampouco disse que Bitcoin é ilegal. Na verdade, nos EUA a questão da legalidade de Bitcoin já foi decidida alguns anos atrás, como Krugman e Roubin bem sabem.<br />
<br />
<br />
<br />
== Qual é o valor do Bitcoin?==<br />
<br />
Então, qual é o valor de Bitcoin? Antes de responder, deixe-me fazer mais perguntas:<br />
<br />
Qual é o valor de um quadro de Van Gogh? Qual é o valor de uma tulipa negra?<br />
<br />
Qual é o valor de um grama de ouro? Qual é o valor do Empire State Building? Qual é o valor daquela chácara no meio da mata? Como se diz em holandês: é o que o tolo paga. Ou seja, é o mercado que decide . Como disse o relatório do BCE: "'''[Bitcoin’s] exchange rate with respect to other currencies is determined by supply and demand and several exchange platforms exist.'''"<br />
<br />
<br />
Uma diferença óbvia é que ouro e prata têm uma realização física, enquanto Bitcoin é apenas uma sequência de bits. Mas isso é um argumento? O negócio da Google e Facebook também é “apenas” uma sequência de bits. Um documento assinado digitalmente com um certificado digital da ICP-Brasil também é “apenas” uma sequência de bits. E por outro lado, aposto que a grande maioria das pessoas que negociam ouro, nunca sequer viu uma barra do ouro na vida. Eles simplesmente negociam documentos, promessas. E se esses são digitais, sequências de bits.<br />
<br />
Vale lembrar que, no passado, a humanidade usou vários objetos como dinheiro: conchas, pedras, contas, colares etc. (como Pato Donald já sabia :-). <br />
<br />
[[Image:Donald_Duck069_03.jpg|700px]]<br />
<br />
<br />
<br />
O caso dos Yap seja talvez o caso mais curioso — o seguinte vídeo no YouTube faz uma analogia interessante com Bitcoin: <ref>https://www.youtube.com/watch?v=Fy8BfVrj4dk</ref>. Também vale a pena ler o artigo do prêmio Nobel Friedman que, além de citar o dinheiro dos Yap, cita uma transação de ouro entre França e os EUA em 1933 (antes do Bretton-Woods e o “fiat money” de 1971), no qual o ouro não foi transportado mas ficou em Fort Knox, num armário separado com uma etiqueta: “Ouro da França” (final de pg. 2)<ref>https://miltonfriedman.hoover.org/objects/56723/the-island-of-stone-money</ref><br />
<br />
<br />
<br />
Como o valor de ouro é sujeito aos caprichos do mercado, o Bitcoin também é. Concordo que Bitcoin é especulação de alto risco. É uma bolha? Sim. É volatil? Sim. É tolice? Sim, porque a grande maioria das pessoas nem entende o que é Bitcoin, mas quer entrar somente porque o valor está subindo, o que faz a valorização subir ainda mais. Repito: entre por sua própria conta e risco.<br />
<br />
Mas não vejo onde está a pirâmide ou o crime contra a economia popular. Se pessoas optam por comprar ações numa empresa que não dá certo e levam prejuízo, eles também não podem reclamar no Procon. E apostar na MegaSena também é permitido, enquanto as chances de perder são bem maiores que no Bitcoin. Se amanhã, ao invés de comprar Bitcoin, todo mundo comprasse ouro, o valor de ouro também subiria para patamares atmosféricos, mas você não reclamaria, provavelmente. Seria uma bolha, mas não uma pirâmide, estou certo? Já houve este tipo de reclamação, de que o preço do ouro do mercado não tem relação com a realidade <ref>https://daytradingacademy.com.br/2015/08/07/o-atual-mercado-de-ouro-e-prata-se-parece-um-esquema-de-piramide/</ref>. Então, em termos económicos, onde exatamente está a diferença intrínseco entre ouro e Bitcoin (além da volatilidade atual do Bitcoin, claro)? Eu não consigo ver.<ref>https://jornalggn.com.br/mercados/bitcoin-e-bolha-mas-nao-e-piramide-por-jeroen-van-de-graaf/</ref><br />
<br />
<br />
Referências:<br />
<br />
<br />
<br />
<br />
<br />
[[Categoria:CryptoDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Revistas_e_Zines&diff=5181Revistas e Zines2023-12-27T00:12:51Z<p>Coffnix: </p>
<hr />
<div>= Revista H2HC =<br />
{| class="wikitable" id="h2hcmagazine"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| H2HC ED 1<br />
| https://heyzine.com/flip-book/3ed1a7dd6c.html<br />
|-<br />
| H2HC ED 2<br />
| https://heyzine.com/flip-book/990b2dde3a.html<br />
|-<br />
| H2HC ED 3<br />
| https://heyzine.com/flip-book/f90895ed11.html<br />
|-<br />
| H2HC ED 4<br />
| https://heyzine.com/flip-book/d42b788dd4.html<br />
|-<br />
| H2HC ED 5<br />
| https://heyzine.com/flip-book/3bd678616e.html<br />
|-<br />
| H2HC ED 6<br />
| https://heyzine.com/flip-book/21f2e0913c.html<br />
|-<br />
| H2HC ED 7<br />
| https://heyzine.com/flip-book/2c4de0a028.html<br />
|-<br />
| H2HC ED 8<br />
| https://heyzine.com/flip-book/1f1efcfb53.html<br />
|-<br />
| H2HC ED 9<br />
| https://heyzine.com/flip-book/f061052e3f.html<br />
|-<br />
| H2HC ED 10<br />
| https://heyzine.com/flip-book/733c9bad6a.html<br />
|-<br />
| H2HC ED 11<br />
| https://heyzine.com/flip-book/d3bd98f640.html<br />
|-<br />
| H2HC ED 12<br />
| https://heyzine.com/flip-book/db10b98595.html<br />
|-<br />
| H2HC ED 13<br />
| https://heyzine.com/flip-book/d61eaa35c6.html<br />
|-<br />
| H2HC ED 14<br />
| https://heyzine.com/flip-book/2f8984c77b.html<br />
|-<br />
| H2HC ED 15<br />
| https://heyzine.com/flip-book/ec1d363b5e.html<br />
|-<br />
| H2HC ED 16<br />
| https://heyzine.com/flip-book/278b8ec88f.html<br />
|}<br />
<br />
<br />
= Outras revistas =<br />
<br />
{| class="wikitable" id="listaderevistas"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Enigma<br />
| Nacional<br />
| http://www.enigmajournal.org<br />
|-<br />
| Security and Privacy<br />
| Gringa<br />
| http://www.computer.org/portal/web/computingnow/securityandprivacy<br />
|-<br />
| Hack in the Box (hitb)<br />
| Gringa<br />
| http://magazine.hitb.org/hitb-magazine.html<br />
|-<br />
| Segurança Digital<br />
| Nacional<br />
| http://www.segurancadigital.info/<br />
|}<br />
<br />
<br />
= Slackzine =<br />
{| class="wikitable" id="slackzine"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackzine Ed. 1<br />
| https://heyzine.com/flip-book/2bda13017b.html<br />
|-<br />
| Slackzine Ed. 2<br />
| https://heyzine.com/flip-book/9012f0cbc6.html<br />
|-<br />
| Slackzine Ed. 2.5<br />
| https://heyzine.com/flip-book/8f1368f763.html<br />
|-<br />
| Slackzine Ed. 3<br />
| https://heyzine.com/flip-book/bd7e882914.html<br />
|-<br />
| Slackzine Ed. 3.5<br />
| https://heyzine.com/flip-book/19282049e0.html<br />
|-<br />
| Slackzine Ed. 4<br />
| https://heyzine.com/flip-book/8e111d531b.html<br />
|-<br />
| Slackzine Ed. 5<br />
| https://heyzine.com/flip-book/36bfe28844.html<br />
|-<br />
| Slackzine Ed. 5.5<br />
| https://heyzine.com/flip-book/1152ba2c20.html<br />
|-<br />
| Slackzine Ed. 6<br />
| https://heyzine.com/flip-book/77c5523e8b.html<br />
|-<br />
| Slackzine Ed. 7<br />
| https://heyzine.com/flip-book/69c1ac9414.html<br />
|-<br />
| Slackzine Ed. 8<br />
| https://heyzine.com/flip-book/0d9b41bee1.html<br />
|-<br />
| Slackzine Ed. 8.5<br />
| https://heyzine.com/flip-book/1219fc6937.html<br />
|-<br />
| Slackzine Ed. 9<br />
| https://heyzine.com/flip-book/37fe9ce092.html<br />
|-<br />
| Slackzine Ed. 9.5<br />
| https://heyzine.com/flip-book/f77d9e36b9.html<br />
|-<br />
| Slackzine Ed. 10<br />
| https://heyzine.com/flip-book/de68a4b384.html<br />
|-<br />
| Slackzine Ed. 10.5<br />
| https://heyzine.com/flip-book/9b96844636.html<br />
|-<br />
| Slackzine Ed. 11<br />
| https://heyzine.com/flip-book/9f19522f19.html<br />
|-<br />
| Slackzine Ed. 11.5<br />
| https://heyzine.com/flip-book/fee0431d9f.html<br />
|-<br />
| Slackzine Ed. 12<br />
| https://heyzine.com/flip-book/d738a232ac.html<br />
|-<br />
| Slackzine Ed. 12.5<br />
| https://heyzine.com/flip-book/0e110f7a35.html<br />
|-<br />
| Slackzine Ed. 13<br />
| https://heyzine.com/flip-book/381df9d1f2.html<br />
|-<br />
| Slackzine Ed. 14<br />
| https://heyzine.com/flip-book/6721541ae3.html<br />
|-<br />
| Slackzine Ed. 14.5<br />
| https://heyzine.com/flip-book/44a09ec77f.html<br />
|-<br />
| Slackzine Ed. 15<br />
| https://heyzine.com/flip-book/b83b9de9c8.html<br />
|-<br />
| Slackzine Ed. 16<br />
| https://heyzine.com/flip-book/599f5959e2.html<br />
|-<br />
| Slackzine Ed. 17<br />
| https://heyzine.com/flip-book/c09ea021de.html<br />
|-<br />
| Slackzine Ed. 18<br />
| https://heyzine.com/flip-book/ddd4a06610.html<br />
|}<br />
<br />
<br />
= Outras Zines =<br />
<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Axur05<br />
| Nacional<br />
| https://area31.net.br/downloads/axur05/<br />
|-<br />
| Cogumelo Binário<br />
| Nacional<br />
| http://www.mentebinaria.com.br/zine/<br />
|-<br />
| H+<br />
| Gringa<br />
| http://hplusmagazine.com/<br />
|-<br />
| Spectrum<br />
| Gringa<br />
| http://spectrum.ieee.org/<br />
|-<br />
| Barata Eletrica (por motivos historicos)<br />
| Nacional<br />
| https://sites.google.com/site/barataeletricafanzine/<br />
|}<br />
<br />
= Slackbook =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackbook ptbr 1.0.2<br />
| https://heyzine.com/flip-book/088d62c79b.html<br />
|}<br />
<br />
[[Categoria:KnowledgeBase]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Revistas_e_Zines&diff=5180Revistas e Zines2023-12-27T00:09:50Z<p>Coffnix: </p>
<hr />
<div>= Revista H2HC =<br />
{| class="wikitable" id="h2hcmagazine"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| H2HC ED 1<br />
| https://heyzine.com/flip-book/3ed1a7dd6c.html<br />
|-<br />
| H2HC ED 2<br />
| https://heyzine.com/flip-book/990b2dde3a.html<br />
|-<br />
| H2HC ED 3<br />
| https://heyzine.com/flip-book/f90895ed11.html<br />
|-<br />
| H2HC ED 4<br />
| https://heyzine.com/flip-book/d42b788dd4.html<br />
|-<br />
| H2HC ED 5<br />
| https://heyzine.com/flip-book/3bd678616e.html<br />
|-<br />
| H2HC ED 6<br />
| https://heyzine.com/flip-book/21f2e0913c.html<br />
|-<br />
| H2HC ED 7<br />
| https://heyzine.com/flip-book/2c4de0a028.html<br />
|-<br />
| H2HC ED 8<br />
| https://heyzine.com/flip-book/1f1efcfb53.html<br />
|-<br />
| H2HC ED 9<br />
| https://heyzine.com/flip-book/f061052e3f.html<br />
|-<br />
| H2HC ED 10<br />
| https://heyzine.com/flip-book/733c9bad6a.html<br />
|-<br />
| H2HC ED 11<br />
| https://heyzine.com/flip-book/d3bd98f640.html<br />
|-<br />
| H2HC ED 12<br />
| https://heyzine.com/flip-book/db10b98595.html<br />
|-<br />
| H2HC ED 13<br />
| https://heyzine.com/flip-book/d61eaa35c6.html<br />
|-<br />
| H2HC ED 14<br />
| https://heyzine.com/flip-book/2f8984c77b.html<br />
|-<br />
| H2HC ED 15<br />
| https://heyzine.com/flip-book/ec1d363b5e.html<br />
|-<br />
| H2HC ED 16<br />
| https://heyzine.com/flip-book/278b8ec88f.html<br />
|}<br />
<br />
<br />
= Outras revistas =<br />
<br />
{| class="wikitable" id="listaderevistas"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Enigma<br />
| Nacional<br />
| http://www.enigmajournal.org<br />
|-<br />
| Security and Privacy<br />
| Gringa<br />
| http://www.computer.org/portal/web/computingnow/securityandprivacy<br />
|-<br />
| Hack in the Box (hitb)<br />
| Gringa<br />
| http://magazine.hitb.org/hitb-magazine.html<br />
|-<br />
| Segurança Digital<br />
| Nacional<br />
| http://www.segurancadigital.info/<br />
|}<br />
<br />
= Outras Zines =<br />
<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Axur05<br />
| Nacional<br />
| https://area31.net.br/downloads/axur05/<br />
|-<br />
| Cogumelo Binário<br />
| Nacional<br />
| http://www.mentebinaria.com.br/zine/<br />
|-<br />
| H+<br />
| Gringa<br />
| http://hplusmagazine.com/<br />
|-<br />
| Spectrum<br />
| Gringa<br />
| http://spectrum.ieee.org/<br />
|-<br />
| Barata Eletrica (por motivos historicos)<br />
| Nacional<br />
| https://sites.google.com/site/barataeletricafanzine/<br />
|}<br />
<br />
= Slackbook =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackbook ptbr 1.0.2<br />
| https://heyzine.com/flip-book/088d62c79b.html<br />
|}<br />
<br />
<br />
= Slackzine =<br />
{| class="wikitable" id="slackzine"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackzine Ed. 1<br />
| https://heyzine.com/flip-book/2bda13017b.html<br />
|-<br />
| Slackzine Ed. 2<br />
| https://heyzine.com/flip-book/9012f0cbc6.html<br />
|-<br />
| Slackzine Ed. 2.5<br />
| https://heyzine.com/flip-book/8f1368f763.html<br />
|-<br />
| Slackzine Ed. 3<br />
| https://heyzine.com/flip-book/bd7e882914.html<br />
|-<br />
| Slackzine Ed. 3.5<br />
| https://heyzine.com/flip-book/19282049e0.html<br />
|-<br />
| Slackzine Ed. 4<br />
| https://heyzine.com/flip-book/8e111d531b.html<br />
|-<br />
| Slackzine Ed. 5<br />
| https://heyzine.com/flip-book/36bfe28844.html<br />
|-<br />
| Slackzine Ed. 5.5<br />
| https://heyzine.com/flip-book/1152ba2c20.html<br />
|-<br />
| Slackzine Ed. 6<br />
| https://heyzine.com/flip-book/77c5523e8b.html<br />
|-<br />
| Slackzine Ed. 7<br />
| https://heyzine.com/flip-book/69c1ac9414.html<br />
|-<br />
| Slackzine Ed. 8<br />
| https://heyzine.com/flip-book/0d9b41bee1.html<br />
|-<br />
| Slackzine Ed. 8.5<br />
| https://heyzine.com/flip-book/1219fc6937.html<br />
|-<br />
| Slackzine Ed. 9<br />
| https://heyzine.com/flip-book/37fe9ce092.html<br />
|-<br />
| Slackzine Ed. 9.5<br />
| https://heyzine.com/flip-book/f77d9e36b9.html<br />
|-<br />
| Slackzine Ed. 10<br />
| https://heyzine.com/flip-book/de68a4b384.html<br />
|-<br />
| Slackzine Ed. 10.5<br />
| https://heyzine.com/flip-book/9b96844636.html<br />
|-<br />
| Slackzine Ed. 11<br />
| https://heyzine.com/flip-book/9f19522f19.html<br />
|-<br />
| Slackzine Ed. 11.5<br />
| https://heyzine.com/flip-book/fee0431d9f.html<br />
|-<br />
| Slackzine Ed. 12<br />
| https://heyzine.com/flip-book/d738a232ac.html<br />
|-<br />
| Slackzine Ed. 12.5<br />
| https://heyzine.com/flip-book/0e110f7a35.html<br />
|-<br />
| Slackzine Ed. 13<br />
| https://heyzine.com/flip-book/381df9d1f2.html<br />
|-<br />
| Slackzine Ed. 14<br />
| https://heyzine.com/flip-book/6721541ae3.html<br />
|-<br />
| Slackzine Ed. 14.5<br />
| https://heyzine.com/flip-book/44a09ec77f.html<br />
|-<br />
| Slackzine Ed. 15<br />
| https://heyzine.com/flip-book/b83b9de9c8.html<br />
|-<br />
| Slackzine Ed. 16<br />
| https://heyzine.com/flip-book/599f5959e2.html<br />
|-<br />
| Slackzine Ed. 17<br />
| https://heyzine.com/flip-book/c09ea021de.html<br />
|-<br />
| Slackzine Ed. 18<br />
| https://heyzine.com/flip-book/ddd4a06610.html<br />
|}<br />
<br />
<br />
[[Categoria:KnowledgeBase]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Revistas_e_Zines&diff=5179Revistas e Zines2023-12-27T00:08:36Z<p>Coffnix: </p>
<hr />
<div>= Revista H2HC =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| H2HC ED 1<br />
| [https://heyzine.com/flip-book/3ed1a7dd6c.html]<br />
|-<br />
| H2HC ED 2<br />
| [https://heyzine.com/flip-book/990b2dde3a.html]<br />
|-<br />
| H2HC ED 3<br />
| [https://heyzine.com/flip-book/f90895ed11.html]<br />
|-<br />
| H2HC ED 4<br />
| [https://heyzine.com/flip-book/d42b788dd4.html]<br />
|-<br />
| H2HC ED 5<br />
| [https://heyzine.com/flip-book/3bd678616e.html]<br />
|-<br />
| H2HC ED 6<br />
| [https://heyzine.com/flip-book/21f2e0913c.html]<br />
|-<br />
| H2HC ED 7<br />
| [https://heyzine.com/flip-book/2c4de0a028.html]<br />
|-<br />
| H2HC ED 8<br />
| [https://heyzine.com/flip-book/1f1efcfb53.html]<br />
|-<br />
| H2HC ED 9<br />
| [https://heyzine.com/flip-book/f061052e3f.html]<br />
|-<br />
| H2HC ED 10<br />
| [https://heyzine.com/flip-book/733c9bad6a.html]<br />
|-<br />
| H2HC ED 11<br />
| [https://heyzine.com/flip-book/d3bd98f640.html]<br />
|-<br />
| H2HC ED 12<br />
| [https://heyzine.com/flip-book/db10b98595.html]<br />
|-<br />
| H2HC ED 13<br />
| [https://heyzine.com/flip-book/d61eaa35c6.html]<br />
|-<br />
| H2HC ED 14<br />
| [https://heyzine.com/flip-book/2f8984c77b.html]<br />
|-<br />
| H2HC ED 15<br />
| [https://heyzine.com/flip-book/ec1d363b5e.html]<br />
|-<br />
| H2HC ED 16<br />
| [https://heyzine.com/flip-book/278b8ec88f.html]<br />
|}<br />
<br />
<br />
= Outras revistas =<br />
<br />
{| class="wikitable" id="listaderevistas"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Enigma<br />
| Nacional<br />
| http://www.enigmajournal.org<br />
|-<br />
| Security and Privacy<br />
| Gringa<br />
| http://www.computer.org/portal/web/computingnow/securityandprivacy<br />
|-<br />
| Hack in the Box (hitb)<br />
| Gringa<br />
| http://magazine.hitb.org/hitb-magazine.html<br />
|-<br />
| Segurança Digital<br />
| Nacional<br />
| http://www.segurancadigital.info/<br />
|}<br />
<br />
= Outras Zines =<br />
<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Axur05<br />
| Nacional<br />
| https://area31.net.br/downloads/axur05/<br />
|-<br />
| Cogumelo Binário<br />
| Nacional<br />
| http://www.mentebinaria.com.br/zine/<br />
|-<br />
| H+<br />
| Gringa<br />
| http://hplusmagazine.com/<br />
|-<br />
| Spectrum<br />
| Gringa<br />
| http://spectrum.ieee.org/<br />
|-<br />
| Barata Eletrica (por motivos historicos)<br />
| Nacional<br />
| https://sites.google.com/site/barataeletricafanzine/<br />
|}<br />
<br />
= Slackbook =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackbook ptbr 1.0.2<br />
| https://heyzine.com/flip-book/088d62c79b.html<br />
|}<br />
<br />
<br />
= Slackzine =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackzine Ed. 1<br />
| https://heyzine.com/flip-book/2bda13017b.html<br />
|-<br />
| Slackzine Ed. 2<br />
| https://heyzine.com/flip-book/9012f0cbc6.html<br />
|-<br />
| Slackzine Ed. 2.5<br />
| https://heyzine.com/flip-book/8f1368f763.html<br />
|-<br />
| Slackzine Ed. 3<br />
| https://heyzine.com/flip-book/bd7e882914.html<br />
|-<br />
| Slackzine Ed. 3.5<br />
| https://heyzine.com/flip-book/19282049e0.html<br />
|-<br />
| Slackzine Ed. 4<br />
| https://heyzine.com/flip-book/8e111d531b.html<br />
|-<br />
| Slackzine Ed. 5<br />
| https://heyzine.com/flip-book/36bfe28844.html<br />
|-<br />
| Slackzine Ed. 5.5<br />
| https://heyzine.com/flip-book/1152ba2c20.html<br />
|-<br />
| Slackzine Ed. 6<br />
| https://heyzine.com/flip-book/77c5523e8b.html<br />
|-<br />
| Slackzine Ed. 7<br />
| https://heyzine.com/flip-book/69c1ac9414.html<br />
|-<br />
| Slackzine Ed. 8<br />
| https://heyzine.com/flip-book/0d9b41bee1.html<br />
|-<br />
| Slackzine Ed. 8.5<br />
| https://heyzine.com/flip-book/1219fc6937.html<br />
|-<br />
| Slackzine Ed. 9<br />
| https://heyzine.com/flip-book/37fe9ce092.html<br />
|-<br />
| Slackzine Ed. 9.5<br />
| https://heyzine.com/flip-book/f77d9e36b9.html<br />
|-<br />
| Slackzine Ed. 10<br />
| https://heyzine.com/flip-book/de68a4b384.html<br />
|-<br />
| Slackzine Ed. 10.5<br />
| https://heyzine.com/flip-book/9b96844636.html<br />
|-<br />
| Slackzine Ed. 11<br />
| https://heyzine.com/flip-book/9f19522f19.html<br />
|-<br />
| Slackzine Ed. 11.5<br />
| https://heyzine.com/flip-book/fee0431d9f.html<br />
|-<br />
| Slackzine Ed. 12<br />
| https://heyzine.com/flip-book/d738a232ac.html<br />
|-<br />
| Slackzine Ed. 12.5<br />
| https://heyzine.com/flip-book/0e110f7a35.html<br />
|-<br />
| Slackzine Ed. 13<br />
| https://heyzine.com/flip-book/381df9d1f2.html<br />
|-<br />
| Slackzine Ed. 14<br />
| https://heyzine.com/flip-book/6721541ae3.html<br />
|-<br />
| Slackzine Ed. 14.5<br />
| https://heyzine.com/flip-book/44a09ec77f.html<br />
|-<br />
| Slackzine Ed. 15<br />
| https://heyzine.com/flip-book/b83b9de9c8.html<br />
|-<br />
| Slackzine Ed. 16<br />
| https://heyzine.com/flip-book/599f5959e2.html<br />
|-<br />
| Slackzine Ed. 17<br />
| https://heyzine.com/flip-book/c09ea021de.html<br />
|-<br />
| Slackzine Ed. 18<br />
| https://heyzine.com/flip-book/ddd4a06610.html<br />
|}<br />
<br />
<br />
[[Categoria:KnowledgeBase]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Revistas_e_Zines&diff=5178Revistas e Zines2023-12-26T23:34:05Z<p>Coffnix: </p>
<hr />
<div>= Revistas =<br />
<br />
{| class="wikitable" id="listaderevistas"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| H2HC Magazine<br />
| Nacional<br />
| http://www.h2hc.com.br/revista<br />
|-<br />
| Enigma<br />
| Nacional<br />
| http://www.enigmajournal.org<br />
|-<br />
| Security and Privacy<br />
| Gringa<br />
| http://www.computer.org/portal/web/computingnow/securityandprivacy<br />
|-<br />
| Hack in the Box (hitb)<br />
| Gringa<br />
| http://magazine.hitb.org/hitb-magazine.html<br />
|-<br />
| Segurança Digital<br />
| Nacional<br />
| http://www.segurancadigital.info/<br />
|}<br />
<br />
= Zines =<br />
<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Nome<br />
! Origem<br />
! Website<br />
|-<br />
| Axur05<br />
| Nacional<br />
| https://area31.net.br/downloads/axur05/<br />
|-<br />
| Cogumelo Binário<br />
| Nacional<br />
| http://www.mentebinaria.com.br/zine/<br />
|-<br />
| H+<br />
| Gringa<br />
| http://hplusmagazine.com/<br />
|-<br />
| Spectrum<br />
| Gringa<br />
| http://spectrum.ieee.org/<br />
|-<br />
| Barata Eletrica (por motivos historicos)<br />
| Nacional<br />
| https://sites.google.com/site/barataeletricafanzine/<br />
|}<br />
<br />
= Slackbook =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackbook ptbr 1.0.2<br />
| https://heyzine.com/flip-book/088d62c79b.html<br />
|}<br />
<br />
<br />
= Slackzine =<br />
{| class="wikitable" id="listadezines"<br />
|-<br />
! Edição<br />
! Leitor online<br />
|-<br />
| Slackzine Ed. 1<br />
| https://heyzine.com/flip-book/2bda13017b.html<br />
|-<br />
| Slackzine Ed. 2<br />
| https://heyzine.com/flip-book/9012f0cbc6.html<br />
|-<br />
| Slackzine Ed. 2.5<br />
| https://heyzine.com/flip-book/8f1368f763.html<br />
|-<br />
| Slackzine Ed. 3<br />
| https://heyzine.com/flip-book/bd7e882914.html<br />
|-<br />
| Slackzine Ed. 3.5<br />
| https://heyzine.com/flip-book/19282049e0.html<br />
|-<br />
| Slackzine Ed. 4<br />
| https://heyzine.com/flip-book/8e111d531b.html<br />
|-<br />
| Slackzine Ed. 5<br />
| https://heyzine.com/flip-book/36bfe28844.html<br />
|-<br />
| Slackzine Ed. 5.5<br />
| https://heyzine.com/flip-book/1152ba2c20.html<br />
|-<br />
| Slackzine Ed. 6<br />
| https://heyzine.com/flip-book/77c5523e8b.html<br />
|-<br />
| Slackzine Ed. 7<br />
| https://heyzine.com/flip-book/69c1ac9414.html<br />
|-<br />
| Slackzine Ed. 8<br />
| https://heyzine.com/flip-book/0d9b41bee1.html<br />
|-<br />
| Slackzine Ed. 8.5<br />
| https://heyzine.com/flip-book/1219fc6937.html<br />
|-<br />
| Slackzine Ed. 9<br />
| https://heyzine.com/flip-book/37fe9ce092.html<br />
|-<br />
| Slackzine Ed. 9.5<br />
| https://heyzine.com/flip-book/f77d9e36b9.html<br />
|-<br />
| Slackzine Ed. 10<br />
| https://heyzine.com/flip-book/de68a4b384.html<br />
|-<br />
| Slackzine Ed. 10.5<br />
| https://heyzine.com/flip-book/9b96844636.html<br />
|-<br />
| Slackzine Ed. 11<br />
| https://heyzine.com/flip-book/9f19522f19.html<br />
|-<br />
| Slackzine Ed. 11.5<br />
| https://heyzine.com/flip-book/fee0431d9f.html<br />
|-<br />
| Slackzine Ed. 12<br />
| https://heyzine.com/flip-book/d738a232ac.html<br />
|-<br />
| Slackzine Ed. 12.5<br />
| https://heyzine.com/flip-book/0e110f7a35.html<br />
|-<br />
| Slackzine Ed. 13<br />
| https://heyzine.com/flip-book/381df9d1f2.html<br />
|-<br />
| Slackzine Ed. 14<br />
| https://heyzine.com/flip-book/6721541ae3.html<br />
|-<br />
| Slackzine Ed. 14.5<br />
| https://heyzine.com/flip-book/44a09ec77f.html<br />
|-<br />
| Slackzine Ed. 15<br />
| https://heyzine.com/flip-book/b83b9de9c8.html<br />
|-<br />
| Slackzine Ed. 16<br />
| https://heyzine.com/flip-book/599f5959e2.html<br />
|-<br />
| Slackzine Ed. 17<br />
| https://heyzine.com/flip-book/c09ea021de.html<br />
|-<br />
| Slackzine Ed. 18<br />
| https://heyzine.com/flip-book/ddd4a06610.html<br />
|}<br />
<br />
<br />
[[Categoria:KnowledgeBase]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Usu%C3%A1rio:KNZ&diff=5177Usuário:KNZ2023-12-11T15:30:16Z<p>Coffnix: Criou página com '180px| '''Nick:''' KNZ '''Membro desde:''' 10/12/2023 '''Indicado por:''' Zecafig '''Cidade:''' Campinas-SP Categoria:Membros'</p>
<hr />
<div>[[Image:Area31-icon.png|thumb|180px|]]<br />
<br />
'''Nick:''' KNZ<br />
<br />
'''Membro desde:''' 10/12/2023<br />
<br />
'''Indicado por:''' [[Usuário:Zecafig|Zecafig]]<br />
<br />
'''Cidade:''' Campinas-SP<br />
<br />
[[Categoria:Membros]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=P%C3%A1gina_principal&diff=5176Página principal2023-12-07T23:35:40Z<p>Coffnix: </p>
<hr />
<div>{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}<br />
__NOTOC__<br />
__NOEDITSECTION__<br />
<br />
[[Image:Area31 hackspace transp.png|center|500px|link=]]<br />
<br />
<br />
Antes de tudo, vamos definir alguns termos, para conversarmos na mesma língua?<br />
<br />
{{console|body=<br />
HACKER: Uma pessoa que tem prazer em ter uma compreensão íntima do funcionamento<br />
interno de um sistema, computadores e redes de computadores em particular.<br />
O termo é freqüentemente mal utilizado num contexto pejorativo, em que<br />
"cracker" seria o termo correto.<br />
}}<br />
fonte: [https://tools.ietf.org/html/rfc1392 RFC1392 (tools.ietf.org)]<br />
<br />
<br />
{{console|body=<br />
HACKERSPACE: Um lugar em que as pessoas com um interesse em computação ou tecnologia <br />
podem se reunir para trabalhar em projetos ao compartilhar idéias, equipamentos <br />
e conhecimento: nós vimos algumas pessoas em nosso hackerspace local tentarem <br />
remendar seu próprio controle remoto, por exemplo.<br />
}}<br />
fonte: [https://en.oxforddictionaries.com/definition/us/hackerspace oxforddictionaries.com]<br />
<br />
Para conhecer os outros Hackerspaces pelo mundo, visite a wiki [https://wiki.hackerspaces.org/w/index.php?title=Special:Ask&limit=500&offset=100&q=%5B%5BCategory%3AHackerspace%5D%5D&p=mainlabel%3DHackerspace%2Fformat%3Dbroadtable&po=%3F%3DHackerspace%23-%0A%3FCountry%0A%3FState%0A%3FCity%0A%3FWebsite%0A%3FDate+of+founding%0A%3FHackerspace+status%0A&sort=Country&order=asc&eq=no#search hackerspaces.org]<br />
<br />
<br />
Okay. Definidos os termos, vamos lá....<br />
<br />
= O que é o Área31? =<br />
<blockquote><br />
O Área31 é um Hackerspace fundado em 29/04/2013 na cidade de Belo Horizonte-MG.<br />
Além disso, o Área31 é uma organização privada que propicia a troca de conhecimento<br />
através de uma infraestrutura própria, para que entusiastas de tecnologia realizem <br />
projetos em diversas áreas, como cibernética, redes interplanetárias, telecomunicação, eletrônica, software, <br />
robótica, segurança, biohacking, computação quântica - ou o que mais a criatividade permitir.<br />
Também pode ser visto como um clube social ou uma maçonaria de ateus, sendo assim uma organização criada e mantida pelos membros fundadores. Os novos membros são aceitos mediante indicação de um membro do hackerspace. O Área31 possui pesquisas secretas, e somente algumas são divulgadas ao público pelo óbvio. Somente são aceitos "hackers de DNA" visto que é impossível treinar um ser humano comum para se tornar um hacker. Qualquer empresa, grupo ou organização que venda a idéia falsa de "criar hackers", seja mediante realização de cursos, treinamentos ou mesmo frequentando eventos ou outros hackerspaces, é mal vista pelos membros do Área31 Hackerspace.<br />
</blockquote><br />
<br />
<br />
= Quem pode participar? =<br />
{{warning|Somente hackers. Não aceitamos em nosso hackerspace Lammers ou Script Kiddies. ;)<br />
Para melhor gerenciamento do hackerspace, só são aceitos novos membros mediante indicação de pessoas associadas ao Área31 Hackerspace a mais de dois anos. Procure um membro caso queira entrar para a nossa família.<br />
}}<br />
<br />
<br />
= Princípios =<br />
<blockquote><br />
Sabemos que a palavra '''hacker''' tem uma conotação negativa hoje em dia, muito disso por causa de uma imprensa despreparada ou preguiçosa. Os membros do Área31 Hackerspace não aceitam essa conotação negativa e têm, entre seus objetivos o resgate da dignidade da expressão. Um hacker é, antes de tudo, uma pessoa interessada em explorar os limites da tecnologia.<br />
</blockquote><br />
<br />
<br />
<br />
= Ausência completa de códigos de conduta =<br />
<blockquote><br />
Em nosso hackerspace não toleramos crianças, apenas pessoas adultas. Por este motivo, '''ABOMINAMOS COMPLETAMENTE''' qualquer tipo de julgamento perante posturas visto que somos seres humanos pensantes e errantes. Se alguém o ofendeu resolva com suas próprias mãos, ou resolva sendo socialista e invocando justiça estatal, foda-se, não é problema nosso.<br />
</blockquote><br />
<br />
Se você é a favor de códigos de conduta, e veio aqui no Área31 procurar o "nosso código de conduta", esse vídeo aqui abaixo é o Sergio Malandro chamando você....<br />
<br />
<youtube width="640" height="360">DlP3FZbAXgI</youtube><br />
<br />
<br />
Encorajamos em nosso hackerspace este tipo de documento: <br />
<br />
https://github.com/area31/NCoC<br />
<br />
{{note|No Área31 NUNCA HAVERÁ NENHUM TIPO DE CULTURA WOKE! NUNCA TEREMOS CÓDIGOS DE CONDUTA! Caso se sinta ofendido dentro do hackerspace, sugerimos uso de facas, espadas, martelos, bastões, tacos de baseball ou mesmo ARMAS DE FOGO. Resolva seus problemas COMO HOMEM, estúpido!'''}}<br />
<br />
<br />
<br />
== Licença oficial ==<br />
Recomendamos a licença '''WTFPL''' (Do What the Fuck You Want to Public License) pois propriedade intelectual não existe.<br />
{{console|body=<br />
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE<br />
Version 2, December 2004<br />
<br />
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net><br />
<br />
Everyone is permitted to copy and distribute verbatim or modified<br />
copies of this license document, and changing it is allowed as long<br />
as the name is changed.<br />
<br />
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE<br />
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION<br />
<br />
0. You just DO WHAT THE FUCK YOU WANT TO.<br />
}}<br />
<br />
<br />
<br />
<br />
== Contato ==<br />
Dúvidas, entre em contato por e-mail:<br />
{{console|body=<br />
contato ${ARROBA} area31.net.br<br />
}}<br />
<br />
<center><br />
<h3><br />
Powered by: [[Image:Logo-vipnix-2020.png|200px|link=https://vipnix.com.br]] [[Image:Funtoo_logo.png|100px|link=https://www.funtoo.org]] </h3><br />
</center></div>Coffnixhttps://area31.net.br/wiki/index.php?title=MediaWiki:Sidebar&diff=5175MediaWiki:Sidebar2023-12-06T04:43:53Z<p>Coffnix: </p>
<hr />
<div>* Sobre o Área31<br />
** BLOG|Blog Oficial<br />
** Eventos|Eventos<br />
** Fale Conosco|Fale Conosco<br />
** Fornecedores|Fornecedores<br />
** Logos e temas|Logos e temas<br />
** Categoria:Membros Fundadores|Membros Fundadores<br />
** Categoria:Membros Honorários|Membros Honorários<br />
** Categoria:Membros|Membros<br />
** Parceiros|Parceiros<br />
** Área31 na Mídia|Reportagens e entrevistas para a imprensa<br />
** Repositório|Repositório GIT oficial<br />
** Revistas e Zines|Revistas e Zines<br />
* Armamentos<br />
** Como_se_tornar_um_CAC_para_obter_armas_de_fogo_legalmente_no_Brasil|Como se tornar um CAC para obter armas de fogo legalmente no Brasil<br />
** Solicitação_de_compra_de_armamentos_para_CAC|Solicitação de compra de armamentos para CAC<br />
** Como_adquirir_um_fuzil_legalmente_no_Brasil_sendo_CAC|Como adquirir um fuzil legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_espingarda_legalmente_no_Brasil_sendo_CAC|Como adquirir uma espingarda legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_pistola_legalmente_no_Brasil_sendo_CAC|Como adquirir uma pistola legalmente no Brasil sendo CAC<br />
** Como_comprar_munições_sendo_CAC|Como comprar munições sendo CAC<br />
** Vídeos_educativos_sobre_armas_de_fogo|Vídeos educativos sobre armas de fogo<br />
** Canais_de_armamentistas_recomendados_no_youtube|Canais de armamentistas recomendados no youtube<br />
** Orientações_e_fundamentações_legais_para_o_CAC_levar_consigo_em_auxílio_à_autoridade_policial|Orientações e fundamentações legais para o CAC levar consigo em auxílio à autoridade policial<br />
** (I)legalidade_da_prisão_do_atirador,_colecionador_ou_caçador_(CAC)|(I)legalidade da prisão do atirador, colecionador ou caçador (CAC)<br />
** Como_o_racismo_pautou_as_restrições_de_armas_nos_Estados_Unidos|Como o racismo pautou as restrições de armas nos Estados Unidos<br />
* Crypto Docs<br />
** O que é um Cypherpunk|O que é um Cypherpunk<br />
** Manifesto Criptoanarquista|Manifesto Criptoanarquista<br />
** Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks|Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks<br />
** Quem é Ralph Merkle|Quem é Ralph Merkle<br />
** Quem é David Chaum|Quem é David Chaum<br />
** Quem é Charlie Lee|Quem é Charlie Lee<br />
** Quem é W Scott Stornetta|Quem é W Scott Stornetta<br />
** Quem é Wladimir Van Der Laan|Quem é Wladimir Van Der Laan<br />
** Quem é o Zooko Wilcox|Quem é o Zooko Wilcox<br />
** Quem é Timothy May|Quem é Timothy May<br />
** Quem é Martin Hellman|Quem é Martin Hellman<br />
** Quem é Luke Dashjr|Quem é Luke Dashjr<br />
** Quem é Nick Szabo|Quem é Nick Szabo<br />
** Quem é Satoshi Nakamoto|Quem é Satoshi Nakamoto<br />
** O que é criptografia|O que é criptografia<br />
** O que é criptografia assimétrica|O que é criptografia assimétrica<br />
** O que é um hash|O que é um hash<br />
** O que é HashCash|O que é HashCash<br />
** Qual é o algoritmo de assinatura ECDSA|Qual é o algoritmo de assinatura ECDSA<br />
** O que é Cryptojacking|O que é Cryptojacking<br />
** O que é um Replay Attack|O que é um Replay Attack<br />
** O que é um ataque Sybil|O que é um ataque Sybil<br />
** Len Sassaman e Satoshi: uma história Cypherpunk|Len Sassaman e Satoshi: uma história Cypherpunk<br />
* Blockchain Docs<br />
** O que é um razão distribuído (razão)|O que é um razão distribuído (razão)<br />
**O que é a Cadeia de Blocos (Blockchain)|O que é a Cadeia de Blocos (Blockchain)<br />
** Como funciona a Blockchain- Cadeia de Blocos|Como funciona a Blockchain- Cadeia de Blocos<br />
** Qual é a altura do bloco|Qual é a altura do bloco<br />
** Qual é a recompensa em bloco|Qual é a recompensa em bloco<br />
** O que é o Bloco de Gênesis|O que é o Bloco de Gênesis<br />
** O que é uma árvore Merkle|O que é uma árvore Merkle<br />
** O que é uma falha bizantina|O que é uma falha bizantina<br />
** O que é tolerância a falhas bizantinas (BFT)|O que é tolerância a falhas bizantinas (BFT)<br />
** Glossário de contratos inteligentes de Nick Szabo|Glossário de contratos inteligentes de Nick Szabo<br />
* Bitcoin Docs<br />
** Raízes e motivos da criação do Bitcoin|Raízes e motivos da criação do Bitcoin<br />
** O que é uma criptomoeda|O que é uma criptomoeda<br />
** Qual é o consenso em criptomoedas|Qual é o consenso em criptomoedas<br />
** O que é Bitcoin e como funciona|O que é Bitcoin e como funciona<br />
** O que é uma unidade de conta em Bitcoin|O que é uma unidade de conta em Bitcoin<br />
** Quantos bitcoins realmente existem|Quantos bitcoins realmente existem<br />
** O que é Bitcoin Core|O que é Bitcoin Core<br />
** Bitcoin Core Wallet, tudo o que você precisa saber|Bitcoin Core Wallet, tudo o que você precisa saber<br />
** O que é mempool no Bitcoin|O que é mempool no Bitcoin<br />
** O que é uma transação com base em moeda|O que é uma transação com base em moeda<br />
** Transações Bitcoin, como funcionam|Transações Bitcoin, como funcionam<br />
** O que é uma transação de poeira|O que é uma transação de poeira<br />
** O que é mineração de criptomoeda|O que é mineração de criptomoeda<br />
** O que são os mineradores ASIC|O que são os mineradores ASIC<br />
** Mineração de bitcoins, o que é e como funciona|Mineração de bitcoins, o que é e como funciona<br />
** Mineração de Bitcoin Como você cria um bloco|Mineração de Bitcoin Como você cria um bloco<br />
** Qual é a dificuldade de mineração em Bitcoin|Qual é a dificuldade de mineração em Bitcoin<br />
** O que é uma pool de mineração de criptomoedas|O que é uma pool de mineração de criptomoedas<br />
** O que é Crypto Wars e como você definiu o mundo criptográfico|O que é Crypto Wars e como você definiu o mundo criptográfico<br />
** Satoshi Nakamoto criou a Monero|Satoshi Nakamoto criou a Monero<br />
* Crypto Projects<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** NN-CFA|NN-CFA (Nothing New Crypto for All)<br />
** Armazene seus bitcoins de forma segura em uma carteira local|Armazene seus bitcoins de forma segura em uma carteira local<br />
** Aprenda_a_minerar_criptomoedas_via_CPU_e_GPU_no_Linux|Aprenda a minerar criptomoedas via CPU e GPU no Linux<br />
** Atomic Swap - Bitcoin (BTC) vs Monero (XMR)|Atomic Swap - Bitcoin (BTC) vs Monero (XMR)<br />
** Bots_recomendados_para_cryptos|Bots de redes sociais recomendados para cryptos<br />
** Crie seu próprio robô para trade automático de crypto moedas|Crie seu próprio robô para trade automático de crypto moedas<br />
* Hacking Projects<br />
** Configure seu próprio proxy sock5 via openvpn|Proxy sock5 via openvpn<br />
** Biohacking|Biohacking<br />
** DFSS USBkiller|DFSS USBkiller<br />
** Hackaratê Coding Dojo|Hackaratê Coding Dojo<br />
** Hacking Apple TV|Hacking Apple TV<br />
** LiveCD_oficial|LiveCD oficial<br />
** ONION PI - REV BR|OnionPi Rev BR<br />
** Redes_DTN|Redes DTN<br />
** Router RTA04N Backdoor|Router RTA04N Backdoor<br />
** Storage_criptografado_em_roteador_residencial|Storage criptografado em roteador residencial<br />
* Maker Projects<br />
** Categoria:Impressoras_3D|Impressora 3D<br />
** Linux on the BeagleBone|Linux on the BeagleBone<br />
** Linux on the Cubieboard A20|Linux on the Cubieboard A20<br />
** Linux on the Raspberry pi|Linux on the Raspberry Pi<br />
** Raspberry Pi Lapdock - Raspdock|Raspberry Pi Lapdock<br />
** MSP430_-_Texas_Instrument|MSP430 - Texas Instrument<br />
** FabScan - Scanner 3D|Scanner 3D<br />
* Artigos<br />
** Bio + Hacking = Ética Hacker aplicada a biologia|Bio + Hacking = Ética Hacker aplicada a biologia<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** HackForge|HackForge - Boas práticas de defesa (Linux)<br />
** Como_fazer_perguntas_inteligentes|Como fazer perguntas inteligentes<br />
** Funtoo_Linux_vs_Gentoo_Linux_-_Diferenças_técnicas,_estruturais_e_filosóficas|Funtoo Linux vs Gentoo Linux - Diferenças técnicas, estruturais e filosóficas<br />
** Hacktivismo|Hacktivismo<br />
** Heartbleed para não técnicos|Heartbleed para não técnicos<br />
** Manifesto_Hacker|Manifesto Hacker<br />
** O_COMPUTADOR_e_a_constituição_Algocrata|O computador e a constituição Algocrata<br />
** The_Extinction_of_Hackers|The Extinction of Hackers<br />
** Money for Nothing - The recent hullabaloo over NFTs|Money for Nothing - The recent hullabaloo over NFTs<br />
** Rootfs_criptografado_com_LUKS_usando_LVM| Rootfs criptografado com LUKS usando LVM (Linux)<br />
** Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|Desbloqueio de LUKS com um dispositivo USB no Boot<br />
** ZFS_com_DKMS_no_OpenSUSE|ZFS com DKMS no OpenSUSE<br />
** ZFS_on_LUKS|ZFS on LUKS<br />
* IA<br />
** Faça_seu_próprio_GPT_offline_e_privado|Faça seu próprio GPT offline e privado<br />
* Ajuda<br />
** Como_escrever_artigos_na_wiki|Como escrever artigos na wiki<br />
** Special:Upload|Faça Upload de imagens<br />
** Especial:Categorias|Ver todas as categorias<br />
** Especial:Todas_as_páginas|Ver todos os artigos<br />
** recentchanges-url|Ver mudanças recentes<br />
** randompage-url|Ver páginas aleatórias<br />
* navigation<br />
** Categoria:Humor|Humor<br />
* SEARCH<br />
* TOOLBOX</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5174Faça seu próprio GPT offline e privado2023-12-06T03:49:27Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Utilizar o modelo de linguagem h2ogpt na própria GPU é uma decisão estratégica que coloca a segurança cibernética como pilar central. Ao manter o processamento de dados confinado ao seu hardware, você elimina a vulnerabilidade associada à transmissão de dados pela internet, um ponto crítico onde ocorrem frequentemente interceptações e vazamentos. Essa abordagem assegura uma camada robusta de privacidade e segurança, tornando-se essencial em um cenário onde ameaças digitais estão constantemente evoluindo.<br />
<br />
Além de reforçar a segurança, essa escolha traz benefícios significativos em termos de desempenho e independência. As GPUs proporcionam uma interação rápida e eficiente com o modelo h2ogpt, garantindo respostas ágeis. Operar offline também significa autonomia da internet, permitindo a continuidade do trabalho mesmo em situações de falhas de conexão ou em locais remotos. Em resumo, a adoção do h2ogpt em modo offline não é apenas uma medida de proteção cibernética, mas também uma estratégia para melhorar a performance e manter o controle total sobre a infraestrutura de inteligência artificial.<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:<br />
<br />
<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]] [[Image:gadsden-gpu.gif|600px]]<br />
<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso queira executar via shell script:<br />
{{file|name=run-gpt.sh|lang=bash|body=<br />
#!/bin/bash<br />
eval "$(conda shell.bash hook)"<br />
conda activate h2ogpt<br />
cd /opt/h2ogpt/<br />
python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
<br />
= Use via CLI com python =<br />
Crie o arquivo de teste:<br />
{{file|name=test.py|lang=python|body=<br />
import os<br />
import ast<br />
from gradio_client import Client<br />
<br />
os.environ['HOST'] = 'http://localhost:7860'<br />
<br />
client = Client(os.getenv('HOST'))<br />
<br />
# Enviando uma pergunta para o h2oGPT<br />
kwargs = dict(instruction_nochat='Who are you?')<br />
res = client.predict(str(dict(kwargs)), api_name='/submit_nochat_api')<br />
<br />
# Processando a resposta<br />
response = ast.literal_eval(res)['response']<br />
<br />
# Imprimindo a resposta para diagnóstico<br />
print("Resposta recebida:", response)<br />
<br />
# Verificação da resposta<br />
assert 'H2O.ai' in response<br />
}}<br />
<br />
Execute o teste, deve retornar algo do tipo:<br />
{{console|body=<br />
Loaded as API: http://localhost:7860/ ✔<br />
Resposta recebida: I am a language model trained by H2O.ai to provide helpful and informative answers to your questions.<br />
}}<br />
<br />
<br />
Agora crie o código para consultas do prompt via CLI:<br />
<br />
{{file|name=prompt.py|lang=python|body=<br />
import os<br />
import ast<br />
import sys<br />
from gradio_client import Client<br />
<br />
# Verificando se algum argumento foi passado<br />
if len(sys.argv) < 2:<br />
print("Por favor, forneça uma pergunta como argumento.")<br />
sys.exit(1)<br />
<br />
# Concatenando todos os argumentos para formar a pergunta<br />
pergunta = ' '.join(sys.argv[1:])<br />
<br />
os.environ['HOST'] = 'http://localhost:7860'<br />
<br />
client = Client(os.getenv('HOST'))<br />
<br />
# Enviando a pergunta para o h2oGPT<br />
kwargs = dict(instruction_nochat=pergunta)<br />
res = client.predict(str(dict(kwargs)), api_name='/submit_nochat_api')<br />
<br />
# Processando a resposta<br />
response = ast.literal_eval(res)['response']<br />
<br />
# Imprimindo a resposta<br />
print("Resposta recebida:", response)<br />
}}<br />
<br />
Faça uma pergunta:<br />
{{console|body=<br />
$ ##i## python3 prompt.py tell me about guns<br />
}}<br />
<br />
Deve retornar algo tipo:<br />
{{console|body=<br />
Loaded as API: http://localhost:7860/ ✔<br />
Resposta recebida: Guns are used to kill people.<br />
}}<br />
<br />
= Resposta por audio =<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r ./reqs_optional/requirements_optional_langchain.txt<br />
}}<br />
<br />
Execute com suporte a comando de voz via web:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True --max_seq_len=2048 --chatbot_role="Female AI Assistant" --speaker="SLT (female)"<br />
}}<br />
<br />
Abra a tela web e faça perguntas, será respondido com audio.<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5173Faça seu próprio GPT offline e privado2023-12-06T02:11:14Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Utilizar o modelo de linguagem h2ogpt na própria GPU é uma decisão estratégica que coloca a segurança cibernética como pilar central. Ao manter o processamento de dados confinado ao seu hardware, você elimina a vulnerabilidade associada à transmissão de dados pela internet, um ponto crítico onde ocorrem frequentemente interceptações e vazamentos. Essa abordagem assegura uma camada robusta de privacidade e segurança, tornando-se essencial em um cenário onde ameaças digitais estão constantemente evoluindo.<br />
<br />
Além de reforçar a segurança, essa escolha traz benefícios significativos em termos de desempenho e independência. As GPUs proporcionam uma interação rápida e eficiente com o modelo h2ogpt, garantindo respostas ágeis. Operar offline também significa autonomia da internet, permitindo a continuidade do trabalho mesmo em situações de falhas de conexão ou em locais remotos. Em resumo, a adoção do h2ogpt em modo offline não é apenas uma medida de proteção cibernética, mas também uma estratégia para melhorar a performance e manter o controle total sobre a infraestrutura de inteligência artificial.<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:<br />
<br />
<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]] [[Image:gadsden-gpu.gif|600px]]<br />
<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso queira executar via shell script:<br />
{{file|name=run-gpt.sh|lang=bash|body=<br />
#!/bin/bash<br />
eval "$(conda shell.bash hook)"<br />
conda activate h2ogpt<br />
cd /opt/h2ogpt/<br />
python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
<br />
= Use via CLI com python =<br />
Crie o arquivo de teste:<br />
{{file|name=test.py|lang=python|body=<br />
import os<br />
import ast<br />
from gradio_client import Client<br />
<br />
os.environ['HOST'] = 'http://localhost:7860'<br />
<br />
client = Client(os.getenv('HOST'))<br />
<br />
# Enviando uma pergunta para o h2oGPT<br />
kwargs = dict(instruction_nochat='Who are you?')<br />
res = client.predict(str(dict(kwargs)), api_name='/submit_nochat_api')<br />
<br />
# Processando a resposta<br />
response = ast.literal_eval(res)['response']<br />
<br />
# Imprimindo a resposta para diagnóstico<br />
print("Resposta recebida:", response)<br />
<br />
# Verificação da resposta<br />
assert 'H2O.ai' in response<br />
}}<br />
<br />
Execute o teste, deve retornar algo do tipo:<br />
{{console|body=<br />
Loaded as API: http://localhost:7860/ ✔<br />
Resposta recebida: I am a language model trained by H2O.ai to provide helpful and informative answers to your questions.<br />
}}<br />
<br />
<br />
Agora crie o código para consultas do prompt via CLI:<br />
<br />
{{file|name=prompt.py|lang=python|body=<br />
import os<br />
import ast<br />
import sys<br />
from gradio_client import Client<br />
<br />
# Verificando se algum argumento foi passado<br />
if len(sys.argv) < 2:<br />
print("Por favor, forneça uma pergunta como argumento.")<br />
sys.exit(1)<br />
<br />
# Concatenando todos os argumentos para formar a pergunta<br />
pergunta = ' '.join(sys.argv[1:])<br />
<br />
os.environ['HOST'] = 'http://localhost:7860'<br />
<br />
client = Client(os.getenv('HOST'))<br />
<br />
# Enviando a pergunta para o h2oGPT<br />
kwargs = dict(instruction_nochat=pergunta)<br />
res = client.predict(str(dict(kwargs)), api_name='/submit_nochat_api')<br />
<br />
# Processando a resposta<br />
response = ast.literal_eval(res)['response']<br />
<br />
# Imprimindo a resposta<br />
print("Resposta recebida:", response)<br />
}}<br />
<br />
Faça uma pergunta:<br />
{{console|body=<br />
$ ##i## python3 prompt.py tell me about guns<br />
}}<br />
<br />
Deve retornar algo tipo:<br />
{{console|body=<br />
Loaded as API: http://localhost:7860/ ✔<br />
Resposta recebida: Guns are used to kill people.<br />
}}<br />
<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5172Faça seu próprio GPT offline e privado2023-12-06T01:19:10Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Utilizar o modelo de linguagem h2ogpt na própria GPU é uma decisão estratégica que coloca a segurança cibernética como pilar central. Ao manter o processamento de dados confinado ao seu hardware, você elimina a vulnerabilidade associada à transmissão de dados pela internet, um ponto crítico onde ocorrem frequentemente interceptações e vazamentos. Essa abordagem assegura uma camada robusta de privacidade e segurança, tornando-se essencial em um cenário onde ameaças digitais estão constantemente evoluindo.<br />
<br />
Além de reforçar a segurança, essa escolha traz benefícios significativos em termos de desempenho e independência. As GPUs proporcionam uma interação rápida e eficiente com o modelo h2ogpt, garantindo respostas ágeis. Operar offline também significa autonomia da internet, permitindo a continuidade do trabalho mesmo em situações de falhas de conexão ou em locais remotos. Em resumo, a adoção do h2ogpt em modo offline não é apenas uma medida de proteção cibernética, mas também uma estratégia para melhorar a performance e manter o controle total sobre a infraestrutura de inteligência artificial.<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:<br />
<br />
<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]] [[Image:gadsden-gpu.gif|600px]]<br />
<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso queira executar via shell script:<br />
{{file|name=run-gpt.sh|lang=bash|body=<br />
#!/bin/bash<br />
eval "$(conda shell.bash hook)"<br />
conda activate h2ogpt<br />
cd /opt/h2ogpt/<br />
python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
<br />
<br />
<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5171Faça seu próprio GPT offline e privado2023-12-06T01:18:16Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Utilizar o modelo de linguagem h2ogpt na própria GPU é uma decisão estratégica que coloca a segurança cibernética como pilar central. Ao manter o processamento de dados confinado ao seu hardware, você elimina a vulnerabilidade associada à transmissão de dados pela internet, um ponto crítico onde ocorrem frequentemente interceptações e vazamentos. Essa abordagem assegura uma camada robusta de privacidade e segurança, tornando-se essencial em um cenário onde ameaças digitais estão constantemente evoluindo.<br />
<br />
Além de reforçar a segurança, essa escolha traz benefícios significativos em termos de desempenho e independência. As GPUs proporcionam uma interação rápida e eficiente com o modelo h2ogpt, garantindo respostas ágeis. Operar offline também significa autonomia da internet, permitindo a continuidade do trabalho mesmo em situações de falhas de conexão ou em locais remotos. Em resumo, a adoção do h2ogpt em modo offline não é apenas uma medida de proteção cibernética, mas também uma estratégia para melhorar a performance e manter o controle total sobre a infraestrutura de inteligência artificial.<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:<br />
<br />
<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]] [[Image:gadsden-gpu.gif|600px]]<br />
<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
<br />
Caso queira executar via shell script:<br />
{{file|name=run-gpt.sh|lang=bash|body=<br />
#!/bin/bash<br />
eval "$(conda shell.bash hook)"<br />
conda activate h2ogpt<br />
cd /opt/h2ogpt/<br />
python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5170Faça seu próprio GPT offline e privado2023-12-06T00:22:21Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Utilizar o modelo de linguagem h2ogpt na própria GPU é uma decisão estratégica que coloca a segurança cibernética como pilar central. Ao manter o processamento de dados confinado ao seu hardware, você elimina a vulnerabilidade associada à transmissão de dados pela internet, um ponto crítico onde ocorrem frequentemente interceptações e vazamentos. Essa abordagem assegura uma camada robusta de privacidade e segurança, tornando-se essencial em um cenário onde ameaças digitais estão constantemente evoluindo.<br />
<br />
Além de reforçar a segurança, essa escolha traz benefícios significativos em termos de desempenho e independência. As GPUs proporcionam uma interação rápida e eficiente com o modelo h2ogpt, garantindo respostas ágeis. Operar offline também significa autonomia da internet, permitindo a continuidade do trabalho mesmo em situações de falhas de conexão ou em locais remotos. Em resumo, a adoção do h2ogpt em modo offline não é apenas uma medida de proteção cibernética, mas também uma estratégia para melhorar a performance e manter o controle total sobre a infraestrutura de inteligência artificial.<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:<br />
<br />
<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]] [[Image:gadsden-gpu.gif|600px]]<br />
<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5169Faça seu próprio GPT offline e privado2023-12-05T23:56:47Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.<br />
<br />
Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.<br />
<br />
E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.<br />
<br />
Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.<br />
<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:<br />
<br />
<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]] [[Image:gadsden-gpu.gif|600px]]<br />
<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Gadsden-gpu.gif&diff=5168Arquivo:Gadsden-gpu.gif2023-12-05T23:54:46Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5167Faça seu próprio GPT offline e privado2023-12-05T23:10:55Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.<br />
<br />
Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.<br />
<br />
E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.<br />
<br />
Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.<br />
<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
[[Image:Aorus3070.png|400px]]<br />
[[Image:Pc-ancap-rtx3070.jpeg|400px]]<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Pc-ancap-rtx3070.jpeg&diff=5166Arquivo:Pc-ancap-rtx3070.jpeg2023-12-05T23:10:02Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5165Faça seu próprio GPT offline e privado2023-12-05T22:46:11Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.<br />
<br />
Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.<br />
<br />
E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.<br />
<br />
Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.<br />
<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
[[Image:Aorus3070.png|400px]]<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
$ ##i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
$ ##i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
$ ##i## conda create --name=h2ogpt python=3.10<br />
$ ##i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
$ ##i## git clone https://github.com/h2oai/h2ogpt.git<br />
$ ##i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
$ ##i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
$ ##i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
$ ##i## GPLOK=1 bash docs/linux_install.sh<br />
$ ##i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:<br />
{{console|body=<br />
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF<br />
}}<br />
<br />
Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:<br />
<br />
{{console|body=<br />
$ ##i## export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'<br />
$ ##i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
$ ##i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
$ ##i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5164Faça seu próprio GPT offline e privado2023-12-05T22:19:10Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.<br />
<br />
Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.<br />
<br />
E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.<br />
<br />
Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.<br />
<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
[[Image:Aorus3070.png|400px]]<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
###i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
###i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
###i## conda create --name=h2ogpt python=3.10<br />
###i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
###i## git clone https://github.com/h2oai/h2ogpt.git<br />
###i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
###i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
###i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
###i## GPLOK=1 bash docs/linux_install.sh<br />
###i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
###i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
###i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web2.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:H2ogpt-web2.png&diff=5163Arquivo:H2ogpt-web2.png2023-12-05T22:18:57Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:H2ogpt-install-model.png&diff=5161Arquivo:H2ogpt-install-model.png2023-12-05T22:15:03Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5160Faça seu próprio GPT offline e privado2023-12-05T22:14:37Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.<br />
<br />
Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.<br />
<br />
E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.<br />
<br />
Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.<br />
<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
[[Image:Aorus3070.png|400px]]<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
###i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
###i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
###i## conda create --name=h2ogpt python=3.10<br />
###i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
###i## git clone https://github.com/h2oai/h2ogpt.git<br />
###i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
###i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
###i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
###i## GPLOK=1 bash docs/linux_install.sh<br />
###i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.png|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
###i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
###i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Fa%C3%A7a_seu_pr%C3%B3prio_GPT_offline_e_privado&diff=5159Faça seu próprio GPT offline e privado2023-12-05T22:11:15Z<p>Coffnix: Criou página com 'Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda. Autor: * Coffnix __TOC__ = Motivo = Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso...'</p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
__TOC__<br />
<br />
= Motivo =<br />
Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.<br />
<br />
Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.<br />
<br />
E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.<br />
<br />
Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.<br />
<br />
Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE com GPU nvidia modelo '''AORUS GeForce RTX™ 3070 MASTER 8G''', mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
[[Image:Aorus3070.png|400px]]<br />
<br />
= Procedimento =<br />
==Instale o anaconda==<br />
Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/<br />
{{console|body=<br />
###i## wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
###i## bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh<br />
}}<br />
<br />
Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:<br />
{{console|body=<br />
###i## conda create --name=h2ogpt python=3.10<br />
###i## conda activate h2ogpt<br />
}}<br />
<br />
== Instale o h2oGPT ==<br />
Clone o repo oficial do h2ogpt:<br />
{{console|body=<br />
###i## git clone https://github.com/h2oai/h2ogpt.git<br />
###i## cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y<br />
###i## export CUDA_HOME=$CONDA_PREFIX <br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
###i## pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123<br />
###i## GPLOK=1 bash docs/linux_install.sh<br />
###i## pip install --upgrade urllib3 botocore<br />
}}<br />
<br />
= Execute o h2oGPT =<br />
Baixe um modelo para testes iniciais:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot<br />
}}<br />
[[Image:H2ogpt-install-model.jpg|800px]]<br />
<br />
<br />
Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True<br />
}}<br />
[[Image:H2ogpt-run-model.jpg|800px]]<br />
<br />
<br />
Caso sua GPU tenha mais que 8GB de vram:<br />
{{console|body=<br />
###i## python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True<br />
}}<br />
<br />
<br />
Verifique o uso da GPU:<br />
{{console|body=<br />
###i## nvidia-smi<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop.jpg|800px]]<br />
<br />
{{console|body=<br />
###i## nvtop<br />
}}<br />
<br />
[[Image:H2ogpt-nvtop-smi.png|800px]]<br />
<br />
Acesse via web:<br />
<br />
[[Image:H2ogpt-web.png|800px]]<br />
<br />
Mais infos:<br />
<br />
https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md<br />
<br />
https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks<br />
<br />
https://arxiv.org/abs/2306.05443<br />
<br />
https://github.com/h2oai/h2ogpt<br />
<br />
https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey<br />
<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:H2ogpt-nvtop-smi.png&diff=5157Arquivo:H2ogpt-nvtop-smi.png2023-12-05T22:09:39Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:H2ogpt-nvtop.jpg&diff=5156Arquivo:H2ogpt-nvtop.jpg2023-12-05T22:07:19Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:H2ogpt-run-model.jpg&diff=5155Arquivo:H2ogpt-run-model.jpg2023-12-05T22:05:59Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=Arquivo:Aorus3070.png&diff=5153Arquivo:Aorus3070.png2023-12-05T22:00:40Z<p>Coffnix: </p>
<hr />
<div></div>Coffnixhttps://area31.net.br/wiki/index.php?title=MediaWiki:Sidebar&diff=5152MediaWiki:Sidebar2023-12-05T14:49:29Z<p>Coffnix: </p>
<hr />
<div>* Sobre o Área31<br />
** BLOG|Blog Oficial<br />
** Eventos|Eventos<br />
** Fale Conosco|Fale Conosco<br />
** Fornecedores|Fornecedores<br />
** Logos e temas|Logos e temas<br />
** Categoria:Membros Fundadores|Membros Fundadores<br />
** Categoria:Membros Honorários|Membros Honorários<br />
** Categoria:Membros|Membros<br />
** Parceiros|Parceiros<br />
** Área31 na Mídia|Reportagens e entrevistas para a imprensa<br />
** Repositório|Repositório GIT oficial<br />
** Revistas e Zines|Revistas e Zines<br />
* Armamentos<br />
** Como_se_tornar_um_CAC_para_obter_armas_de_fogo_legalmente_no_Brasil|Como se tornar um CAC para obter armas de fogo legalmente no Brasil<br />
** Solicitação_de_compra_de_armamentos_para_CAC|Solicitação de compra de armamentos para CAC<br />
** Como_adquirir_um_fuzil_legalmente_no_Brasil_sendo_CAC|Como adquirir um fuzil legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_espingarda_legalmente_no_Brasil_sendo_CAC|Como adquirir uma espingarda legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_pistola_legalmente_no_Brasil_sendo_CAC|Como adquirir uma pistola legalmente no Brasil sendo CAC<br />
** Como_comprar_munições_sendo_CAC|Como comprar munições sendo CAC<br />
** Vídeos_educativos_sobre_armas_de_fogo|Vídeos educativos sobre armas de fogo<br />
** Canais_de_armamentistas_recomendados_no_youtube|Canais de armamentistas recomendados no youtube<br />
** Orientações_e_fundamentações_legais_para_o_CAC_levar_consigo_em_auxílio_à_autoridade_policial|Orientações e fundamentações legais para o CAC levar consigo em auxílio à autoridade policial<br />
** (I)legalidade_da_prisão_do_atirador,_colecionador_ou_caçador_(CAC)|(I)legalidade da prisão do atirador, colecionador ou caçador (CAC)<br />
** Como_o_racismo_pautou_as_restrições_de_armas_nos_Estados_Unidos|Como o racismo pautou as restrições de armas nos Estados Unidos<br />
* Crypto Docs<br />
** O que é um Cypherpunk|O que é um Cypherpunk<br />
** Manifesto Criptoanarquista|Manifesto Criptoanarquista<br />
** Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks|Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks<br />
** Quem é Ralph Merkle|Quem é Ralph Merkle<br />
** Quem é David Chaum|Quem é David Chaum<br />
** Quem é Charlie Lee|Quem é Charlie Lee<br />
** Quem é W Scott Stornetta|Quem é W Scott Stornetta<br />
** Quem é Wladimir Van Der Laan|Quem é Wladimir Van Der Laan<br />
** Quem é o Zooko Wilcox|Quem é o Zooko Wilcox<br />
** Quem é Timothy May|Quem é Timothy May<br />
** Quem é Martin Hellman|Quem é Martin Hellman<br />
** Quem é Luke Dashjr|Quem é Luke Dashjr<br />
** Quem é Nick Szabo|Quem é Nick Szabo<br />
** Quem é Satoshi Nakamoto|Quem é Satoshi Nakamoto<br />
** O que é criptografia|O que é criptografia<br />
** O que é criptografia assimétrica|O que é criptografia assimétrica<br />
** O que é um hash|O que é um hash<br />
** O que é HashCash|O que é HashCash<br />
** Qual é o algoritmo de assinatura ECDSA|Qual é o algoritmo de assinatura ECDSA<br />
** O que é Cryptojacking|O que é Cryptojacking<br />
** O que é um Replay Attack|O que é um Replay Attack<br />
** O que é um ataque Sybil|O que é um ataque Sybil<br />
** Len Sassaman e Satoshi: uma história Cypherpunk|Len Sassaman e Satoshi: uma história Cypherpunk<br />
* Blockchain Docs<br />
** O que é um razão distribuído (razão)|O que é um razão distribuído (razão)<br />
**O que é a Cadeia de Blocos (Blockchain)|O que é a Cadeia de Blocos (Blockchain)<br />
** Como funciona a Blockchain- Cadeia de Blocos|Como funciona a Blockchain- Cadeia de Blocos<br />
** Qual é a altura do bloco|Qual é a altura do bloco<br />
** Qual é a recompensa em bloco|Qual é a recompensa em bloco<br />
** O que é o Bloco de Gênesis|O que é o Bloco de Gênesis<br />
** O que é uma árvore Merkle|O que é uma árvore Merkle<br />
** O que é uma falha bizantina|O que é uma falha bizantina<br />
** O que é tolerância a falhas bizantinas (BFT)|O que é tolerância a falhas bizantinas (BFT)<br />
** Glossário de contratos inteligentes de Nick Szabo|Glossário de contratos inteligentes de Nick Szabo<br />
* Bitcoin Docs<br />
** Raízes e motivos da criação do Bitcoin|Raízes e motivos da criação do Bitcoin<br />
** O que é uma criptomoeda|O que é uma criptomoeda<br />
** Qual é o consenso em criptomoedas|Qual é o consenso em criptomoedas<br />
** O que é Bitcoin e como funciona|O que é Bitcoin e como funciona<br />
** O que é uma unidade de conta em Bitcoin|O que é uma unidade de conta em Bitcoin<br />
** Quantos bitcoins realmente existem|Quantos bitcoins realmente existem<br />
** O que é Bitcoin Core|O que é Bitcoin Core<br />
** Bitcoin Core Wallet, tudo o que você precisa saber|Bitcoin Core Wallet, tudo o que você precisa saber<br />
** O que é mempool no Bitcoin|O que é mempool no Bitcoin<br />
** O que é uma transação com base em moeda|O que é uma transação com base em moeda<br />
** Transações Bitcoin, como funcionam|Transações Bitcoin, como funcionam<br />
** O que é uma transação de poeira|O que é uma transação de poeira<br />
** O que é mineração de criptomoeda|O que é mineração de criptomoeda<br />
** O que são os mineradores ASIC|O que são os mineradores ASIC<br />
** Mineração de bitcoins, o que é e como funciona|Mineração de bitcoins, o que é e como funciona<br />
** Mineração de Bitcoin Como você cria um bloco|Mineração de Bitcoin Como você cria um bloco<br />
** Qual é a dificuldade de mineração em Bitcoin|Qual é a dificuldade de mineração em Bitcoin<br />
** O que é uma pool de mineração de criptomoedas|O que é uma pool de mineração de criptomoedas<br />
** O que é Crypto Wars e como você definiu o mundo criptográfico|O que é Crypto Wars e como você definiu o mundo criptográfico<br />
** Satoshi Nakamoto criou a Monero|Satoshi Nakamoto criou a Monero<br />
* Crypto Projects<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** NN-CFA|NN-CFA (Nothing New Crypto for All)<br />
** Armazene seus bitcoins de forma segura em uma carteira local|Armazene seus bitcoins de forma segura em uma carteira local<br />
** Aprenda_a_minerar_criptomoedas_via_CPU_e_GPU_no_Linux|Aprenda a minerar criptomoedas via CPU e GPU no Linux<br />
** Atomic Swap - Bitcoin (BTC) vs Monero (XMR)|Atomic Swap - Bitcoin (BTC) vs Monero (XMR)<br />
** Bots_recomendados_para_cryptos|Bots de redes sociais recomendados para cryptos<br />
** Crie seu próprio robô para trade automático de crypto moedas|Crie seu próprio robô para trade automático de crypto moedas<br />
* Hacking Projects<br />
** Configure seu próprio proxy sock5 via openvpn|Proxy sock5 via openvpn<br />
** Biohacking|Biohacking<br />
** DFSS USBkiller|DFSS USBkiller<br />
** Hackaratê Coding Dojo|Hackaratê Coding Dojo<br />
** Hacking Apple TV|Hacking Apple TV<br />
** LiveCD_oficial|LiveCD oficial<br />
** ONION PI - REV BR|OnionPi Rev BR<br />
** Redes_DTN|Redes DTN<br />
** Router RTA04N Backdoor|Router RTA04N Backdoor<br />
** Storage_criptografado_em_roteador_residencial|Storage criptografado em roteador residencial<br />
* Maker Projects<br />
** Categoria:Impressoras_3D|Impressora 3D<br />
** Linux on the BeagleBone|Linux on the BeagleBone<br />
** Linux on the Cubieboard A20|Linux on the Cubieboard A20<br />
** Linux on the Raspberry pi|Linux on the Raspberry Pi<br />
** Raspberry Pi Lapdock - Raspdock|Raspberry Pi Lapdock<br />
** MSP430_-_Texas_Instrument|MSP430 - Texas Instrument<br />
** FabScan - Scanner 3D|Scanner 3D<br />
* Artigos<br />
** Bio + Hacking = Ética Hacker aplicada a biologia|Bio + Hacking = Ética Hacker aplicada a biologia<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** HackForge|HackForge - Boas práticas de defesa (Linux)<br />
** Como_fazer_perguntas_inteligentes|Como fazer perguntas inteligentes<br />
** Funtoo_Linux_vs_Gentoo_Linux_-_Diferenças_técnicas,_estruturais_e_filosóficas|Funtoo Linux vs Gentoo Linux - Diferenças técnicas, estruturais e filosóficas<br />
** Hacktivismo|Hacktivismo<br />
** Heartbleed para não técnicos|Heartbleed para não técnicos<br />
** Manifesto_Hacker|Manifesto Hacker<br />
** O_COMPUTADOR_e_a_constituição_Algocrata|O computador e a constituição Algocrata<br />
** The_Extinction_of_Hackers|The Extinction of Hackers<br />
** Money for Nothing - The recent hullabaloo over NFTs|Money for Nothing - The recent hullabaloo over NFTs<br />
** Rootfs_criptografado_com_LUKS_usando_LVM| Rootfs criptografado com LUKS usando LVM (Linux)<br />
** Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|Desbloqueio de LUKS com um dispositivo USB no Boot<br />
** ZFS_com_DKMS_no_OpenSUSE|ZFS com DKMS no OpenSUSE<br />
** ZFS_on_LUKS|ZFS on LUKS<br />
* Ajuda<br />
** Como_escrever_artigos_na_wiki|Como escrever artigos na wiki<br />
** Special:Upload|Faça Upload de imagens<br />
** Especial:Categorias|Ver todas as categorias<br />
** Especial:Todas_as_páginas|Ver todos os artigos<br />
** recentchanges-url|Ver mudanças recentes<br />
** randompage-url|Ver páginas aleatórias<br />
* navigation<br />
** Categoria:Humor|Humor<br />
* SEARCH<br />
* TOOLBOX</div>Coffnixhttps://area31.net.br/wiki/index.php?title=ZFS_com_DKMS_no_OpenSUSE&diff=5151ZFS com DKMS no OpenSUSE2023-11-29T13:58:52Z<p>Coffnix: </p>
<hr />
<div> Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
= Requisitos =<br />
Aqui utilizamos OpenSUSE + ZFS on Linux, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
= Procedimento =<br />
Instale as dependências:<br />
{{console|body=<br />
###i## zypper in dkms git libaio-devel libattr-devel libffi-devel libudev-devel ncompress openssl-devel python3-devel rpmbuild gettext-tools libtool automake autoconf libuuid-devel libtirpc-devel kernel-default-devel kernel-devel kernel-macros libdwarves1 libelf-devel zfs-ueficert<br />
}}<br />
<br />
Ative o DKMS:<br />
{{console|body=<br />
###i## systemctl enable dkms ; systemctl start dkms<br />
}}<br />
<br />
Compile o ZFS e crie os pacotes RPM:<br />
{{console|body=<br />
###i## cd /opt ; git clone https://github.com/zfsonlinux/zfs.git<br />
###i## cd zfs ; ./autogen.sh <br />
###i## ./configure ; make -j9 rpm-utils rpm-dkms<br />
}}<br />
<br />
Instale os novos pacotes:<br />
{{console|body=<br />
###i## rpm -Uhv libzpool*x86_64.rpm libzfs*x86_64.rpm libnvpair*x86_64.rpm libuutil*x86_64.rpm zfs-2*x86_64.rpm zfs-dkms-*noarch.rpm<br />
}}<br />
<br />
<br />
==Solução de problemas==<br />
Caso ocorra algum erro, execute manualmente, alterando a versão do kernel para a sua atual:<br />
<br />
Obtenha a versão do zfs:<br />
{{console|body=<br />
###i## dkms status<br />
}}<br />
<br />
Compile os modulos:<br />
{{console|body=<br />
###i## dkms build zfs/2.2.99 -k 6.6.1-1-default<br />
}}<br />
<br />
Instale os modulos:<br />
{{console|body=<br />
###i## dkms install zfs/2.2.99 -k 6.6.1-1-default<br />
}}<br />
<br />
Crie o initrd:<br />
{{console|body=<br />
###i## dracut --hostonly --kver 6.6.1-1-default<br />
}}<br />
<br />
Atualize o grub:<br />
{{console|body=<br />
###i## update-bootloader<br />
}}<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=ZFS_com_DKMS_no_OpenSUSE&diff=5150ZFS com DKMS no OpenSUSE2023-11-28T17:02:21Z<p>Coffnix: </p>
<hr />
<div> Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE + ZFS on Linux, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
= Procedimento =<br />
Instale as dependências:<br />
{{console|body=<br />
###i## zypper in dkms git libaio-devel libattr-devel libffi-devel libudev-devel ncompress openssl-devel python3-devel rpmbuild gettext-tools libtool automake autoconf libuuid-devel libtirpc-devel kernel-default-devel kernel-devel kernel-macros libdwarves1 libelf-devel zfs-ueficert<br />
}}<br />
<br />
{{console|body=<br />
###i## systemctl enable dkms ; systemctl start dkms<br />
}}<br />
<br />
{{console|body=<br />
###i## cd /opt ; git clone https://github.com/zfsonlinux/zfs.git<br />
###i## cd zfs ; ./autogen.sh <br />
###i## ./configure ; make -j9 rpm-utils rpm-dkms<br />
}}<br />
<br />
{{console|body=<br />
###i## rpm -Uhv libzpool*x86_64.rpm libzfs*x86_64.rpm libnvpair*x86_64.rpm libuutil*x86_64.rpm zfs-2*x86_64.rpm zfs-dkms-*noarch.rpm<br />
}}<br />
<br />
Caso ocorra algum erro, execute manualmente, alterando a versão do kernel para a sua atual:<br />
<br />
Obtenha a versão do zfs:<br />
{{console|body=<br />
###i## dkms status<br />
}}<br />
<br />
Compile os modulos:<br />
{{console|body=<br />
###i## dkms build zfs/2.2.99 -k 6.6.1-1-default<br />
}}<br />
<br />
Instale os modulos:<br />
{{console|body=<br />
###i## dkms install zfs/2.2.99 -k 6.6.1-1-default<br />
}}<br />
<br />
Crie o initrd:<br />
{{console|body=<br />
###i## dracut --hostonly --kver 6.6.1-1-default<br />
}}<br />
<br />
Atualize o grub:<br />
{{console|body=<br />
###i## update-bootloader<br />
}}<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=MediaWiki:Sidebar&diff=5149MediaWiki:Sidebar2023-11-28T17:01:28Z<p>Coffnix: </p>
<hr />
<div>* Sobre o Área31<br />
** BLOG|Blog Oficial<br />
** Eventos|Eventos<br />
** Fale Conosco|Fale Conosco<br />
** Fornecedores|Fornecedores<br />
** Logos e temas|Logos e temas<br />
** Categoria:Membros Fundadores|Membros Fundadores<br />
** Categoria:Membros Honorários|Membros Honorários<br />
** Categoria:Membros|Membros<br />
** Parceiros|Parceiros<br />
** Área31 na Mídia|Reportagens e entrevistas para a imprensa<br />
** Repositório|Repositório GIT oficial<br />
** Revistas e Zines|Revistas e Zines<br />
* Armamentos<br />
** Como_se_tornar_um_CAC_para_obter_armas_de_fogo_legalmente_no_Brasil|Como se tornar um CAC para obter armas de fogo legalmente no Brasil<br />
** Solicitação_de_compra_de_armamentos_para_CAC|Solicitação de compra de armamentos para CAC<br />
** Como_adquirir_um_fuzil_legalmente_no_Brasil_sendo_CAC|Como adquirir um fuzil legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_espingarda_legalmente_no_Brasil_sendo_CAC|Como adquirir uma espingarda legalmente no Brasil sendo CAC<br />
** Como_adquirir_uma_pistola_legalmente_no_Brasil_sendo_CAC|Como adquirir uma pistola legalmente no Brasil sendo CAC<br />
** Como_comprar_munições_sendo_CAC|Como comprar munições sendo CAC<br />
** Vídeos_educativos_sobre_armas_de_fogo|Vídeos educativos sobre armas de fogo<br />
** Canais_de_armamentistas_recomendados_no_youtube|Canais de armamentistas recomendados no youtube<br />
** Orientações_e_fundamentações_legais_para_o_CAC_levar_consigo_em_auxílio_à_autoridade_policial|Orientações e fundamentações legais para o CAC levar consigo em auxílio à autoridade policial<br />
** (I)legalidade_da_prisão_do_atirador,_colecionador_ou_caçador_(CAC)|(I)legalidade da prisão do atirador, colecionador ou caçador (CAC)<br />
** Como_o_racismo_pautou_as_restrições_de_armas_nos_Estados_Unidos|Como o racismo pautou as restrições de armas nos Estados Unidos<br />
* Crypto Docs<br />
** O que é um Cypherpunk|O que é um Cypherpunk<br />
** Manifesto Criptoanarquista|Manifesto Criptoanarquista<br />
** Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks|Cyphernomicon, explicação sobre a cultura e o pensamento dos cypherpunks<br />
** Quem é Ralph Merkle|Quem é Ralph Merkle<br />
** Quem é David Chaum|Quem é David Chaum<br />
** Quem é Charlie Lee|Quem é Charlie Lee<br />
** Quem é W Scott Stornetta|Quem é W Scott Stornetta<br />
** Quem é Wladimir Van Der Laan|Quem é Wladimir Van Der Laan<br />
** Quem é o Zooko Wilcox|Quem é o Zooko Wilcox<br />
** Quem é Timothy May|Quem é Timothy May<br />
** Quem é Martin Hellman|Quem é Martin Hellman<br />
** Quem é Luke Dashjr|Quem é Luke Dashjr<br />
** Quem é Nick Szabo|Quem é Nick Szabo<br />
** Quem é Satoshi Nakamoto|Quem é Satoshi Nakamoto<br />
** O que é criptografia|O que é criptografia<br />
** O que é criptografia assimétrica|O que é criptografia assimétrica<br />
** O que é um hash|O que é um hash<br />
** O que é HashCash|O que é HashCash<br />
** Qual é o algoritmo de assinatura ECDSA|Qual é o algoritmo de assinatura ECDSA<br />
** O que é Cryptojacking|O que é Cryptojacking<br />
** O que é um Replay Attack|O que é um Replay Attack<br />
** O que é um ataque Sybil|O que é um ataque Sybil<br />
** Len Sassaman e Satoshi: uma história Cypherpunk|Len Sassaman e Satoshi: uma história Cypherpunk<br />
* Blockchain Docs<br />
** O que é um razão distribuído (razão)|O que é um razão distribuído (razão)<br />
**O que é a Cadeia de Blocos (Blockchain)|O que é a Cadeia de Blocos (Blockchain)<br />
** Como funciona a Blockchain- Cadeia de Blocos|Como funciona a Blockchain- Cadeia de Blocos<br />
** Qual é a altura do bloco|Qual é a altura do bloco<br />
** Qual é a recompensa em bloco|Qual é a recompensa em bloco<br />
** O que é o Bloco de Gênesis|O que é o Bloco de Gênesis<br />
** O que é uma árvore Merkle|O que é uma árvore Merkle<br />
** O que é uma falha bizantina|O que é uma falha bizantina<br />
** O que é tolerância a falhas bizantinas (BFT)|O que é tolerância a falhas bizantinas (BFT)<br />
** Glossário de contratos inteligentes de Nick Szabo|Glossário de contratos inteligentes de Nick Szabo<br />
* Bitcoin Docs<br />
** Raízes e motivos da criação do Bitcoin|Raízes e motivos da criação do Bitcoin<br />
** O que é uma criptomoeda|O que é uma criptomoeda<br />
** Qual é o consenso em criptomoedas|Qual é o consenso em criptomoedas<br />
** O que é Bitcoin e como funciona|O que é Bitcoin e como funciona<br />
** O que é uma unidade de conta em Bitcoin|O que é uma unidade de conta em Bitcoin<br />
** Quantos bitcoins realmente existem|Quantos bitcoins realmente existem<br />
** O que é Bitcoin Core|O que é Bitcoin Core<br />
** Bitcoin Core Wallet, tudo o que você precisa saber|Bitcoin Core Wallet, tudo o que você precisa saber<br />
** O que é mempool no Bitcoin|O que é mempool no Bitcoin<br />
** O que é uma transação com base em moeda|O que é uma transação com base em moeda<br />
** Transações Bitcoin, como funcionam|Transações Bitcoin, como funcionam<br />
** O que é uma transação de poeira|O que é uma transação de poeira<br />
** O que é mineração de criptomoeda|O que é mineração de criptomoeda<br />
** O que são os mineradores ASIC|O que são os mineradores ASIC<br />
** Mineração de bitcoins, o que é e como funciona|Mineração de bitcoins, o que é e como funciona<br />
** Mineração de Bitcoin Como você cria um bloco|Mineração de Bitcoin Como você cria um bloco<br />
** Qual é a dificuldade de mineração em Bitcoin|Qual é a dificuldade de mineração em Bitcoin<br />
** O que é uma pool de mineração de criptomoedas|O que é uma pool de mineração de criptomoedas<br />
** O que é Crypto Wars e como você definiu o mundo criptográfico|O que é Crypto Wars e como você definiu o mundo criptográfico<br />
** Satoshi Nakamoto criou a Monero|Satoshi Nakamoto criou a Monero<br />
* Crypto Projects<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** NN-CFA|NN-CFA (Nothing New Crypto for All)<br />
** Armazene seus bitcoins de forma segura em uma carteira local|Armazene seus bitcoins de forma segura em uma carteira local<br />
**Rootfs_criptografado_com_LUKS_usando_LVM| Rootfs criptografado com LUKS usando LVM (Linux)<br />
** Aprenda_a_minerar_criptomoedas_via_CPU_e_GPU_no_Linux|Aprenda a minerar criptomoedas via CPU e GPU no Linux<br />
** Atomic Swap - Bitcoin (BTC) vs Monero (XMR)|Atomic Swap - Bitcoin (BTC) vs Monero (XMR)<br />
** Bots_recomendados_para_cryptos|Bots de redes sociais recomendados para cryptos<br />
** Crie seu próprio robô para trade automático de crypto moedas|Crie seu próprio robô para trade automático de crypto moedas<br />
* Hacking Projects<br />
** Configure seu próprio proxy sock5 via openvpn|Proxy sock5 via openvpn<br />
** Biohacking|Biohacking<br />
** DFSS USBkiller|DFSS USBkiller<br />
** Hackaratê Coding Dojo|Hackaratê Coding Dojo<br />
** Hacking Apple TV|Hacking Apple TV<br />
** LiveCD_oficial|LiveCD oficial<br />
** ONION PI - REV BR|OnionPi Rev BR<br />
** Redes_DTN|Redes DTN<br />
** Router RTA04N Backdoor|Router RTA04N Backdoor<br />
** Storage_criptografado_em_roteador_residencial|Storage criptografado em roteador residencial<br />
* Maker Projects<br />
** Categoria:Impressoras_3D|Impressora 3D<br />
** Linux on the BeagleBone|Linux on the BeagleBone<br />
** Linux on the Cubieboard A20|Linux on the Cubieboard A20<br />
** Linux on the Raspberry pi|Linux on the Raspberry Pi<br />
** Raspberry Pi Lapdock - Raspdock|Raspberry Pi Lapdock<br />
** MSP430_-_Texas_Instrument|MSP430 - Texas Instrument<br />
** FabScan - Scanner 3D|Scanner 3D<br />
* Artigos<br />
** Bio + Hacking = Ética Hacker aplicada a biologia|Bio + Hacking = Ética Hacker aplicada a biologia<br />
** Bitcoin_Wallet_em_seu_biochip_xNT_(NFC)|Bitcoin Wallet em seu biochip xNT (NFC)<br />
** HackForge|HackForge - Boas práticas de defesa (Linux)<br />
** Como_fazer_perguntas_inteligentes|Como fazer perguntas inteligentes<br />
** Funtoo_Linux_vs_Gentoo_Linux_-_Diferenças_técnicas,_estruturais_e_filosóficas|Funtoo Linux vs Gentoo Linux - Diferenças técnicas, estruturais e filosóficas<br />
** Hacktivismo|Hacktivismo<br />
** Heartbleed para não técnicos|Heartbleed para não técnicos<br />
** Manifesto_Hacker|Manifesto Hacker<br />
** O_COMPUTADOR_e_a_constituição_Algocrata|O computador e a constituição Algocrata<br />
** The_Extinction_of_Hackers|The Extinction of Hackers<br />
** Money for Nothing - The recent hullabaloo over NFTs|Money for Nothing - The recent hullabaloo over NFTs<br />
** Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|Desbloqueio de LUKS com um dispositivo USB no Boot<br />
** ZFS_com_DKMS_no_OpenSUSE|ZFS com DKMS no OpenSUSE<br />
** ZFS_on_LUKS|ZFS on LUKS<br />
* Ajuda<br />
** Como_escrever_artigos_na_wiki|Como escrever artigos na wiki<br />
** Special:Upload|Faça Upload de imagens<br />
** Especial:Categorias|Ver todas as categorias<br />
** Especial:Todas_as_páginas|Ver todos os artigos<br />
** recentchanges-url|Ver mudanças recentes<br />
** randompage-url|Ver páginas aleatórias<br />
* navigation<br />
** Categoria:Humor|Humor<br />
* SEARCH<br />
* TOOLBOX</div>Coffnixhttps://area31.net.br/wiki/index.php?title=ZFS_com_DKMS_no_OpenSUSE&diff=5148ZFS com DKMS no OpenSUSE2023-11-28T16:47:29Z<p>Coffnix: </p>
<hr />
<div> Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE + ZFS on Linux, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
= Procedimento =<br />
== Instale o ZFS ==<br />
{{console|body=<br />
###i## zypper in zfs-ueficert<br />
}}<br />
<br />
Instale as dependências:<br />
{{console|body=<br />
###i## zypper in dkms git libaio-devel libattr-devel libffi-devel libudev-devel ncompress openssl-devel python3-devel rpmbuild gettext-tools libtool automake autoconf libuuid-devel libtirpc-devel kernel-default-devel kernel-devel kernel-macros libdwarves1 libelf-devel<br />
}}<br />
<br />
{{console|body=<br />
###i## systemctl enable dkms ; systemctl start dkms<br />
}}<br />
<br />
{{console|body=<br />
###i## cd /opt ; git clone https://github.com/zfsonlinux/zfs.git<br />
###i## cd zfs ; ./autogen.sh <br />
###i## ./configure ; make -j9 rpm-utils rpm-dkms<br />
}}<br />
<br />
{{console|body=<br />
###i## rpm -Uhv libzpool*x86_64.rpm libzfs*x86_64.rpm libnvpair*x86_64.rpm libuutil*x86_64.rpm zfs-2*x86_64.rpm zfs-dkms-*noarch.rpm<br />
}}<br />
<br />
Caso ocorra algum erro, execute manualmente, alterando a versão do kernel para a sua atual:<br />
<br />
Obtenha a versão do zfs:<br />
{{console|body=<br />
###i## dkms status<br />
}}<br />
<br />
Compile os modulos:<br />
{{console|body=<br />
###i## dkms build zfs/2.2.99 -k 6.6.1-1-default<br />
}}<br />
<br />
Instale os modulos:<br />
{{console|body=<br />
###i## dkms install zfs/2.2.99 -k 6.6.1-1-default<br />
}}<br />
<br />
Crie o initrd:<br />
{{console|body=<br />
###i## dracut --hostonly --kver 6.6.1-1-default<br />
}}<br />
<br />
Atualize o grub:<br />
{{console|body=<br />
###i## update-bootloader<br />
}}<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=ZFS_on_LUKS&diff=5147ZFS on LUKS2023-11-19T11:29:20Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter um mirror ZFS (semelhante ao RAID-1) criptografadinho com LUKS, com cache em NVME e tudoooo, chega a ser poético de tão bonito.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
'''"Home Network Defense"'''<br />
<br />
__TOC__<br />
<br />
= Utilize criptografia pra tudo =<br />
= Motivo =<br />
Pelo visto você é um bom menino (ou menine kekekeke), que criptografou seu disco certinho, e seguiu as boas práticas recomendadas pelo área31 hackerspace lendo os artigos [[HackForge]] e aprendeu até a criar seu próprio [[Storage_criptografado_em_roteador_residencial|storage criptografado em roteador residencial]]. Aprendeu inclusive a [[Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|desbloquear seu LUKS durante o boot usando um device USB]]. Logo, agora vc quer um espelho de discos semelhante ao RAID-1, só que usando ZFS on Linux. Então se divirta :D<br />
<br />
É fundamental reconhecer que, embora indesejado, o acesso não autorizado aos seus arquivos é uma possibilidade real. Muitas pessoas acreditam na inviolabilidade de seus dados, confiando nas promessas de segurança feitas por empresas, ou na suposta eficácia de seus sistemas operacionais e softwares de proteção. No entanto, é um equívoco comum subestimar que, com a motivação correta e acesso físico, qualquer zé mané da esquina com conhecimentos básicos, ou em um cenário mais extremo, entidades governamentais (sim, agentes do '''ESTADO'''), podem acessar ou comprometer seus dados. Portanto, a implementação de criptografia em nível de sistema de arquivos em seus sistemas não é apenas recomendada, mas essencial. A mensagem aqui é clara: não negligencie a segurança dos seus dados. Priorize a criptografia abrangente para garantir sua proteção, ou seja, CRIPTOGRAFE TUDO, estúpido!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE + ZFS on Linux, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
= Procedimento =<br />
== Instale o ZFS ==<br />
Configure o repositório "Filesystem Tools" criando o arquivo abaixo:<br />
{{file|name=/etc/zypp/repos.d/repo-filesystems.repo|body=<br />
[filesystems]<br />
name=Filesystem tools and FUSE-related packages (openSUSE_Tumbleweed)<br />
enabled=1<br />
autorefresh=1<br />
baseurl=https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/<br />
type=rpm-md<br />
gpgcheck=1<br />
gpgkey=https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/repodata/repomd.xml.key<br />
}}<br />
<br />
Agora atualize o cache e instale os pacotes necessários:<br />
{{console|body=<br />
###i## zypper refresh<br />
###i## zypper in zfs-kmp-default zfs-ueficert zfs<br />
}}<br />
<br />
Adicione o ZFS ao boot:<br />
{{console|body=<br />
###i## systemctl enable zfs-import-cache<br />
###i## systemctl enable zfs-mount<br />
}}<br />
<br />
== Configure o LUKS ==<br />
Agora configure crie o luks em cada disco. Lembre-se de alterar os ID dos devices de "'''ata-ST8000NE001-2M7101_WSD0SC28'''" e "'''ata-ST8000NE001-2M7101_WSD0SC30'''" para os seus:<br />
<br />
{{warning|Há um bug em aberto no ZFS, eu caí nele inclusive, logo por enquanto use --type luks1 ao invés de luks2. Mais infos: https://github.com/openzfs/zfs/issues/14533}}<br />
<br />
{{console|body=<br />
###i## mkdir -p /etc/area31/headerstore<br />
###i## cryptsetup luksFormat --force-password --type luks1 --cipher aes-xts-plain64 --hash sha512 --key-size 512 /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --align-payload 8192 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img<br />
###i## cryptsetup luksFormat --force-password --type luks1 --cipher aes-xts-plain64 --hash sha512 --key-size 512 /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC30 --align-payload 8192 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img<br />
}}<br />
<br />
Crie uma chave para desbloqueio do LUKS:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/keystore/keyfile ; dd if=/dev/urandom of=/opt/area31/keystore/keyfile bs=4096 count=1<br />
###i## chmod 400 /opt/area31/keystore/keyfile<br />
}}<br />
<br />
Inclua a chave em ambos os discos:<br />
{{console|body=<br />
###i## cryptsetup luksAddKey /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC30 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img /opt/area31/keystore/keyfile<br />
###i## cryptsetup luksAddKey /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img /opt/area31/keystore/keyfile<br />
}}<br />
<br />
Monte usando a chave:<br />
{{console|body=<br />
###i## cryptsetup luksOpen /dev/disk/by-id/ata -ST8000NE001-2M7101_WSD0SC30 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img --key-file=/opt/area31/keystore/keyfile storage_disk1_luks<br />
###i## cryptsetup luksOpen /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img --key-file=/opt/area31/keystore/keyfile storage_disk2_luks<br />
}}<br />
<br />
== Configure o mirror ZFS ==<br />
Crie um novo pool ZFS como mirror com 2 dispositivos LUKS montados previamente, com nome vdisk0 montado em /storage:<br />
{{console|body=<br />
###i## mkdir -p /storage ; chattr +i /storage<br />
###i## zpool create -f -o ashift=12 -m /storage vdisk0 mirror /dev/mapper/storage_disk1_luks /dev/mapper/storage_disk2_luks<br />
}}<br />
<br />
Inicie o serviço ZFS para montar o pool sem precisar reiniciar:<br />
{{console|body=<br />
###i## systemctl start zfs-mount<br />
###i## systemctl start zfs-import-cache<br />
}}<br />
<br />
Para desmontar /storage (se necessário):<br />
{{console|body=<br />
###i## zpool export vdisk0<br />
}}<br />
<br />
Para remontar o /storage (se necessário):<br />
{{console|body=<br />
###i## zpool import vdisk0<br />
}}<br />
<br />
Habilite o 'relatime' no pool ZFS para otimizar o acesso a tempos de leitura:<br />
{{console|body=<br />
###i## zfs set relatime=on vdisk0<br />
}}<br />
<br />
Ativar a compressão '''lz4''' para economizar espaço no pool ZFS:<br />
{{console|body=<br />
###i## zfs set compression=lz4 vdisk0<br />
}}<br />
<br />
Ative a deduplication ('''IMPORTANTE!!!'''):<br />
{{console|body=<br />
###i## zfs set dedup=on vdisk0<br />
}}<br />
<br />
Verifique se dedup está ativo:<br />
{{console|body=<br />
###i## zfs get dedup vdisk0<br />
}}<br />
<br />
Para checar o status do ZFS:<br />
{{console|body=<br />
###i## zfs get all vdisk0<br />
###i## zpool status<br />
}}<br />
<br />
Liste todos os datasets ZFS:<br />
{{console|body=<br />
###i## zfs list -o name,mountpoint,used,avail,refer<br />
}}<br />
<br />
=== Ative cache em SSD ou NVME ===<br />
Adicione um NVME ou SSD como cache ao pool ZFS. Basta criar uma partição comum do tipo 8e (Linux) entre 50GB e 100GB e depois adiciona-lo. Ex:<br />
{{console|body=<br />
###i## zpool add vdisk0 cache /dev/nvme0n1p7<br />
}}<br />
<br />
<br />
= Montagem automática do ZFS =<br />
Crie o config para o script:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/conf ; touch /opt/area31/conf/mount-luks-zfs.conf<br />
}}<br />
<br />
Com o seguinte conteúdo:<br />
{{file|name=/opt/area31/bin/mount-luks-zfs.sh|body=<br />
DISK_ID_01="ata-ST8000NE001-2M7101_WSD0SC30"<br />
DISK_ID_02="ata-ST8000NE001-2M7101_WSD0SC28"<br />
LUKS_DISK_01="storage_disk1_luks"<br />
LUKS_DISK_02="storage_disk2_luks"<br />
LUKS_KEYFILE="/etc/area31/keystore/keyfile"<br />
DIR_LUKS_HEADER="/etc/area31/headerstore"<br />
DIR_ZFS="/storage"<br />
ZFS_VDISK_01="vdisk0"<br />
}}<br />
<br />
Agora crie o script para montagem automática do ZFS:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/bin ; touch /opt/area31/bin/mount-luks-zfs.sh ; chmod +x /opt/area31/bin/mount-luks-zfs.sh<br />
}}<br />
<br />
Com o seguinte conteúdo:<br />
{{file|name=/opt/area31/bin/mount-luks-zfs.sh|lang=bash|body=<br />
#!/bin/bash<br />
<br />
###########################################################################<br />
# Verifica se o script já está em execução<br />
<br />
SCRIPT_NAME="${0##*/}"<br />
<br />
if [ "$(pgrep -cx "${SCRIPT_NAME}")" -gt 1 ]; then<br />
echo "O script já está em execução, aguarde 10 segundos para tentar novamente."<br />
sleep 10<br />
<br />
if [ "$(pgrep -cx "${SCRIPT_NAME}")" -gt 1 ]; then<br />
echo "O script já está em execução e não será executado novamente."<br />
exit 1<br />
fi<br />
fi<br />
<br />
###########################################################################<br />
# Iniciando script<br />
<br />
CNF="/opt/area31/conf/mount-luks-zfs.conf"<br />
<br />
# Checa se existe o arquivo de CONF, caso não exista ele sai<br />
if [ -f "${CNF}" ] && [ ! -z "${CNF}" ]; then<br />
source ${CNF}<br />
else<br />
echo "${CNF} não encontrado."<br />
exit 1<br />
fi<br />
<br />
ERROR="0"<br />
<br />
# Lista de variáveis para verificar<br />
variables=("DIR_ZFS" "ZFS_VDISK_01" "DIR_LUKS_HEADER" "LUKS_KEYFILE" "LUKS_DISK_02" "LUKS_DISK_01" "DISK_ID_02" "DISK_ID_01")<br />
<br />
# Função para verificar variável<br />
check_variable() {<br />
local var_name="$1"<br />
<br />
# Usando indireção para pegar o valor da variável<br />
local actual_value="${!var_name}"<br />
<br />
# Verificar se a variável está definida e não está vazia<br />
if [[ -z "$actual_value" ]]; then<br />
echo "Erro: $var_name não está definido ou está vazio!"<br />
return 1<br />
fi<br />
}<br />
<br />
# Verificar todas as variáveis do CONF antes de iniciar o script<br />
for var in "${variables[@]}"; do<br />
check_variable "$var" {{!}} {{!}} exit 1<br />
done<br />
<br />
###########################################################################################################<br />
<br />
check_pool_zfs_active(){<br />
CHECK_MOUNTED="$(mount {{!}} grep zfs {{!}} grep "${DIR_ZFS}" {{!}} wc -l)"<br />
if [ "${CHECK_MOUNTED}" -ne 0 ]; then<br />
CHECK_NONE_ZFS="$(zpool status {{!}} grep 'no pools available' {{!}} wc -l 2> /dev/null)"<br />
if [ "${CHECK_NONE_ZFS}" -ne 0 ]; then<br />
ZFS_UMOUNTED="1"<br />
else<br />
ZFS_UMOUNTED="0"<br />
fi<br />
else<br />
echo -e "/storage desmontado e ZFS inativo"<br />
exit 0<br />
fi<br />
}<br />
<br />
umount_luks(){<br />
CHECK_LUKS_DISK_01="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_01} {{!}} wc -l)"<br />
CHECK_LUKS_DISK_02="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_02} {{!}} wc -l)"<br />
<br />
if [ "${CHECK_LUKS_DISK_01}" -ne 0 ]; then<br />
cryptsetup luksClose "${LUKS_DISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao desmontar o LUKS \"${LUKS_DISK_01}\""<br />
ERROR="1"<br />
else<br />
echo -e "Sucesso ao desmontar o LUKS \"${LUKS_DISK_01}\""<br />
fi<br />
else<br />
echo "LUKS \"${LUKS_DISK_01}\" desmontado."<br />
fi<br />
<br />
if [ "${CHECK_LUKS_DISK_02}" -ne 0 ]; then<br />
cryptsetup luksClose "${LUKS_DISK_02}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao tentar desmontar o LUKS \"${LUKS_DISK_02}\""<br />
ERROR="1"<br />
else<br />
echo -e "Sucesso ao desmontar o LUKS \"${LUKS_DISK_02}\""<br />
fi<br />
else<br />
echo "LUKS \"${LUKS_DISK_02}\" desmontado."<br />
fi<br />
}<br />
<br />
<br />
mount_zfs(){<br />
# Checa se o disco está montado<br />
CHECK_LUKS_DISK_01="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_01} {{!}} wc -l)"<br />
CHECK_LUKS_DISK_02="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_02} {{!}} wc -l)"<br />
<br />
# monte usando a chave do pendrive<br />
if [ "${CHECK_LUKS_DISK_01}" -eq 0 ]; then<br />
echo -e "Tentando montar o LUKS \"${LUKS_DISK_01}\" do dispositivo \"${DISK_ID_01}\"..."<br />
cryptsetup luksOpen "/dev/disk/by-id/${DISK_ID_01}" --header "${DIR_LUKS_HEADER}/${DISK_ID_01}.img" --key-file="${LUKS_KEYFILE}" "${LUKS_DISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao montar os dispositivos LUKS do dispositivo \"${DISK_ID_01}\"."<br />
fi<br />
fi<br />
<br />
if [ "${CHECK_LUKS_DISK_02}" -eq 0 ]; then<br />
echo -e "Tentando montar o LUKS \"${LUKS_DISK_02}\" do dispositivo \"${DISK_ID_02}\"..."<br />
cryptsetup luksOpen "/dev/disk/by-id/${DISK_ID_02}" --header "${DIR_LUKS_HEADER}/${DISK_ID_02}.img" --key-file="${LUKS_KEYFILE}" "${LUKS_DISK_02}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao montar os dispositivos LUKS do dispositivo \"${DISK_ID_02}\"."<br />
fi<br />
fi<br />
<br />
zfs get all "${ZFS_VDISK_01}" &> /dev/null<br />
if [ "$?" -eq 0 ]; then<br />
echo -e "ZFS inicializado. Caso deseje utilize $0 check ou $0 umount"<br />
else<br />
if [ "${ERROR}" -eq 0 ]; then<br />
echo -e "LUKS montado. Tentando inicializar o ZFS..."<br />
zpool import "${ZFS_VDISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao inicializar o ZFS.\n$(df -hT "${DIR_ZFS}")"<br />
fi<br />
fi<br />
fi<br />
}<br />
<br />
<br />
case "$1" in<br />
check)<br />
zfs get all "${ZFS_VDISK_01}"<br />
zpool status "${ZFS_VDISK_01}"<br />
;;<br />
umount)<br />
CHECK_MOUNTED="$(mount {{!}} grep zfs {{!}} grep "${DIR_ZFS}" {{!}} wc -l)"<br />
if [ "${CHECK_MOUNTED}" -eq 0 ]; then<br />
echo -e "ZFS desmontado. Tentando desmontar o LUKS..."<br />
umount_luks<br />
else<br />
zpool export "${ZFS_VDISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao tentar desmontar o ZFS \"${ZFS_VDISK_01}\""<br />
else<br />
umount_luks<br />
fi<br />
fi<br />
;;<br />
*)<br />
mount_zfs<br />
;;<br />
esac<br />
}}<br />
<br />
<br />
<br />
== Configure o systemd ==<br />
Caso queira que o ZFS seja montado automaticamente no processo de boot, crie o seguinte arquivo:<br />
{{file|name=/etc/systemd/system/mount-luks-zfs.service|body=<br />
[Unit]<br />
Description=mount-luks-zfs<br />
Wants=networking.service<br />
After=networking.service<br />
<br />
[Service]<br />
Type=simple<br />
RemainAfterExit=yes<br />
ExecStart=/opt/area31/bin/mount-luks-zfs.sh<br />
ExecStop=/opt/area31/bin/mount-luks-zfs.sh umount<br />
ExecReload=/opt/area31/bin/mount-luks-zfs.sh<br />
Restart=on-failure<br />
RestartSec=5s<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
<br />
Ative e inicie:<br />
{{console|body=<br />
###i## systemctl enable /etc/systemd/system/mount-luks-zfs.service<br />
###i## systemctl start mount-luks-zfs.service<br />
}}<br />
<br />
Seja feliz! :D<br />
<br />
[[Image:Zpool status.png|500px]]<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=ZFS_on_LUKS&diff=5146ZFS on LUKS2023-11-19T11:29:00Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter um mirror ZFS (semelhante ao RAID-1) criptografadinho com LUKS, com cache em NVME e tudoooo, chega a ser poético de tão bonito.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
'''"Home Network Defense"'''<br />
<br />
__TOC__<br />
<br />
= Utilize criptografia pra tudo =<br />
= Motivo =<br />
Pelo visto você é um bom menino (ou menine kekekeke), que criptografou seu disco certinho, e seguiu as boas práticas recomendadas pelo área31 hackerspace lendo os artigos [[HackForge]] e aprendeu até a criar seu próprio [[Storage_criptografado_em_roteador_residencial|storage criptografado em roteador residencial]]. Aprendeu inclusive a [[Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|desbloquear seu LUKS durante o boot usando um device USB]]. Logo, agora vc quer um espelho de discos semelhante ao RAID-1, só que usando ZFS on Linux. Então se divirta :D<br />
<br />
É fundamental reconhecer que, embora indesejado, o acesso não autorizado aos seus arquivos é uma possibilidade real. Muitas pessoas acreditam na inviolabilidade de seus dados, confiando nas promessas de segurança feitas por empresas, ou na suposta eficácia de seus sistemas operacionais e softwares de proteção. No entanto, é um equívoco comum subestimar que, com a motivação correta e acesso físico, qualquer zé mané da esquina com conhecimentos básicos, ou em um cenário mais extremo, entidades governamentais (sim, agentes do '''ESTADO'''), podem acessar ou comprometer seus dados. Portanto, a implementação de criptografia em nível de sistema de arquivos em seus sistemas não é apenas recomendada, mas essencial. A mensagem aqui é clara: não negligencie a segurança dos seus dados. Priorize a criptografia abrangente para garantir sua proteção, ou seja, CRIPTOGRAFE TUDO, estúpido!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE + ZFS on Linux, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
= Procedimento =<br />
== Instale o ZFS ==<br />
Configure o repositório "Filesystem Tools" criando o arquivo abaixo:<br />
{{file|name=/etc/zypp/repos.d/repo-filesystems.repo|body=<br />
[filesystems]<br />
name=Filesystem tools and FUSE-related packages (openSUSE_Tumbleweed)<br />
enabled=1<br />
autorefresh=1<br />
baseurl=https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/<br />
type=rpm-md<br />
gpgcheck=1<br />
gpgkey=https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/repodata/repomd.xml.key<br />
}}<br />
<br />
Agora atualize o cache e instale os pacotes necessários:<br />
{{console|body=<br />
###i## zypper refresh<br />
###i## zypper in zfs-kmp-default zfs-ueficert zfs<br />
}}<br />
<br />
Adicione o ZFS ao boot:<br />
{{console|body=<br />
###i## systemctl enable zfs-import-cache<br />
###i## systemctl enable zfs-mount<br />
}}<br />
<br />
== Configure o LUKS ==<br />
Agora configure crie o luks em cada disco. Lembre-se de alterar os ID dos devices de "'''ata-ST8000NE001-2M7101_WSD0SC28'''" e "'''ata-ST8000NE001-2M7101_WSD0SC30'''" para os seus:<br />
<br />
{{warning|Há um bug em aberto no ZFS, eu caí nele inclusive, logo por enquanto use --type luks1 ao invés de luks2. Mais infos: https://github.com/openzfs/zfs/issues/14533}}<br />
<br />
<br />
{{console|body=<br />
###i## mkdir -p /etc/area31/headerstore<br />
###i## cryptsetup luksFormat --force-password --type luks1 --cipher aes-xts-plain64 --hash sha512 --key-size 512 /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --align-payload 8192 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img<br />
###i## cryptsetup luksFormat --force-password --type luks1 --cipher aes-xts-plain64 --hash sha512 --key-size 512 /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC30 --align-payload 8192 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img<br />
}}<br />
<br />
Crie uma chave para desbloqueio do LUKS:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/keystore/keyfile ; dd if=/dev/urandom of=/opt/area31/keystore/keyfile bs=4096 count=1<br />
###i## chmod 400 /opt/area31/keystore/keyfile<br />
}}<br />
<br />
Inclua a chave em ambos os discos:<br />
{{console|body=<br />
###i## cryptsetup luksAddKey /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC30 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img /opt/area31/keystore/keyfile<br />
###i## cryptsetup luksAddKey /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img /opt/area31/keystore/keyfile<br />
}}<br />
<br />
Monte usando a chave:<br />
{{console|body=<br />
###i## cryptsetup luksOpen /dev/disk/by-id/ata -ST8000NE001-2M7101_WSD0SC30 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img --key-file=/opt/area31/keystore/keyfile storage_disk1_luks<br />
###i## cryptsetup luksOpen /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img --key-file=/opt/area31/keystore/keyfile storage_disk2_luks<br />
}}<br />
<br />
== Configure o mirror ZFS ==<br />
Crie um novo pool ZFS como mirror com 2 dispositivos LUKS montados previamente, com nome vdisk0 montado em /storage:<br />
{{console|body=<br />
###i## mkdir -p /storage ; chattr +i /storage<br />
###i## zpool create -f -o ashift=12 -m /storage vdisk0 mirror /dev/mapper/storage_disk1_luks /dev/mapper/storage_disk2_luks<br />
}}<br />
<br />
Inicie o serviço ZFS para montar o pool sem precisar reiniciar:<br />
{{console|body=<br />
###i## systemctl start zfs-mount<br />
###i## systemctl start zfs-import-cache<br />
}}<br />
<br />
Para desmontar /storage (se necessário):<br />
{{console|body=<br />
###i## zpool export vdisk0<br />
}}<br />
<br />
Para remontar o /storage (se necessário):<br />
{{console|body=<br />
###i## zpool import vdisk0<br />
}}<br />
<br />
Habilite o 'relatime' no pool ZFS para otimizar o acesso a tempos de leitura:<br />
{{console|body=<br />
###i## zfs set relatime=on vdisk0<br />
}}<br />
<br />
Ativar a compressão '''lz4''' para economizar espaço no pool ZFS:<br />
{{console|body=<br />
###i## zfs set compression=lz4 vdisk0<br />
}}<br />
<br />
Ative a deduplication ('''IMPORTANTE!!!'''):<br />
{{console|body=<br />
###i## zfs set dedup=on vdisk0<br />
}}<br />
<br />
Verifique se dedup está ativo:<br />
{{console|body=<br />
###i## zfs get dedup vdisk0<br />
}}<br />
<br />
Para checar o status do ZFS:<br />
{{console|body=<br />
###i## zfs get all vdisk0<br />
###i## zpool status<br />
}}<br />
<br />
Liste todos os datasets ZFS:<br />
{{console|body=<br />
###i## zfs list -o name,mountpoint,used,avail,refer<br />
}}<br />
<br />
=== Ative cache em SSD ou NVME ===<br />
Adicione um NVME ou SSD como cache ao pool ZFS. Basta criar uma partição comum do tipo 8e (Linux) entre 50GB e 100GB e depois adiciona-lo. Ex:<br />
{{console|body=<br />
###i## zpool add vdisk0 cache /dev/nvme0n1p7<br />
}}<br />
<br />
<br />
= Montagem automática do ZFS =<br />
Crie o config para o script:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/conf ; touch /opt/area31/conf/mount-luks-zfs.conf<br />
}}<br />
<br />
Com o seguinte conteúdo:<br />
{{file|name=/opt/area31/bin/mount-luks-zfs.sh|body=<br />
DISK_ID_01="ata-ST8000NE001-2M7101_WSD0SC30"<br />
DISK_ID_02="ata-ST8000NE001-2M7101_WSD0SC28"<br />
LUKS_DISK_01="storage_disk1_luks"<br />
LUKS_DISK_02="storage_disk2_luks"<br />
LUKS_KEYFILE="/etc/area31/keystore/keyfile"<br />
DIR_LUKS_HEADER="/etc/area31/headerstore"<br />
DIR_ZFS="/storage"<br />
ZFS_VDISK_01="vdisk0"<br />
}}<br />
<br />
Agora crie o script para montagem automática do ZFS:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/bin ; touch /opt/area31/bin/mount-luks-zfs.sh ; chmod +x /opt/area31/bin/mount-luks-zfs.sh<br />
}}<br />
<br />
Com o seguinte conteúdo:<br />
{{file|name=/opt/area31/bin/mount-luks-zfs.sh|lang=bash|body=<br />
#!/bin/bash<br />
<br />
###########################################################################<br />
# Verifica se o script já está em execução<br />
<br />
SCRIPT_NAME="${0##*/}"<br />
<br />
if [ "$(pgrep -cx "${SCRIPT_NAME}")" -gt 1 ]; then<br />
echo "O script já está em execução, aguarde 10 segundos para tentar novamente."<br />
sleep 10<br />
<br />
if [ "$(pgrep -cx "${SCRIPT_NAME}")" -gt 1 ]; then<br />
echo "O script já está em execução e não será executado novamente."<br />
exit 1<br />
fi<br />
fi<br />
<br />
###########################################################################<br />
# Iniciando script<br />
<br />
CNF="/opt/area31/conf/mount-luks-zfs.conf"<br />
<br />
# Checa se existe o arquivo de CONF, caso não exista ele sai<br />
if [ -f "${CNF}" ] && [ ! -z "${CNF}" ]; then<br />
source ${CNF}<br />
else<br />
echo "${CNF} não encontrado."<br />
exit 1<br />
fi<br />
<br />
ERROR="0"<br />
<br />
# Lista de variáveis para verificar<br />
variables=("DIR_ZFS" "ZFS_VDISK_01" "DIR_LUKS_HEADER" "LUKS_KEYFILE" "LUKS_DISK_02" "LUKS_DISK_01" "DISK_ID_02" "DISK_ID_01")<br />
<br />
# Função para verificar variável<br />
check_variable() {<br />
local var_name="$1"<br />
<br />
# Usando indireção para pegar o valor da variável<br />
local actual_value="${!var_name}"<br />
<br />
# Verificar se a variável está definida e não está vazia<br />
if [[ -z "$actual_value" ]]; then<br />
echo "Erro: $var_name não está definido ou está vazio!"<br />
return 1<br />
fi<br />
}<br />
<br />
# Verificar todas as variáveis do CONF antes de iniciar o script<br />
for var in "${variables[@]}"; do<br />
check_variable "$var" {{!}} {{!}} exit 1<br />
done<br />
<br />
###########################################################################################################<br />
<br />
check_pool_zfs_active(){<br />
CHECK_MOUNTED="$(mount {{!}} grep zfs {{!}} grep "${DIR_ZFS}" {{!}} wc -l)"<br />
if [ "${CHECK_MOUNTED}" -ne 0 ]; then<br />
CHECK_NONE_ZFS="$(zpool status {{!}} grep 'no pools available' {{!}} wc -l 2> /dev/null)"<br />
if [ "${CHECK_NONE_ZFS}" -ne 0 ]; then<br />
ZFS_UMOUNTED="1"<br />
else<br />
ZFS_UMOUNTED="0"<br />
fi<br />
else<br />
echo -e "/storage desmontado e ZFS inativo"<br />
exit 0<br />
fi<br />
}<br />
<br />
umount_luks(){<br />
CHECK_LUKS_DISK_01="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_01} {{!}} wc -l)"<br />
CHECK_LUKS_DISK_02="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_02} {{!}} wc -l)"<br />
<br />
if [ "${CHECK_LUKS_DISK_01}" -ne 0 ]; then<br />
cryptsetup luksClose "${LUKS_DISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao desmontar o LUKS \"${LUKS_DISK_01}\""<br />
ERROR="1"<br />
else<br />
echo -e "Sucesso ao desmontar o LUKS \"${LUKS_DISK_01}\""<br />
fi<br />
else<br />
echo "LUKS \"${LUKS_DISK_01}\" desmontado."<br />
fi<br />
<br />
if [ "${CHECK_LUKS_DISK_02}" -ne 0 ]; then<br />
cryptsetup luksClose "${LUKS_DISK_02}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao tentar desmontar o LUKS \"${LUKS_DISK_02}\""<br />
ERROR="1"<br />
else<br />
echo -e "Sucesso ao desmontar o LUKS \"${LUKS_DISK_02}\""<br />
fi<br />
else<br />
echo "LUKS \"${LUKS_DISK_02}\" desmontado."<br />
fi<br />
}<br />
<br />
<br />
mount_zfs(){<br />
# Checa se o disco está montado<br />
CHECK_LUKS_DISK_01="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_01} {{!}} wc -l)"<br />
CHECK_LUKS_DISK_02="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_02} {{!}} wc -l)"<br />
<br />
# monte usando a chave do pendrive<br />
if [ "${CHECK_LUKS_DISK_01}" -eq 0 ]; then<br />
echo -e "Tentando montar o LUKS \"${LUKS_DISK_01}\" do dispositivo \"${DISK_ID_01}\"..."<br />
cryptsetup luksOpen "/dev/disk/by-id/${DISK_ID_01}" --header "${DIR_LUKS_HEADER}/${DISK_ID_01}.img" --key-file="${LUKS_KEYFILE}" "${LUKS_DISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao montar os dispositivos LUKS do dispositivo \"${DISK_ID_01}\"."<br />
fi<br />
fi<br />
<br />
if [ "${CHECK_LUKS_DISK_02}" -eq 0 ]; then<br />
echo -e "Tentando montar o LUKS \"${LUKS_DISK_02}\" do dispositivo \"${DISK_ID_02}\"..."<br />
cryptsetup luksOpen "/dev/disk/by-id/${DISK_ID_02}" --header "${DIR_LUKS_HEADER}/${DISK_ID_02}.img" --key-file="${LUKS_KEYFILE}" "${LUKS_DISK_02}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao montar os dispositivos LUKS do dispositivo \"${DISK_ID_02}\"."<br />
fi<br />
fi<br />
<br />
zfs get all "${ZFS_VDISK_01}" &> /dev/null<br />
if [ "$?" -eq 0 ]; then<br />
echo -e "ZFS inicializado. Caso deseje utilize $0 check ou $0 umount"<br />
else<br />
if [ "${ERROR}" -eq 0 ]; then<br />
echo -e "LUKS montado. Tentando inicializar o ZFS..."<br />
zpool import "${ZFS_VDISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao inicializar o ZFS.\n$(df -hT "${DIR_ZFS}")"<br />
fi<br />
fi<br />
fi<br />
}<br />
<br />
<br />
case "$1" in<br />
check)<br />
zfs get all "${ZFS_VDISK_01}"<br />
zpool status "${ZFS_VDISK_01}"<br />
;;<br />
umount)<br />
CHECK_MOUNTED="$(mount {{!}} grep zfs {{!}} grep "${DIR_ZFS}" {{!}} wc -l)"<br />
if [ "${CHECK_MOUNTED}" -eq 0 ]; then<br />
echo -e "ZFS desmontado. Tentando desmontar o LUKS..."<br />
umount_luks<br />
else<br />
zpool export "${ZFS_VDISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao tentar desmontar o ZFS \"${ZFS_VDISK_01}\""<br />
else<br />
umount_luks<br />
fi<br />
fi<br />
;;<br />
*)<br />
mount_zfs<br />
;;<br />
esac<br />
}}<br />
<br />
<br />
<br />
== Configure o systemd ==<br />
Caso queira que o ZFS seja montado automaticamente no processo de boot, crie o seguinte arquivo:<br />
{{file|name=/etc/systemd/system/mount-luks-zfs.service|body=<br />
[Unit]<br />
Description=mount-luks-zfs<br />
Wants=networking.service<br />
After=networking.service<br />
<br />
[Service]<br />
Type=simple<br />
RemainAfterExit=yes<br />
ExecStart=/opt/area31/bin/mount-luks-zfs.sh<br />
ExecStop=/opt/area31/bin/mount-luks-zfs.sh umount<br />
ExecReload=/opt/area31/bin/mount-luks-zfs.sh<br />
Restart=on-failure<br />
RestartSec=5s<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
<br />
Ative e inicie:<br />
{{console|body=<br />
###i## systemctl enable /etc/systemd/system/mount-luks-zfs.service<br />
###i## systemctl start mount-luks-zfs.service<br />
}}<br />
<br />
Seja feliz! :D<br />
<br />
[[Image:Zpool status.png|500px]]<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnixhttps://area31.net.br/wiki/index.php?title=ZFS_on_LUKS&diff=5145ZFS on LUKS2023-11-18T23:26:17Z<p>Coffnix: </p>
<hr />
<div>[[Image:Senhor_sorridente_feliz.jpg|thumb|200px|Membro do hackerspace feliz por ter um mirror ZFS (semelhante ao RAID-1) criptografadinho com LUKS, com cache em NVME e tudoooo, chega a ser poético de tão bonito.]]<br />
Autor: <br />
* [[Usuário:Coffnix|Coffnix]]<br />
<br />
'''"Home Network Defense"'''<br />
<br />
__TOC__<br />
<br />
= Utilize criptografia pra tudo =<br />
= Motivo =<br />
Pelo visto você é um bom menino (ou menine kekekeke), que criptografou seu disco certinho, e seguiu as boas práticas recomendadas pelo área31 hackerspace lendo os artigos [[HackForge]] e aprendeu até a criar seu próprio [[Storage_criptografado_em_roteador_residencial|storage criptografado em roteador residencial]]. Aprendeu inclusive a [[Desbloqueio_de_LUKS_com_um_dispositivo_USB_no_Boot|desbloquear seu LUKS durante o boot usando um device USB]]. Logo, agora vc quer um espelho de discos semelhante ao RAID-1, só que usando ZFS on Linux. Então se divirta :D<br />
<br />
É fundamental reconhecer que, embora indesejado, o acesso não autorizado aos seus arquivos é uma possibilidade real. Muitas pessoas acreditam na inviolabilidade de seus dados, confiando nas promessas de segurança feitas por empresas, ou na suposta eficácia de seus sistemas operacionais e softwares de proteção. No entanto, é um equívoco comum subestimar que, com a motivação correta e acesso físico, qualquer zé mané da esquina com conhecimentos básicos, ou em um cenário mais extremo, entidades governamentais (sim, agentes do '''ESTADO'''), podem acessar ou comprometer seus dados. Portanto, a implementação de criptografia em nível de sistema de arquivos em seus sistemas não é apenas recomendada, mas essencial. A mensagem aqui é clara: não negligencie a segurança dos seus dados. Priorize a criptografia abrangente para garantir sua proteção, ou seja, CRIPTOGRAFE TUDO, estúpido!<br />
<br />
<br />
== Requisitos ==<br />
Aqui utilizamos OpenSUSE + ZFS on Linux, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro.<br />
<br />
= Procedimento =<br />
== Instale o ZFS ==<br />
Configure o repositório "Filesystem Tools" criando o arquivo abaixo:<br />
{{file|name=/etc/zypp/repos.d/repo-filesystems.repo|body=<br />
[filesystems]<br />
name=Filesystem tools and FUSE-related packages (openSUSE_Tumbleweed)<br />
enabled=1<br />
autorefresh=1<br />
baseurl=https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/<br />
type=rpm-md<br />
gpgcheck=1<br />
gpgkey=https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/repodata/repomd.xml.key<br />
}}<br />
<br />
Agora atualize o cache e instale os pacotes necessários:<br />
{{console|body=<br />
###i## zypper refresh<br />
###i## zypper in zfs-kmp-default zfs-ueficert zfs<br />
}}<br />
<br />
Adicione o ZFS ao boot:<br />
{{console|body=<br />
###i## systemctl enable zfs-import-cache<br />
###i## systemctl enable zfs-mount<br />
}}<br />
<br />
== Configure o LUKS ==<br />
Agora configure crie o luks em cada disco. Lembre-se de alterar os ID dos devices de "'''ata-ST8000NE001-2M7101_WSD0SC28'''" e "'''ata-ST8000NE001-2M7101_WSD0SC30'''" para os seus:<br />
{{console|body=<br />
###i## mkdir -p /etc/area31/headerstore<br />
###i## cryptsetup luksFormat --force-password --type luks1 --cipher aes-xts-plain64 --hash sha512 --key-size 512 /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --align-payload 8192 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img<br />
###i## cryptsetup luksFormat --force-password --type luks1 --cipher aes-xts-plain64 --hash sha512 --key-size 512 /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC30 --align-payload 8192 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img<br />
}}<br />
<br />
Crie uma chave para desbloqueio do LUKS:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/keystore/keyfile ; dd if=/dev/urandom of=/opt/area31/keystore/keyfile bs=4096 count=1<br />
###i## chmod 400 /opt/area31/keystore/keyfile<br />
}}<br />
<br />
Inclua a chave em ambos os discos:<br />
{{console|body=<br />
###i## cryptsetup luksAddKey /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC30 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img /opt/area31/keystore/keyfile<br />
###i## cryptsetup luksAddKey /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img /opt/area31/keystore/keyfile<br />
}}<br />
<br />
Monte usando a chave:<br />
{{console|body=<br />
###i## cryptsetup luksOpen /dev/disk/by-id/ata -ST8000NE001-2M7101_WSD0SC30 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC30.img --key-file=/opt/area31/keystore/keyfile storage_disk1_luks<br />
###i## cryptsetup luksOpen /dev/disk/by-id/ata-ST8000NE001-2M7101_WSD0SC28 --header /etc/area31/headerstore/ata-ST8000NE001-2M7101_WSD0SC28.img --key-file=/opt/area31/keystore/keyfile storage_disk2_luks<br />
}}<br />
<br />
== Configure o mirror ZFS ==<br />
Crie um novo pool ZFS como mirror com 2 dispositivos LUKS montados previamente, com nome vdisk0 montado em /storage:<br />
{{console|body=<br />
###i## mkdir -p /storage ; chattr +i /storage<br />
###i## zpool create -f -o ashift=12 -m /storage vdisk0 mirror /dev/mapper/storage_disk1_luks /dev/mapper/storage_disk2_luks<br />
}}<br />
<br />
Inicie o serviço ZFS para montar o pool sem precisar reiniciar:<br />
{{console|body=<br />
###i## systemctl start zfs-mount<br />
###i## systemctl start zfs-import-cache<br />
}}<br />
<br />
Para desmontar /storage (se necessário):<br />
{{console|body=<br />
###i## zpool export vdisk0<br />
}}<br />
<br />
Para remontar o /storage (se necessário):<br />
{{console|body=<br />
###i## zpool import vdisk0<br />
}}<br />
<br />
Habilite o 'relatime' no pool ZFS para otimizar o acesso a tempos de leitura:<br />
{{console|body=<br />
###i## zfs set relatime=on vdisk0<br />
}}<br />
<br />
Ativar a compressão '''lz4''' para economizar espaço no pool ZFS:<br />
{{console|body=<br />
###i## zfs set compression=lz4 vdisk0<br />
}}<br />
<br />
Ative a deduplication ('''IMPORTANTE!!!'''):<br />
{{console|body=<br />
###i## zfs set dedup=on vdisk0<br />
}}<br />
<br />
Verifique se dedup está ativo:<br />
{{console|body=<br />
###i## zfs get dedup vdisk0<br />
}}<br />
<br />
Para checar o status do ZFS:<br />
{{console|body=<br />
###i## zfs get all vdisk0<br />
###i## zpool status<br />
}}<br />
<br />
Liste todos os datasets ZFS:<br />
{{console|body=<br />
###i## zfs list -o name,mountpoint,used,avail,refer<br />
}}<br />
<br />
=== Ative cache em SSD ou NVME ===<br />
Adicione um NVME ou SSD como cache ao pool ZFS. Basta criar uma partição comum do tipo 8e (Linux) entre 50GB e 100GB e depois adiciona-lo. Ex:<br />
{{console|body=<br />
###i## zpool add vdisk0 cache /dev/nvme0n1p7<br />
}}<br />
<br />
<br />
= Montagem automática do ZFS =<br />
Crie o config para o script:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/conf ; touch /opt/area31/conf/mount-luks-zfs.conf<br />
}}<br />
<br />
Com o seguinte conteúdo:<br />
{{file|name=/opt/area31/bin/mount-luks-zfs.sh|body=<br />
DISK_ID_01="ata-ST8000NE001-2M7101_WSD0SC30"<br />
DISK_ID_02="ata-ST8000NE001-2M7101_WSD0SC28"<br />
LUKS_DISK_01="storage_disk1_luks"<br />
LUKS_DISK_02="storage_disk2_luks"<br />
LUKS_KEYFILE="/etc/area31/keystore/keyfile"<br />
DIR_LUKS_HEADER="/etc/area31/headerstore"<br />
DIR_ZFS="/storage"<br />
ZFS_VDISK_01="vdisk0"<br />
}}<br />
<br />
Agora crie o script para montagem automática do ZFS:<br />
{{console|body=<br />
###i## mkdir -p /opt/area31/bin ; touch /opt/area31/bin/mount-luks-zfs.sh ; chmod +x /opt/area31/bin/mount-luks-zfs.sh<br />
}}<br />
<br />
Com o seguinte conteúdo:<br />
{{file|name=/opt/area31/bin/mount-luks-zfs.sh|lang=bash|body=<br />
#!/bin/bash<br />
<br />
###########################################################################<br />
# Verifica se o script já está em execução<br />
<br />
SCRIPT_NAME="${0##*/}"<br />
<br />
if [ "$(pgrep -cx "${SCRIPT_NAME}")" -gt 1 ]; then<br />
echo "O script já está em execução, aguarde 10 segundos para tentar novamente."<br />
sleep 10<br />
<br />
if [ "$(pgrep -cx "${SCRIPT_NAME}")" -gt 1 ]; then<br />
echo "O script já está em execução e não será executado novamente."<br />
exit 1<br />
fi<br />
fi<br />
<br />
###########################################################################<br />
# Iniciando script<br />
<br />
CNF="/opt/area31/conf/mount-luks-zfs.conf"<br />
<br />
# Checa se existe o arquivo de CONF, caso não exista ele sai<br />
if [ -f "${CNF}" ] && [ ! -z "${CNF}" ]; then<br />
source ${CNF}<br />
else<br />
echo "${CNF} não encontrado."<br />
exit 1<br />
fi<br />
<br />
ERROR="0"<br />
<br />
# Lista de variáveis para verificar<br />
variables=("DIR_ZFS" "ZFS_VDISK_01" "DIR_LUKS_HEADER" "LUKS_KEYFILE" "LUKS_DISK_02" "LUKS_DISK_01" "DISK_ID_02" "DISK_ID_01")<br />
<br />
# Função para verificar variável<br />
check_variable() {<br />
local var_name="$1"<br />
<br />
# Usando indireção para pegar o valor da variável<br />
local actual_value="${!var_name}"<br />
<br />
# Verificar se a variável está definida e não está vazia<br />
if [[ -z "$actual_value" ]]; then<br />
echo "Erro: $var_name não está definido ou está vazio!"<br />
return 1<br />
fi<br />
}<br />
<br />
# Verificar todas as variáveis do CONF antes de iniciar o script<br />
for var in "${variables[@]}"; do<br />
check_variable "$var" {{!}} {{!}} exit 1<br />
done<br />
<br />
###########################################################################################################<br />
<br />
check_pool_zfs_active(){<br />
CHECK_MOUNTED="$(mount {{!}} grep zfs {{!}} grep "${DIR_ZFS}" {{!}} wc -l)"<br />
if [ "${CHECK_MOUNTED}" -ne 0 ]; then<br />
CHECK_NONE_ZFS="$(zpool status {{!}} grep 'no pools available' {{!}} wc -l 2> /dev/null)"<br />
if [ "${CHECK_NONE_ZFS}" -ne 0 ]; then<br />
ZFS_UMOUNTED="1"<br />
else<br />
ZFS_UMOUNTED="0"<br />
fi<br />
else<br />
echo -e "/storage desmontado e ZFS inativo"<br />
exit 0<br />
fi<br />
}<br />
<br />
umount_luks(){<br />
CHECK_LUKS_DISK_01="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_01} {{!}} wc -l)"<br />
CHECK_LUKS_DISK_02="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_02} {{!}} wc -l)"<br />
<br />
if [ "${CHECK_LUKS_DISK_01}" -ne 0 ]; then<br />
cryptsetup luksClose "${LUKS_DISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao desmontar o LUKS \"${LUKS_DISK_01}\""<br />
ERROR="1"<br />
else<br />
echo -e "Sucesso ao desmontar o LUKS \"${LUKS_DISK_01}\""<br />
fi<br />
else<br />
echo "LUKS \"${LUKS_DISK_01}\" desmontado."<br />
fi<br />
<br />
if [ "${CHECK_LUKS_DISK_02}" -ne 0 ]; then<br />
cryptsetup luksClose "${LUKS_DISK_02}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao tentar desmontar o LUKS \"${LUKS_DISK_02}\""<br />
ERROR="1"<br />
else<br />
echo -e "Sucesso ao desmontar o LUKS \"${LUKS_DISK_02}\""<br />
fi<br />
else<br />
echo "LUKS \"${LUKS_DISK_02}\" desmontado."<br />
fi<br />
}<br />
<br />
<br />
mount_zfs(){<br />
# Checa se o disco está montado<br />
CHECK_LUKS_DISK_01="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_01} {{!}} wc -l)"<br />
CHECK_LUKS_DISK_02="$(lsblk -o NAME,TYPE,MOUNTPOINT {{!}} grep -w 'crypt' {{!}} grep ${LUKS_DISK_02} {{!}} wc -l)"<br />
<br />
# monte usando a chave do pendrive<br />
if [ "${CHECK_LUKS_DISK_01}" -eq 0 ]; then<br />
echo -e "Tentando montar o LUKS \"${LUKS_DISK_01}\" do dispositivo \"${DISK_ID_01}\"..."<br />
cryptsetup luksOpen "/dev/disk/by-id/${DISK_ID_01}" --header "${DIR_LUKS_HEADER}/${DISK_ID_01}.img" --key-file="${LUKS_KEYFILE}" "${LUKS_DISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao montar os dispositivos LUKS do dispositivo \"${DISK_ID_01}\"."<br />
fi<br />
fi<br />
<br />
if [ "${CHECK_LUKS_DISK_02}" -eq 0 ]; then<br />
echo -e "Tentando montar o LUKS \"${LUKS_DISK_02}\" do dispositivo \"${DISK_ID_02}\"..."<br />
cryptsetup luksOpen "/dev/disk/by-id/${DISK_ID_02}" --header "${DIR_LUKS_HEADER}/${DISK_ID_02}.img" --key-file="${LUKS_KEYFILE}" "${LUKS_DISK_02}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao montar os dispositivos LUKS do dispositivo \"${DISK_ID_02}\"."<br />
fi<br />
fi<br />
<br />
zfs get all "${ZFS_VDISK_01}" &> /dev/null<br />
if [ "$?" -eq 0 ]; then<br />
echo -e "ZFS inicializado. Caso deseje utilize $0 check ou $0 umount"<br />
else<br />
if [ "${ERROR}" -eq 0 ]; then<br />
echo -e "LUKS montado. Tentando inicializar o ZFS..."<br />
zpool import "${ZFS_VDISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
ERROR="1"<br />
exit 1<br />
else<br />
echo -e "Sucesso ao inicializar o ZFS.\n$(df -hT "${DIR_ZFS}")"<br />
fi<br />
fi<br />
fi<br />
}<br />
<br />
<br />
case "$1" in<br />
check)<br />
zfs get all "${ZFS_VDISK_01}"<br />
zpool status "${ZFS_VDISK_01}"<br />
;;<br />
umount)<br />
CHECK_MOUNTED="$(mount {{!}} grep zfs {{!}} grep "${DIR_ZFS}" {{!}} wc -l)"<br />
if [ "${CHECK_MOUNTED}" -eq 0 ]; then<br />
echo -e "ZFS desmontado. Tentando desmontar o LUKS..."<br />
umount_luks<br />
else<br />
zpool export "${ZFS_VDISK_01}"<br />
if [ "$?" -ne 0 ]; then<br />
echo -e "Erro ao tentar desmontar o ZFS \"${ZFS_VDISK_01}\""<br />
else<br />
umount_luks<br />
fi<br />
fi<br />
;;<br />
*)<br />
mount_zfs<br />
;;<br />
esac<br />
}}<br />
<br />
<br />
<br />
== Configure o systemd ==<br />
Caso queira que o ZFS seja montado automaticamente no processo de boot, crie o seguinte arquivo:<br />
{{file|name=/etc/systemd/system/mount-luks-zfs.service|body=<br />
[Unit]<br />
Description=mount-luks-zfs<br />
Wants=networking.service<br />
After=networking.service<br />
<br />
[Service]<br />
Type=simple<br />
RemainAfterExit=yes<br />
ExecStart=/opt/area31/bin/mount-luks-zfs.sh<br />
ExecStop=/opt/area31/bin/mount-luks-zfs.sh umount<br />
ExecReload=/opt/area31/bin/mount-luks-zfs.sh<br />
Restart=on-failure<br />
RestartSec=5s<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
<br />
Ative e inicie:<br />
{{console|body=<br />
###i## systemctl enable /etc/systemd/system/mount-luks-zfs.service<br />
###i## systemctl start mount-luks-zfs.service<br />
}}<br />
<br />
Seja feliz! :D<br />
<br />
[[Image:Zpool status.png|500px]]<br />
<br />
<br />
[[Categoria:KnowledgeBase]]<br />
[[Categoria:HackingDocs]]</div>Coffnix