Pages:
Author

Topic: Info su configurazione super ottimizzata di un full node bitcoin (Read 343 times)

legendary
Activity: 3276
Merit: 2898
Magari ricordo male, in caso perdonatemi, ma Bitcoin FIBRE (Fast Internet Bitcoin Relay Engine) non era nato proprio per ridurre al minimo i tempi di propagazione dei blocchi?

EDIT: ricordavo bene, ma vedo che non viene aggiornato dalla versione 0.16  Undecided

Ricordi bene, ne parlo piu' approfonditamente qui:

https://bitcointalksearch.org/topic/erlay-il-nuovo-protocollo-di-relay-bitcoin-5379465

FIBRE e'  abbandonato da anni, invece sta per essere incluso in bitcoin core ERLAY.
member
Activity: 110
Merit: 94
Magari ricordo male, in caso perdonatemi, ma Bitcoin FIBRE (Fast Internet Bitcoin Relay Engine) non era nato proprio per ridurre al minimo i tempi di propagazione dei blocchi?

EDIT: ricordavo bene, ma vedo che non viene aggiornato dalla versione 0.16  Undecided
legendary
Activity: 3766
Merit: 1742
Join the world-leading crypto sportsbook NOW!
Già, "banalmente".
Non ho la minima idea di cosa stiate parlando, provo un pò di imbarazzo.
 








Piccolo riassunto doveroso! Potrebbe esserci qualche errorino

Internet non è altro che un insieme di router di diverse aziende interconnessi tra di loro. Non parlo dei router Fastweb, Tim o Tiscali in comodato tenuti in casa, parlo dei router che fanno da spina dorsale a un intero provider o grossa azienda, sono i router che supportano il protocollo BGP (Border Gateway protocol), un protocollo abbastanza pesante che include una lista di tutte le reti autonome raggiungibili (AS, Autonomous system). Ogni provider è una rete autonoma, generalmente anche le aziende grosse non informatiche aprono la loro rete autonoma per maggiore controllo (es. compagnie petrolifere).

Ci sono dei siti che danno informazioni sulle interconnessioni, per es. qui la pagina di Hurricane Electric su l'ISP Tiscali: https://bgp.he.net/AS8612

Queste reti autonome hanno anzitutto un AS Number, che identifica solamente l'entità/azienda, e poi hanno a disposizione dei blocchi di indirizzi IP che permettono di raggiungere i singoli computer/dispositivi della rete.


Qui arriviamo alla parte arcaica per questo forum di crypto, defi, nft e tecnologie nuovissime, le reti autonome non hanno nessuna identità digitale, tutto si basa sulle assegnazioni non autenticate di un ente statunitense chiamato IANA, che ha suddiviso poi il mondo in zone geografiche, delegando per es. la parte europea al RIPE.


Ovvero, sono la Mario rossi connettività SRL, ho il mio router bgp già operativo in un internet exchange (un datacenter con molti provider, solitamente in città medio/grandi tipo Milano o Roma), voglio rendermi raggiungibile dal resto del mondo: vado dal RIPE che per un canone annuale mi darà il mio AS Number (ad es AS4000) e il mio blocco di indirizzi IP (es. 100.1.1.0/24)

Questi due parametri, li inserisco io direttamente nella configurazione del mio router.... non c'è password, non c'è firma digitale (almeno fino a poco fa, e ancora non standardizzata), nulla...

Chiaramente il RIPE adotta una sorta di polizia delle rotte, e se configuro male il mio router annunciando blocchi di indirizzi non miei, ricevo degli avvertimenti da delle persone in carne ed ossa, al terzo avvertimento il RIPE mi banna.

L'unica forma di "proprietà/certificato di locazione" degli indirizzi IP è la LOA, la letter of authorization... una semplice lettera scritta da parte del RIPE dove c'è scritto "hai la possibilità di utilizzare tale blocco indirizzi IP da tal giorno a tal giorno". La lettera può anche essere firmata digitalmente, ciò non toglie che è il singolo amministratore di reti che in buona fede poi configura bene il router (pena il ban in caso contrario, nonostante ciò ci sono stati per es. dei BGP hijack importanti per redirezionare il traffico di alcune pool BTC in passato, costati molto cari)


Ultimamente è aumentata la facilità di avere il proprio ISP grazie ad alcuni grossi provider cloud, che affittano dei router BGP già interconnessi, e quindi anche il privato deve solo farsi un leasing dal RIPE degli IP e ottenere il proprio AS Number, diciamo sui 1000€ /anno si potrebbe già fare qualcosa di molto raffazzonato in ipv6
legendary
Activity: 2380
Merit: 17063
Fully fledged Merit Cycler - Golden Feather 22-23
quindi comprendo benissimo ocme sia divertente e la sfida

Complimenti.
Non sono un übernerd come voi due, quindi non capisco bene i "trucchi da vecchio sistemista" ma di certo sono uno ossessionato dalle classifiche (si era capito?) e quindi, ben fatto!


Per es. vultr o altri servizi cloud offrono l'opportunità di creare sessioni bgp portando il proprio spazio IP presso di loro (banalmente fornendogli la letter of authorization che si ottiene quando si affitta un blocco v4 o v6)

Quindi un AS piccolino in realtà può non corrispondere a una piccola rete indipendente, semplicemente è totalmente hostato su VPS che consentono di fare sessioni bgp

Già, "banalmente".
Non ho la minima idea di cosa stiate parlando, provo un pò di imbarazzo.
 





legendary
Activity: 3696
Merit: 4343
The hacker spirit breaks any spell
tutte robe molto belle lato nerd
avendo tempo da dedicarci, e' un bellissimo anzi stupendo passatempo
sono invidioso e non poco, ma in senso positivo

cmq appena ho tempo, quantomeno mi installo raspiblitz, ma questo protrebbe essere il progetto dopo

avevo messo su un masternode di una coin particolare legata a un progetto di sviluppo (zerocracy) ed ero al top all'inizio

quindi comprendo benissimo ocme sia divertente e la sfida
legendary
Activity: 3276
Merit: 2898


Essere su un AS (Autonomous System) senza altri nodi.

Questa e' una metrica molto interessante e furba: se installo un nodo su un AS affollato di altri nodi, il punteggio viene
molto penalizzato. Tutto cio' serve a sgamare i nodi tutti "ammucchiati" da uno stesso provider,
per capirci i nodi stile ethereum che alla fine sono tutti ammucchiati su due o tre piattaforme.





Non è furba, perché esistono molti AS quasi virtuali

Per es. vultr o altri servizi cloud offrono l'opportunità di creare sessioni bgp portando il proprio spazio IP presso di loro (banalmente fornendogli la letter of authorization che si ottiene quando si affitta un blocco v4 o v6)

Quindi un AS piccolino in realtà può non corrispondere a una piccola rete indipendente, semplicemente è totalmente hostato su VPS che consentono di fare sessioni bgp

Beh comunque ti devi sbattere  per rimediare un AS, pagare il RIPE (se sei in europa) e insomma,
una cosa che non e' certo da pivelli. Puoi farlo se sei bello motivato, o  se magari ce l'hai gia' per altre cose.

legendary
Activity: 3766
Merit: 1742
Join the world-leading crypto sportsbook NOW!


Essere su un AS (Autonomous System) senza altri nodi.

Questa e' una metrica molto interessante e furba: se installo un nodo su un AS affollato di altri nodi, il punteggio viene
molto penalizzato. Tutto cio' serve a sgamare i nodi tutti "ammucchiati" da uno stesso provider,
per capirci i nodi stile ethereum che alla fine sono tutti ammucchiati su due o tre piattaforme.





Non è furba, perché esistono molti AS quasi virtuali

Per es. vultr o altri servizi cloud offrono l'opportunità di creare sessioni bgp portando il proprio spazio IP presso di loro (banalmente fornendogli la letter of authorization che si ottiene quando si affitta un blocco v4 o v6)

Quindi un AS piccolino in realtà può non corrispondere a una piccola rete indipendente, semplicemente è totalmente hostato su VPS che consentono di fare sessioni bgp
legendary
Activity: 3276
Merit: 2898
e dopo settimane di studio e tuning... sono al primo posto!

ho ancora qualcosa da limare, e ci sono "concorrenti" molto agguerriti... ma intanto ci sono arrivato.

~~~~~~

congratulazioni, vive e sincere
se ti va condividici come hai fatto, e' sempre molto interessante spingere le prestazioni al massimo
sicuramente gira sotto OS linux,non vedo altra soluzione per un nodo ottimizzato (di sicuro nn con "finestre")

Cose indispensabili

Avere almeno due linee dati.

Ci sono un sacco di metriche sensibilissime anche a down di quelche secondo, con una sola linea e' praticamente impossibile avere
un uptime di mesi senza neanche una micro-interruzione.

Linee in fibra (vera) da almeno 100 Mbit (anche la banda e la latenza sono metriche che contano moltissimo)

Essere su un AS (Autonomous System) senza altri nodi.

Questa e' una metrica molto interessante e furba: se installo un nodo su un AS affollato di altri nodi, il punteggio viene
molto penalizzato. Tutto cio' serve a sgamare i nodi tutti "ammucchiati" da uno stesso provider,
per capirci i nodi stile ethereum che alla fine sono tutti ammucchiati su due o tre piattaforme.

Cose importanti

Un sistema operativo vero, io uso linux.

Io uso un HW intel molto carrozzato (8 core, 64 Gb di ram 2 tera SSD), ma solo perche' mi serve per fare
le elaborazioni delle statistiche sui dati on-chain, in realta' basterebbero 2 core, qualche GB di ram e disco SSD.

Una versione aggiornata di Bitcoin Core.

Seguendo alla perfezione tutte queste prescrizioni, si arriva circa alla 50^ posizione, un po' piu' un po' meno.

Per andare piu' su, ci vogliono un po' di trucchi da vecchio sistemista:

una manciata di modifiche al codice di Bitcoin core, un tuning fico del firewall e del config di bitcoin core...
ma non posso mica dirvi tutto tutto, altrimenti il divertimento dov'e'?


Comunque c'e' un solo vero avversario: un nodo russo super-cazzuto: 185.61.93.220, che da un giorno
sta provando a modificare dei parametri e quindi e' temporanemente retrocesso.
Quello e' l'unico che mi da' veramente filo da torcere, ha tutte metriche spaziali.






legendary
Activity: 3696
Merit: 4343
The hacker spirit breaks any spell
e dopo settimane di studio e tuning... sono al primo posto!

ho ancora qualcosa da limare, e ci sono "concorrenti" molto agguerriti... ma intanto ci sono arrivato.

~~~~~~

congratulazioni, vive e sincere
se ti va condividici come hai fatto, e' sempre molto interessante spingere le prestazioni al massimo
sicuramente gira sotto OS linux,non vedo altra soluzione per un nodo ottimizzato (di sicuro nn con "finestre")
legendary
Activity: 3276
Merit: 2898
e dopo settimane di studio e tuning... sono al primo posto!

ho ancora qualcosa da limare, e ci sono "concorrenti" molto agguerriti... ma intanto ci sono arrivato.

https://bitnodes.io/nodes/leaderboard/

member
Activity: 107
Merit: 168
Security Researcher and Writer
Quote
Sono a 8 millisecondi dal MIX, con un peering abbastanza buono a tutti  i principali AS. Direi che come connettivita' primaria sto messo bene, infatti sono a pochi millisecondi da parecchi nodi della leaderboard:

Ottimo! 8 ms è un ritardo pressoché accettabile in termini di connettività primaria, dove sta fisicamente il nodo?

Quote
in realta' ho deciso di fare tutto sulla stessa macchina, sezna tunnel o robe che rallentano.

Sì, poi sono scelte personali se tenere o meno un portafoglio all'interno di un nodo bitcoin.

Quote
Interessante. E' vecchissimo, ma e' proprio quel che cercavo. Dove l'hai trovato?

Da un vecchio thread su StackExchange: https://bitcoin.stackexchange.com/questions/3617/is-there-a-list-of-mining-pools-bitcoin-nodes-ips
2012! Proprio vecchio, io non sapevo neanche cosa fossero i bitcoin.
legendary
Activity: 3276
Merit: 2898
quindi @gbianchi, reputi stacks molto affidabile?
perche se sia tu, che plutosky che altri lo ritenete affidabile allora cambia tanto, mi installo davvero il wallet Smiley e ne compro un po di questi

seguo con attenzione

Affidabile ANCORA NO, interessante SI

ti rimando a questo chilometrico post dove tiro un po' le somme di cosa ho scoperto:

https://bitcointalksearch.org/topic/m.58531668
legendary
Activity: 3696
Merit: 4343
The hacker spirit breaks any spell
quindi @gbianchi, reputi stacks molto affidabile?
perche se sia tu, che plutosky che altri lo ritenete affidabile allora cambia tanto, mi installo davvero il wallet Smiley e ne compro un po di questi

seguo con attenzione
legendary
Activity: 3276
Merit: 2898
Io che sono un curiosone ti faccio una domanda.
Ora che hai un nodo superveloce: cosa vuoi farci?
Non serve che riveli tutti i dettagli!

Ah te lo dico senza problemi:

Per minare il PoX di stacks (proof of  transfer), devi fare delle transazioni di ancoraggio sulla rete bitcoin.

Mi sono fatto dei programmi di statistiche, ed ho visto che i (pochi) miner competitivi
su stacks riescono ad effettuare transazioni sulla rete bitcoin in modo velocissimo.

Se voglio provare ad essere competitivo, mi serve un nodo bitcoin (e poi anche stacks)
coi controcazzi.

Questi sono i miner di stacks. La terza colonna indica i secondi che passano da un blocco all'altro di bitcoin.
Tutti i buchi indicano che i miner NON sono riusciti a minare un blocco stacks perche' il blocco bitcoin e'
usito troppo velocemente. Piu' i mioner sono competitivi piu' riescono a beccare tutti i blocchi bitcoin.




legendary
Activity: 3276
Merit: 2898
Seguo, sono curioso anche io. Una volta che hai il nodo super veloce puoi crearti un tunnel VPN/SSH e connetterti al nodo solo per il tuo wallet e i tuoi dispositivi.

in realta' ho deciso di fare tutto sulla stessa macchina, sezna tunnel o robe che rallentano.

Localhost (network virtuale) e' sempre piu' veloce di qualsiasi altro network fisico, le latenze
sono  praticamente nulle e la banda praticamente illimitata.

Peccato che bitcoind non supporti gli unix socket, che sarebbero ancora piu' veloci. Pazienza.
legendary
Activity: 3276
Merit: 2898
Cercare di creare un nodo super ottimizzato: come sfida tecnica sembra molto interessante!

Tento di risponderti, provando a sottolineare alcuni punti.

Per ridurre al minimo le latenze di rete, a mio parere, bisognerebbe avere una macchina in un datacenter (consiglio dell'ubicazione del nodo: centro europa, dato che raggiungi molte destinazioni geografiche senza troppi problemi [e senza passare per troppe dorsali]). L'hardware e la connettività che un datacenter dispone fanno impallidire qualsiasi connessione casalinga/privata/aziendale, considera che spesso e volentieri i datacenter hanno contratti commerciali ad-hoc che non impongono alcun limite sulla banda/connettività. Invece contratti di tipo aziendali (a meno di non essere collegati direttamente al MIX o al NAMEX)/business/privati soffrono di limitazioni piuttosto pesanti sul traffico.

Se il nodo è nella stessa rete dell'azienda in cui hai comprato l'IP, purtroppo ci potrebbero essere dei ritardi dovuti al fatto che l'azienda probabilmente compra da terzi i server e li affitta. Per avere un nodo super ottimizzato, dovresti cercare di avere una macchina vicino alla dorsale (con una rete collegata al MIX o al NAMEX per quanto riguarda l'Italia) o con un datacenter centro-europeo (Francoforte). In questo modo dovresti avere latenze di rete al minimo.

Per quanto riguarda la parte software, bitcoind è configurabile tramite il bitcoind.conf. C'è da sottolineare che non ci sono molte opzioni per beneficiare di una "ottimizzazione", Bitcoind infatti già cerca di ottimizzare le connessioni.

Se hai banda illimitata e molte risorse a disposizione, imposta maxuploadtarget a 0 e aumenta il numero massimo di connessioni contemporaneamente. Non ci sono limiti (a parte quelli dati dal kernel):  finché ci sono risorse dovresti provare a portare i parametri al massimo possibile. Se vuoi averlo ancora più ottimizzato e veloce, cerca di non avere una distribuzione troppo pesante. Se vuoi cimentarti, puoi anche ricompilare il Linux kernel e costruirti tramite buildroot una distribuzione minima (200 MB) con kernel, libc, bitcoind e ssh. Avrai pochissimi processi in esecuzione e la maggior parte delle risorse per bitcoind.


Sono a 8 millisecondi dal MIX, con un peering abbastanza buono a tutti  i principali AS. Direi che come connettivita' primaria sto messo bene,
infatti sono a pochi millisecondi da parecchi nodi della leaderboard:



Per quello che riguarda bitcoind, ho deciso di ricompilarmelo per ottimizzarlo a massimo sul processore, in piu' modificare qualche opzione Smiley
Propro adessio sto upgradando su una macchina con dei core che vanno a 2.9 Ghz (quantita' spropositata di core e di ram, per altre cose che devo farci)


Quote
Quote
C'è una lista dei nodi delle mining pool?

Io ho trovato questo: https://pastehtml.com/view/c7rf4x1gc.rtxt anche se non è proprio recentissimo. Potresti provare a collegarti con i nodi e vedere se ti rispondono.

Interessante. E' vecchissimo, ma e' proprio quel che cercavo. Dove l'hai trovato?
member
Activity: 107
Merit: 168
Security Researcher and Writer
Seguo, sono curioso anche io. Una volta che hai il nodo super veloce puoi crearti un tunnel VPN/SSH e connetterti al nodo solo per il tuo wallet e i tuoi dispositivi.
legendary
Activity: 2380
Merit: 17063
Fully fledged Merit Cycler - Golden Feather 22-23
Io che sono un curiosone ti faccio una domanda.
Ora che hai un nodo superveloce: cosa vuoi farci?
Non serve che riveli tutti i dettagli!
member
Activity: 107
Merit: 168
Security Researcher and Writer
Cercare di creare un nodo super ottimizzato: come sfida tecnica sembra molto interessante!

Tento di risponderti, provando a sottolineare alcuni punti.

Per ridurre al minimo le latenze di rete, a mio parere, bisognerebbe avere una macchina in un datacenter (consiglio dell'ubicazione del nodo: centro europa, dato che raggiungi molte destinazioni geografiche senza troppi problemi [e senza passare per troppe dorsali]). L'hardware e la connettività che un datacenter dispone fanno impallidire qualsiasi connessione casalinga/privata/aziendale, considera che spesso e volentieri i datacenter hanno contratti commerciali ad-hoc che non impongono alcun limite sulla banda/connettività. Invece contratti di tipo aziendali (a meno di non essere collegati direttamente al MIX o al NAMEX)/business/privati soffrono di limitazioni piuttosto pesanti sul traffico.

Se il nodo è nella stessa rete dell'azienda in cui hai comprato l'IP, purtroppo ci potrebbero essere dei ritardi dovuti al fatto che l'azienda probabilmente compra da terzi i server e li affitta. Per avere un nodo super ottimizzato, dovresti cercare di avere una macchina vicino alla dorsale (con una rete collegata al MIX o al NAMEX per quanto riguarda l'Italia) o con un datacenter centro-europeo (Francoforte). In questo modo dovresti avere latenze di rete al minimo.

Per quanto riguarda la parte software, bitcoind è configurabile tramite il bitcoind.conf. C'è da sottolineare che non ci sono molte opzioni per beneficiare di una "ottimizzazione", Bitcoind infatti già cerca di ottimizzare le connessioni.

Se hai banda illimitata e molte risorse a disposizione, imposta maxuploadtarget a 0 e aumenta il numero massimo di connessioni contemporaneamente. Non ci sono limiti (a parte quelli dati dal kernel):  finché ci sono risorse dovresti provare a portare i parametri al massimo possibile. Se vuoi averlo ancora più ottimizzato e veloce, cerca di non avere una distribuzione troppo pesante. Se vuoi cimentarti, puoi anche ricompilare il Linux kernel e costruirti tramite buildroot una distribuzione minima (200 MB) con kernel, libc, bitcoind e ssh. Avrai pochissimi processi in esecuzione e la maggior parte delle risorse per bitcoind.

Quote
C'è una lista dei nodi delle mining pool?

Io ho trovato questo: https://pastehtml.com/view/c7rf4x1gc.rtxt anche se non è proprio recentissimo. Potresti provare a collegarti con i nodi e vedere se ti rispondono.
legendary
Activity: 3276
Merit: 2898

Ma i pochi nodi semplicemente sono vicini, quindi penso in italia/europa... io penso bisogna essere vicini a quelli che producono i blocchi, quindi US, russia, Kazakistan, ecc... se cerchi di essere aggiornato il più velocemente possibile per primo.

In realtà non c'è bisogno perché già loro fanno un lavoro di ottimizzazione dei loro nodi, per ridurre i blocchi orfani. Sono loro che cercano di connettersi a gran parte della rete con soluzioni per ridurre la latenza (fino ad un certo livello, perché poi le dorsali in fibra hanno comunque i loro limiti).

Ah beh piu' veloce della luce non puoi andare.
Se immagini di avere una linea in fibra diretta per fare 10.000 km nella migliore delle ipotesi
ci vogliono 33 millisecondi per andare + 33 per tornare.

Ma nella situazione reale, dove in mezzo ci sono anche le latenze di qualche router, e le linee fanno diversi giri,
ci sono connessioni che non riesci a fare sotto i 100/120 ms.

Comunque non e' una cosa banale quella di rendere un nodo veloce, anche perche' se ci carichi sopra troppi
nodi connessi, succede che il "dialogo" che deve gestire aumenta, e quindi le latenze interne date dalle code
di messaggi che si creano aumentano.

Probabilmente il top del top e' avere piu' nodi connessi ognuno ad una ventina di peer primari.
e poi sparare le transazioni alla tua batteria di nodi che  a loro volta parlano direttamente sui super nodi.

Tutto cio' detto, probabilmente l'unico sistema che ho di migliorare ancora le cose e' individuare esattamente
i nodi di uscita delle mining pool e parlare direttamente con loro Ma non ho veramente idea di come fare.

C'e' un database dei nodi delle mining pool?





Pages:
Jump to: