It's now clear to me that they have read the article "Who Controls Bitcoin?" we released a year ago. Only thing they did swap Bitcoin New vs Core and Bitcoin Classic We are truly playing them like the fiddle now What I expect we are going to fund another highly trusted article this time by some Lawyer Governor or whatever and they are done
|
|
|
Chinese community consensus to stay with Core 1MB. Meeting held Jan 24 Shenzen, many Chinese BTC companies including AntPool/Bitmain, Bither, HaoBTC, BTC123, BTCKan, BTC456, BitFury, BW.COM, BitClub Network Asia. Source: http://8btc.com/thread-38405-1-1.htmlyes, this is a joke
|
|
|
It will move around 400 forever. Down when US posts scary news, up when Chinese wake up and buy back in.
|
|
|
It's amazing for saving but also could be useful to launder funds by mining and so on. The possibilities are endless. Edit: Another feature could be useful once the bankers receive the bailouts they can stash the funds to the Bitcoin and run for their life. This can prevent them being captured by the general public and executed. This feature can be extremely useful especially during some financial crisis.
|
|
|
It's Hal Finney. He send himself the first 10 BTC to test the system obviously.
|
|
|
I wouldn't be surprised at all if the localbitcoins site would be under a control of interpol, bankers or other related individuals. But have fun
|
|
|
tulips seems to be stressed
|
|
|
He's here in my house in Osaka right now.
I think the Americans have the perfect opportunity to nuke us now while he's here.
Edit: Satoshi left
|
|
|
This thread seems to attract a people with a certain kind of opinion. I wonder what may be the reason.
|
|
|
tell me Lauda, did your arrogance go to new heights when you became bitcointalk staff, or were you always this way? You speak as if your opinions are god given truths and anyone who disagrees must be either a shill or ignorant. The bottom line is that Bitcoin hasn't perfected its governance model. Neither extreme (contentious hard forks with no abandon OR a dictatorship) is likely ideal. Can't stump the Trump. Can't crash the p2p electronic cash.
|
|
|
Can't stump the Trump. Can't crash the p2p electronic cash.
|
|
|
Then the gentlemen touching my butt is an importer?! He seemed so honest...
You seem stressed. Don't you want to visit the restroom?
|
|
|
I'm not "blaming" anyone, I'm merely describing the way things are, i.e. centralized. Claiming that a higher blocksize limit would *increase* centralization is ludicrous on many levels: both illogical (negatively impacts China, where most hashpower lives), and irrelevant (who cares if it's 9 0r 6 bros, they're all buddies anyhow).
Satoshi Nakamoto is here in my living room and he disagrees with you
|
|
|
I wonder if this C++ code does qualify me for the honorary Satoshi Nakamoto title // Copyright (c) 2016 Satoshi Nakamoto // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php.
#include <stdio.h> #include <gmp.h> #include<math.h> /* make sure to invoke gcc with -lgmp */
// NEVER i repeat NEVER use a dead big number variable
struct res { int rh; // height // each return from recursion increases h by one // deepest solution returns zero // no solution returns SOLUTIONNOTFOUND
//logarithm of no. of variables in the level having the most variables) double e; // maximum entropy per round
long unsigned long p0; long unsigned long p1; long unsigned long p2; };
void nxt(mpz_t r, mpz_t a) { mpz_t s,t; mpz_init(s); mpz_init(t); mpz_sub_ui(s, a, 1); // bcsub mpz_mul(t, a, s); // bcmul mpz_div_2exp(r, t, 1); // bcdiv 2 mpz_clear(s); mpz_clear(t); }
int compare_doubles (const double da, const double db) {
return (da > db) - (da < db); }
static int SUCCESS = 0; static int SOLUTIONNOTFOUND = 9999999;
//static struct res oracle;
static long unsigned long longlongbitsminus1;
// h .. number of already pushed hashes to signature // s .. NOT the number of objects in this layer !!! see d // e .. the already signed entropy (bits) // d .. how many divisions by two need to be performed on s to get actual number of objects in this layer // d .. This is optimalization to save memory // b .. this is burst. during a burst (>0) cannot do growth rounds, only merkle reduce rounds // .... this is an optimalization because merkle reduce rounds tend to appear in bursts
// m .. the total maximum length of message that needs to be signed static long double messagedigest; static int burstdefault;
static double maxentropyperlevel = 0.0;
// ooo and sticky are related to burst // they activate bursts
static int beancounter = 0;
//int debug() { // return oracle.rh != SOLUTIONNOTFOUND; //}
//void nextoracle() { // /// oracle.p0 /= 2; // oracle.p0 |= oracle.p1 << longlongbitsminus1; // oracle.p1 /= 2; // oracle.p1 |= oracle.p2 << longlongbitsminus1; // oracle.p2 /= 2; // //}
struct res findt(int h, mpz_t s, long double e, unsigned d, int ooo, int stick) { beancounter++;
// int oracbit = oracle.p0 & 1; // nextoracle();
struct res x; double n = 0.;
if (h < 0) { // maximum hashes heuristic cap exceeded
// Terminate without a solution
x.rh = SOLUTIONNOTFOUND; x.e = 0; x.p0 = 0; x.p1 = 0; x.p2 = 0; return x; }
int mustreducetopk = 0; int canreducebemoreorfour = 0;
if ((e >= messagedigest) ) { // must mustreducetopk = 1; }
// here I must compare number of variables with the cached division // to see if we have less than 8 variables in this level //(after level with 8 variables comes a level with 4 variables-the public key level) // in this case the algorithm will terminate and return a valid solution(iff all entropy is signed) unsigned long int cacheddiv = 8; cacheddiv <<= d;
int cmp = mpz_cmp_ui(s, cacheddiv);
if (cacheddiv == 0) {
// OVERFLOW OF DIVIDER // Terminate without a solution here?
int terminateaftertoomanymerklereductions = 0;
if (terminateaftertoomanymerklereductions){
x.rh = SOLUTIONNOTFOUND; x.e = 0; x.p0 = 0; x.p1 = 0; x.p2 = 0; return x; }
// approximate double based compute
double huge = mpz_get_d (s);
double ex = 8.0 * exp2 ((double)d);
cmp = compare_doubles(huge, ex);
}
if ((cmp == 0) || (cmp > 0)) { canreducebemoreorfour = 1; }
if (mustreducetopk && !canreducebemoreorfour) {
// solution found. 0 x.rh = SUCCESS; x.e = 0; x.p0 = 0; x.p1 = 0; x.p2 = 0; return x; }
if (mustreducetopk || canreducebemoreorfour) {
// no entropy signed when reducing n = 0;
// // print /// mpz_out_str(stdout, 10, b); putchar('\n'); /// printf("%lf \n", n);
// counter of the burst int ppp = ooo-1; if (ppp <= 0) { ppp = 0; }
// if ((oracle.rh == SOLUTIONNOTFOUND) || (oracbit == 1)) {
// recurse x = findt(h-1, s, e+n, d+1, ppp, 1);
// } else { // x.rh = SOLUTIONNOTFOUND; // x.e = 0; // x.p0 = 0; // x.p1 = 0; // x.p2 = 0; // }
// add this level to total length x.rh++;
// mark 1 bit x.p2 *= 2; x.p2 |= x.p1 >> longlongbitsminus1; x.p1 *= 2; x.p1 |= x.p0 >> longlongbitsminus1; x.p0 *= 2; x.p0++;
if (mustreducetopk) { return x; }
} else { x.rh = SOLUTIONNOTFOUND; x.e = 0; x.p0 = 0; x.p1 = 0; x.p2 = 0; }
// if not burst if (ooo == 0) { mpz_t b, t;
mpz_init(b);
struct res y;
// // printf("~~~~%i ~~~~ \n",beancounter);
// explode if (d > 0) { // here i apply the cached merkle reduce rounds
// if (debug()) { // // print // mpz_out_str(stdout, 10, s); putchar('\n'); // }
mpz_init(t);
if (1) { mpz_t xx; mpz_init(xx); mpz_t gg; mpz_init(gg); mpz_t oo; mpz_init(oo); mpz_t pp; mpz_init(pp);
mpz_set_ui(xx, 1); mpz_mul_2exp(gg, xx, d); mpz_sub_ui(oo,gg,1);
// if (debug()) { // // print // mpz_out_str(stdout, 10, oo); putchar('\n'); // }
mpz_add(pp,oo,s);
mpz_div_2exp(t, pp, d);
// mpz_div_2exp(t, s, d);
// don't forget to free the big number mpz_clear(pp); // don't forget to free the big number mpz_clear(oo); // don't forget to free the big number mpz_clear(gg); // don't forget to free the big number mpz_clear(xx);
} else { mpz_div_2exp(t, s, d); }
// if (debug()) { // // print // mpz_out_str(stdout, 10, t); putchar('\n'); // }
// here I calculate the entropy from t n = (mpz_get_d (t));
} else {
// print // mpz_out_str(stdout, 10, s); putchar('\n');
// here I calculate the entropy from t n = (mpz_get_d (s));
}
// if (debug()) { // // Print entropy // printf("|%i|%lf \n", beancounter,n); // }
n = log2(n);
// explode if (d > 0) { nxt(b, t); mpz_clear(t); } else { nxt(b, s); }
// print // mpz_out_str(stdout, 10, b); putchar('\n');
// here I calculate the entropy from b n = (mpz_get_d (b)); // if (debug()) { // // Print entropy // printf("|%i|%lf \n", beancounter,n); // } n = log2(n);
// while (1) { // sleep(1); // }
// check if it exceeds the per-round entropy treshold cap if ((n > maxentropyperlevel) && (maxentropyperlevel != 0.0)) {
// don't forget to free the big number mpz_clear(b);
// don't do this return x; }
// // print
// printf("%lf \n", n);
// burst counter int ppp = ooo; if (stick == 1) { ppp = burstdefault; }
// If x branch was successful, this branch should not be longer. if (x.rh != SOLUTIONNOTFOUND) { h = x.rh+1; }
// // print // printf("|%i|%lf \n", beancounter,n);
// if ((oracle.rh == SOLUTIONNOTFOUND) || (oracbit == 0)) { // // recurse y = findt(h-1, b, e+n, 0, ppp, stick); // } else { // y.rh = SOLUTIONNOTFOUND; // y.e = 0; // y.p0 = 0; // y.p1 = 0; // y.p2 = 0; // }
// free big number mpz_clear(b);
// just check if solution if (y.rh == SOLUTIONNOTFOUND) { return x; }
// add this level to total length y.rh++;
if (y.e < n) {
y.e = n;
// // print // printf("|%i|%lf \n", beancounter,n);
// while (1) { // sleep(1); // }
}
// mark 0 bit y.p2 *= 2; y.p2 |= y.p1 >> longlongbitsminus1; y.p1 *= 2; y.p1 |= y.p0 >> longlongbitsminus1; y.p0 *= 2;
// get choice leading to shorter. Long is bad if (x.rh > y.rh) { x = y;
// get choice leading to less max entropy per level. Big is bad } else if ((x.rh == y.rh) && (x.e > y.e)) { x = y; }
return x;
}
return x; }
int roundsform_heuristics(double m) { double room = 10.; // 10 rounds more than expected allowed
// m160bit .. 84rounds ~~ +10 // m256bit .. 133rounds ~~ +10
return (int)((m * 0.510416667) + 2.333333333 + room); }
int main(int argc, char *argv[]) { // get machine word longlongbitsminus1 = ((8*sizeof(unsigned long long))-1); printf("LLsizem1:%Lu\n",longlongbitsminus1);
int h; h = 0;
// mpz_out_str(stdout, 10, b); putchar('\n');
struct res r;
long double m = 128.0; long double md = 8.0;
int burstd = 0; int burst = 15;
double elimit = 0.; double elimitd = 0.;
// load the command line parameters if (argc == 7) { sscanf(argv[1], "%Lf", &m); sscanf(argv[2], "%Lf", &md);
sscanf(argv[3], "%i", &burst); sscanf(argv[4], "%i", &burstd);
sscanf(argv[5], "%lf", &elimit); sscanf(argv[6], "%lf", &elimitd); }
// predict rounds using heuristic h = roundsform_heuristics(m); h = 0xffff;
printf("\nINPUT: Digest M=%Lf; Mdelta=%Lf ; HeuriMaxHashes X=%i ;" " BURST=%i Bdelta=%i ; logLimit %lf logLdelta %lf \n\n",m,md,h,burst, burstd, elimit, elimitd);
// solve slightly different many times over the night int i; for (i = 0; i < 1000;i++) {
mpz_t b; mpz_init(b); mpz_set_str(b, "4", 10); // the 10 represents the radix
// real run // oracle.rh = SOLUTIONNOTFOUND; maxentropyperlevel = elimit; burstdefault = burst; messagedigest = m; r = findt(h,b,0,0,0,0); // oracle = r;
// // also verify // findt(h,b,0,0,0,0);
mpz_clear(b);
if (r.rh == SOLUTIONNOTFOUND) { printf("SOLUTION WAS NOT FOUND PROBABLY BECAUSE HEURISTIC LIMIT IS TOO LOW: %i\n ", h); printf("try giving more room to the heuristics\n");
return 0; }
// print the solution printf("BITS of Message Digest: %Lf SHORTEST HASHES: %i, burst=%i , e=%lf , PATH",m, r.rh, burstdefault, r.e);
// print the algorithm bitmap (solution) if (r.p2 == 0) { if (r.p1 == 0) { printf(" %Lx | %Lx %Lx %Lx\n\n\n", r.p0, r.p2, r.p1, r.p0); } else { printf(" %Lx%Lx | %Lx %Lx %Lx\n\n\n", r.p1, r.p0, r.p2, r.p1, r.p0); }} else { printf(" %Lx%Lx%Lx | %Lx %Lx %Lx\n\n\n", r.p2, r.p1, r.p0, r.p2, r.p1, r.p0); }
if ((md == 0.) && (burstd == 0) && (elimitd == 0.)) {
return 0; }
// solve slightly different again
m += md; if (h != 0xffff) { h = roundsform_heuristics(m); } burst += burstd; elimit += elimitd; }
return 0;
}
|
|
|
Satoshi never intended for the blocksize to be a consensus rule. This should have been fixed years ago as a routine maintenance patch. We need to keep the code as simple as possible, the changes as conservative as possible. I have already made the arguments over and over.
The reason core doesn't move to 2MB now is because it would be detrimental to blocksteam. Why is that so difficult for people to understand?
You've been hired? Wink wink
|
|
|
sure franky1 but what about this, when block size is bumped, what about the spam aka "stress test"?
Blocks filled with 8MB one guy sending coin back to himself could really hurt Bitcoin because the blockchain would grow much faster, it will take a long to synchronize or catch up and people archives will be filled with useless dust.
I think we should be extremely careful about this and it is not sin to keep system same as before because it worked for 7 years?
I actually don't care about the block size I'm just here for the drama and fun with these paid posters. I hope they have a happy time with us and wish them luck maybe when they laid out they get a new banker to post for.
|
|
|
Wrong. Bankers are praying to the gods that the community is divided so it can be weakened and overtaken.
In this case, they need to open their wallets a little bit. I ain't gonna shill for free.
|
|
|
Bitcoin itself is a bank, so: NO.
|
|
|
|