gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 07, 2021, 11:30:07 AM Last edit: December 08, 2021, 07:17:02 PM by gbianchi |
|
Per un progetto che sto seguendo, ho attivato un full node bitcoin.
il nodo e' questo:
93.188.227.245:8333
Ho pero' bisogno che sia il piu' possibile veloce, soptratutto per quel che riguarda la connessione e il dialogo con gli altri nodi.
Per capirci, vorrei arrivare i primi posti della leaderboard di bitnodes.
ho gia' provveduto a metterlo in una rete affidabile, con 3 connessioni in fibra gestite via BGP per avere un uptime di rete il piu' possibile vicino al 100% e anche l'HW del nodo e' dimensionato in modo piu' che abbondante.
EDIT
Fatto, grazie.
|
|
|
|
alexrossi
Legendary
Offline
Activity: 3836
Merit: 1745
Join the world-leading crypto sportsbook NOW!
|
|
December 08, 2021, 08:05:02 PM |
|
Ciao, potresti dare più indicazioni su come hai fatto?
So che nel codice di bitcoin core c'era un limite scritto via software di più o meno di 125 connessioni
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 08, 2021, 09:49:44 PM |
|
Ciao, potresti dare più indicazioni su come hai fatto?
So che nel codice di bitcoin core c'era un limite scritto via software di più o meno di 125 connessioni
ma vedi, a me interessava la velocita' non tanto il numero di nodi a cui connettermi o robe simili. E facendo un po' di misurazioni, la velocita' migliore non ce l'hai con tanti nodi di scarsa qualita', ma bensi' con pochi che abbiano tempi di propagazione di pochi millisecondi. ne ho trovato alcuni che hanno dei tempi attorno ai 20/30 ms di propagazione. In pratica vale il vecchio detto pochi ma buoni Non credo che cosi' faro' felice bitnodes.io, ma per quello che devo fare va bene cosi'.
|
|
|
|
alexrossi
Legendary
Offline
Activity: 3836
Merit: 1745
Join the world-leading crypto sportsbook NOW!
|
|
December 08, 2021, 09:57:07 PM |
|
Ciao, potresti dare più indicazioni su come hai fatto?
So che nel codice di bitcoin core c'era un limite scritto via software di più o meno di 125 connessioni
ma vedi, a me interessava la velocita' non tanto il numero di nodi a cui connettermi o robe simili. E facendo un po' di misurazioni, la velocita' migliore non ce l'hai con tanti nodi di scarsa qualita', ma bensi' con pochi che abbiano tempi di propagazione di pochi millisecondi. ne ho trovato alcuni che hanno dei tempi attorno ai 20/30 ms di propagazione. In pratica vale il vecchio detto pochi ma buoni Non credo che cosi' faro' felice bitnodes.io, ma per quello che devo fare va bene cosi'. 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).
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 08, 2021, 11:02:47 PM Merited by fillippone (6) |
|
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?
|
|
|
|
serhack
Member
Offline
Activity: 107
Merit: 168
Security Researcher and Writer
|
|
December 15, 2021, 10:03:55 AM |
|
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. 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.
|
|
|
|
fillippone
Legendary
Online
Activity: 2282
Merit: 16382
Fully fledged Merit Cycler - Golden Feather 22-23
|
|
December 15, 2021, 10:45:40 PM |
|
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!
|
|
|
|
serhack
Member
Offline
Activity: 107
Merit: 168
Security Researcher and Writer
|
|
December 16, 2021, 08:29:04 AM |
|
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.
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 16, 2021, 11:20:47 AM Last edit: December 16, 2021, 12:03:50 PM by gbianchi |
|
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 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) 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?
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 16, 2021, 11:24:32 AM |
|
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.
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 16, 2021, 11:28:21 AM Last edit: December 16, 2021, 11:53:35 AM by gbianchi |
|
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.
|
|
|
|
babo
Legendary
Offline
Activity: 3724
Merit: 4395
The hacker spirit breaks any spell
|
|
December 16, 2021, 12:21:58 PM |
|
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 e ne compro un po di questi seguo con attenzione
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
December 16, 2021, 12:35:11 PM Merited by fillippone (3) |
|
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 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://bitcointalk.org/index.php?topic=5370568.msg58531668#msg58531668
|
|
|
|
serhack
Member
Offline
Activity: 107
Merit: 168
Security Researcher and Writer
|
|
December 16, 2021, 01:02:45 PM |
|
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? 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. 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-ips2012! Proprio vecchio, io non sapevo neanche cosa fossero i bitcoin.
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
January 22, 2022, 09:29:26 PM Last edit: January 25, 2022, 11:04:05 AM by gbianchi Merited by fillippone (3) |
|
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/
|
|
|
|
babo
Legendary
Offline
Activity: 3724
Merit: 4395
The hacker spirit breaks any spell
|
|
January 24, 2022, 03:36:03 PM |
|
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")
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
January 24, 2022, 04:36:11 PM Merited by fillippone (3) |
|
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 indispensabiliAvere 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 importantiUn 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.
|
|
|
|
alexrossi
Legendary
Offline
Activity: 3836
Merit: 1745
Join the world-leading crypto sportsbook NOW!
|
|
January 24, 2022, 04:44:26 PM |
|
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
|
|
|
|
gbianchi (OP)
Legendary
Online
Activity: 3206
Merit: 2735
|
|
January 24, 2022, 04:51:35 PM |
|
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.
|
|
|
|
babo
Legendary
Offline
Activity: 3724
Merit: 4395
The hacker spirit breaks any spell
|
|
January 25, 2022, 03:47:52 PM Merited by fillippone (3) |
|
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
|
|
|
|
|