Post
Topic
Board Announcements (Altcoins)
Re: [ANN] Catcoin - NEW THREAD - FORK INCOMING AT BLOCK 21346 - Scrypt MEOW!
by
strelok369
on 02/02/2014, 19:46:23 UTC

Great! Finally data to visualize.

(http://catcoins.biz/charts/)
http://abload.de/img/catnewalgo28sajk.jpg


I used your data to plot a bit more:
http://abload.de/img/catalgochange1g5skj.jpg

I am gone surfing those waves up right!


I'm worry about those waves on diff vs block number graph. I think there is a problem.

A ecли ты здecь из 2ch'epcкoй бaнды кpyтыx xaцкeвoв-пpoгpaмиcтoв-финaнcиcтoв
и пpoчeгo cбpoдa "oфигeнныx poccийcкex шкoлoтeeв и пpoxoдимцeв", кoтopыe тyт,
чтoб "выдaвить битoк c xoмякa", yбeйcя oб cтeнy.

My post in old CATcoin thread. It's matlab model of diff recalc.
Quote from: strelok369 link=https://bitcointalk.org/index.php?topic=380130.msg4468559#msg4468559
Code(matlab):

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
clc

N = 36*10+1;
hashrate   = zeros(1, N);
difficulty =  ones(1, N);
blocktime  = zeros(1, N);

lastchange = 1;
hashrate(1,1) = 1000;

%imaging floating hashrate somehow (i'm not a wizard of probability theory)
for i=2:N
   change = rand(1,1)/4*sqrt(i-lastchange);
   if change>1
      hashrate(1, i) = rand(1,1)*1000*2+100;
      lastchange = i;
   else
      hashrate(1, i) = hashrate(1, i-1);
   end
end

%hashrate   = [ones(1, (N-1)/3)*100 ones(1,(N-1)/3).*1000 ones(1, (N-1)/3+1)*100];
%single stepup stepdown
%end imaging floating hashrate somehow

%diff and approximate blocktimes with sliding window
for i=1:37
    blocktime(1,i) = (difficulty(1,i)*2^32/(hashrate(1, i)*1e6)/60);
end

for i=(37+1):N
    average  = sum(blocktime (1, (i-36):(i-1)))/36; %average of blocktimes
    averdiff = sum(difficulty(1, (i-36):(i-1)))/36; %very important, otherwise unstable
    difficulty(1,i) = averdiff/(average/10); %10 is target, such recalc have astatism
    blocktime(1,i) = (difficulty(1,i)*2^32/(hashrate(1, i)*1e6)/60);
end
%end diff and approximate blocktimes with sliding window

%show results for window
fig1 = figure(1);
stairs(hashrate./100, 'color' , 'red');
hold on
stairs(difficulty./10, 'color' , 'green');
stairs(blocktime, 'color' , 'blue');
hold off
%end show results for window

difficulty =  ones(1, N);
blocktime  = zeros(1, N);

%diff and approximate blocktimes with classic recalc
lastrecalc = 1;
for i=2:N
   if i-lastrecalc > 36
       average  = sum(blocktime (1, (i-36):(i-1)))/36;
       difficulty(1,i) = difficulty(1,i-1)/(average/10); %10 is target, such recalc have astatism
       lastrecalc = i;
   else
       difficulty(1,i) = difficulty(1,i-1);
   end
   blocktime(1,i) = (difficulty(1,i)*2^32/(hashrate(1, i)*1e6)/60);
end
%end diff and approximate blocktimes with classic recalc

fig2 = figure(2);
%show results for classic
stairs(hashrate./100, 'color' , 'red');
hold on
stairs(difficulty./10, 'color' , 'green');
stairs(blocktime, 'color' , 'blue');
hold off
%end show results for classic
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Matlab arrays starts from 1 not 0;

Warning: if sliding window then in next difficulty must take part average
difficulty on window, not previous difficulty, othervise system unstable.


Is actual algorithm use average diff as good as blocktime?
If it use average without construction such as red_line_in_code_above
it will have diff spikes and hollows.
Correct it immediately if it's so. We will be anough with sliding window,
no need to invent bicycles with 12% and other excesses to diff recalc
algorithm and imagine yourself gods of cryptoworld.

And where is old logo? It was much better than actual.
Actual one have lack of one thing (it can be called idea byt in is not fully correct).
I don't know how to say about it, try to ask artists. Those thing, which make you
recognise product in mass. Like doge on dogecoin sign, like BTC on bitcoin logo,
Like double front grille in BMW.

http://i61.tinypic.com/2d0nqck.png
http://i59.tinypic.com/s4ou3t.png
http://i61.tinypic.com/24ya0xz.png