Bitcoin Forum
June 22, 2024, 02:51:09 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: cosa dovrebbe fare questo client di diverso Qtbitcoin NFTF  (Read 981 times)
nutriagrigia (OP)
Sr. Member
****
Offline Offline

Activity: 1270
Merit: 254


Oikos.cash | Decentralized Finance on Tron


View Profile
June 11, 2014, 07:51:44 AM
 #1

Per curiosità ho provato questo
https://bitcointalk.org/index.php?topic=22434.0
il codice sotto
https://github.com/ShadowOfHarbringer/bitcoin-nftf/tags

Pensavo di trovarmi un client che permette di fare qualcosa di diverso sull'impostazione della fee, invece mi trovo una prodotto tale quale a quello ufficiale compilato.
Unica differenza sembra la dimensione
bitcoin-qt.exe originale 26782 KB
bitcoin-qt.exe modificato 189340 KB

bitcoin-cli.exe originale 3453
bitcoin-cli.exe modificato 3427
bitcoind.exe 7766
bitcoind.exe modificato 7056

Per compilare ho usato questeistruzioni
https://bitcointalk.org/index.php?topic=149479.0


█▀█ █ █▄▀ █▀█ █▀ ░ █▀▀ ▄▀█ █▀ █░█
█▄█ █ █░█ █▄█ ▄█ ▄ █▄▄ █▀█ ▄█ █▀█



DeFi on Tron
and trustless token exchange
█████











█████

██████████████████████████████████████████████████████

JOIN OIKOS

██████████████████████████████████████████████████████

█████
    █
    █
    █
    █
    █
    █
    █
    █
    █
    █
    █
█████
nutriagrigia (OP)
Sr. Member
****
Offline Offline

Activity: 1270
Merit: 254


Oikos.cash | Decentralized Finance on Tron


View Profile
June 12, 2014, 06:44:51 AM
 #2

Sono riuscito a compilarmi una versione, sono riuscito pure a modificare una riga di quel codice che per me è  arabo. Cosi la forzatura della fee l'ho impostata a 1/100 di valore standard. Ovviamente ho provato a lanciare una microtransazione e ora aspetto a vedere se va a buon fine.
Lanciata  6 ore fa, vedo la transazione in pending con 0 conferme.

questa guida
https://bitcointalk.org/index.php?topic=149479.0
e piu che perfetta, tuttavia ho incontrato grosse difficoltà a compilarmi la versione, perchè a volte le librerie venivano compilate male, e magari ripetendo una seconda compilazione la cosa funzionava. Senza contare che alcune librerie si compilano anche andando a pescare precedenti compilazioni, che se nel caso non sono andate bene, bloccano  o peggio determinano un'errata compilazione delle nuove.
Quello che mancherebbe  per rendere la cosa fattibile a tutti, è il poter controllare dopo ogni step, la corretezza della compilazione delle varie librerie.

Il codice credo sia scritto in c++ linguaggio a oggetti. Per quanto mi riguarda è arabo duro e crudo
Ho isolato il codice che determina i vari filtri della fee. E bastato cercare le differenze tra il codice originale e quello modificato messo sul primo post.

Il file da modificare si chiama wallet.cpp
le righe che interessano la fee sopo piu o meno queste

Quote
               
            // Check that enough fee is included
                int64_t nPayFee = nTransactionFee * (1 + (int64_t)nBytes / 1000);
                bool fAllowFree = AllowFree(dPriority);
                int64_t nMinFee = GetMinFee(wtxNew, nBytes, fAllowFree, GMF_SEND);
                if (nFeeRet < max(nPayFee, nMinFee))
                {
                    nFeeRet = max(nPayFee, nMinFee);
                    continue;
                }

dove si vede che cè una sorta di doppio filtro sulla fee, uno impostabile dall'utente, uno forzato dal programma. Si prende il valore maggiore dei 2
nMinFee e la variabile che contiene la fee minima impostata dal programma

Ho modificato questa riga
int64_t nMinFee = GetMinFee(wtxNew, nBytes, fAllowFree, GMF_SEND);
con
int64_t nMinFee = GetMinFee(wtxNew, nBytes, fAllowFree, GMF_SEND) / 100;
e ho ridotto di un fattore 100 la minima fee applicata dal programma.

Se la transazione mi passa ugualmente, condivido il programma compilato.
Ovviamente andrebbero fatte le solite considerazioni
 è bene non fidarsi di compilazioni fatte da esterni sopratutto se nel client ci mettiamo valori imporatnti.
e la seconda riguarda il fatto di usare una fee fuori specifica.
Su questo post la cosa viene ben evidenziata
https://bitcointalk.org/index.php?topic=22434.0


█▀█ █ █▄▀ █▀█ █▀ ░ █▀▀ ▄▀█ █▀ █░█
█▄█ █ █░█ █▄█ ▄█ ▄ █▄▄ █▀█ ▄█ █▀█



DeFi on Tron
and trustless token exchange
█████











█████

██████████████████████████████████████████████████████

JOIN OIKOS

██████████████████████████████████████████████████████

█████
    █
    █
    █
    █
    █
    █
    █
    █
    █
    █
    █
█████
Pinbot
Member
**
Offline Offline

Activity: 64
Merit: 10



View Profile
June 12, 2014, 07:22:01 AM
 #3

Hai già condiviso le righe di codice modificate, manca giusto la versione ma imho è sufficiente (anche perchè si presuppone che chi è interessato siappia cosa stia facendo).
FaSan
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500



View Profile
June 13, 2014, 05:36:10 PM
 #4

Invece di utilizzare una versione di un client poco conosciuto (e da verificare bene), puoi benissimo modificare delle righe di codice dal client originale e compilare quello.

L' unica cosa è che sinceramente non vedo proprio l' utilità. La fee è ritenuta necessaria per evitare spam ddos nel network, per sostenere il network con piccoli guadagni da parte di chi mina il blocco, per avere una priorità nell' inserimento della proprio TX nel prossimo blocco (che senza fee o con una fee inesistente verrebbe inclusa chissà quando).


Quindi mi spiegate a che serve ?




FaSan
nutriagrigia (OP)
Sr. Member
****
Offline Offline

Activity: 1270
Merit: 254


Oikos.cash | Decentralized Finance on Tron


View Profile
June 13, 2014, 06:54:54 PM
 #5

rispondo solo alla prima riga

ho compilato un codice diverso da quello della pagina del codice senza fee, codice che viene indicato come quello originale
https://github.com/bitcoin/bitcoin/archive/v0.9.1.zip
preso nel fondo pagina delle istruzioni su come compilare il programma sotto windows.

Per trovare la sezione che riguarda la fee ho comparato tutti i files della versione ipoteticamente tarocca e quello teoricamente ufficiale
Le differenze sono queste

Code:
Confronta: (<)bitcoin-0.9.1\src\wallet.cpp (69726 byte)
      con: (>)bitcoin-nftf-nftf-v0.9.1\src\wallet.cpp (69824 byte)

1353,1354c1353,1358
<                 bool fAllowFree = AllowFree(dPriority);
<                 int64_t nMinFee = GetMinFee(wtxNew, nBytes, fAllowFree, GMF_SEND);
---
>                
> //Bitcoin NFTF Patch - by ShadowOfHarbringer START
> bool fAllowFree = true;
>                 //Bitcoin NFTF Patch - by ShadowOfHarbringer END
>
> int64_t nMinFee = GetMinFee(wtxNew, nBytes, fAllowFree, GMF_SEND);


Confronta: (<)bitcoin-nftf-nftf-v0.9.1\src\version.cpp (2635 byte)
      con: (>)bitcoin-0.9.1\src\version.cpp (2635 byte)

40,41c40,41
< #    define GIT_COMMIT_ID "6b72bd6"
< #    define GIT_COMMIT_DATE "Sun, 1 Jun 2014 22:18:36 +0200"
---
> #    define GIT_COMMIT_ID "026a939"
> #    define GIT_COMMIT_DATE "Tue, 8 Apr 2014 12:04:06 +0200"

Riguardo la seconda questione, ho fatto questo per un'esigenza specifica  e sopratutto come esperimento,  visto che comunque ho testato la correttezza di alcune guide, che possono servire ad altri  anche per altri motivi. Reputo che la cosa possa avere un suo interesse.

Nel mio caso specifico avevo alcuni spiccioli ottentuti da bitvisitor, e per spostarli mi era richiesto 1/4 del loro valore.

Ho seguito il consiglio di Pinbot, e quindi non ho a distribuito una versione scorretta compilata.

Forse quando con i bitcoin ci compreremo perfino il caffè delle macchinette, il calcolo della fee andrà rivisto.





█▀█ █ █▄▀ █▀█ █▀ ░ █▀▀ ▄▀█ █▀ █░█
█▄█ █ █░█ █▄█ ▄█ ▄ █▄▄ █▀█ ▄█ █▀█



DeFi on Tron
and trustless token exchange
█████











█████

██████████████████████████████████████████████████████

JOIN OIKOS

██████████████████████████████████████████████████████

█████
    █
    █
    █
    █
    █
    █
    █
    █
    █
    █
    █
█████
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!