CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 26, 2014, 06:29:12 PM |
|
One final thing I will say about the (lack of proper) statistical analysis is that for my own involvement in Nxt I would rather be paid in BTC (if I am to be paid anything at all). I have read proper statistical papers (such as created by Meni) with sound math describing all of the possible attacks upon Bitcoin and I am much more satisfied with that then the "just trust BCNext's algorithm argument" who himself btw actually stated "don't trust me". It seems that things like "proper analysis" are not things that this community wants to do or even hear about.
|
|
|
|
msin
Legendary
Offline
Activity: 1470
Merit: 1004
|
|
February 26, 2014, 06:29:55 PM |
|
Agreed (minus the vulgar language), we can market AE when it's finished with testing and we are happy with it.
Btw, who is really testing it? I got only a few bug reports. I don't really need AE working (I'm not a trader and don't need to IPO anything), so I can wait till April. The community should focus on testing if it does need AE. Bump, anyone have bugs to report? Let's keep testing. Otherwise, let's release and have client developers implement asap.
|
|
|
|
l8orre
Legendary
Offline
Activity: 1181
Merit: 1018
|
|
February 26, 2014, 06:30:43 PM |
|
Agreed (minus the vulgar language), we can market AE when it's finished with testing and we are happy with it.
Btw, who is really testing it? I got only a few bug reports. I don't really need AE working (I'm not a trader and don't need to IPO anything), so I can wait till April. The community should focus on testing if it does need AE. hm well ... I have tested all the basic functions: placeOrder (bis/ask) cancelOrder(bid/ask),issueAsset, transferAsset, trade. Fetch bidorder/askorder as TX from trade. The bug with the 'not enough funds'. I am still missing out on the scaling - whether it is 0.01nxt or 1 nxt, little things like that. May main focus atm is getting the modelView pulled straight in Qt, and then I'll have to switch from GET to POST in requests. What about a liquid market? How can we simulate one? What kind of test cases can we come up with? Who actually IS testing the AE on the testNET? For sure I know about jl777 and myself but there are 2 or three others - wesleyh / nexern / marcus03 ?? Please chime in whoever is testing, so we can cook up something more lively!
|
|
|
|
wakasaki808
|
|
February 26, 2014, 06:31:12 PM |
|
He mentioned Nxt again but he said Nxt is a layer on top of Bitcoin as Mastercoin which is not true. So he knows that development is going on but I think he has not gotten in depth.
It can't be BCNext because of this right? (This was an old post regarding Andreas)
|
|
|
|
pinarello
Full Member
Offline
Activity: 266
Merit: 100
NXT is the future
|
|
February 26, 2014, 06:32:44 PM |
|
Agreed (minus the vulgar language), we can market AE when it's finished with testing and we are happy with it.
Btw, who is really testing it? I got only a few bug reports. I don't really need AE working (I'm not a trader and don't need to IPO anything), so I can wait till April. The community should focus on testing if it does need AE. Bump, anyone have bugs to report? Let's keep testing. Otherwise, let's release and have client developers implement asap. P1
|
|
|
|
pinarello
Full Member
Offline
Activity: 266
Merit: 100
NXT is the future
|
|
February 26, 2014, 06:35:01 PM |
|
We are so decentralized we dont even test our own asset exchange.
|
|
|
|
mthcl
|
|
February 26, 2014, 06:35:23 PM |
|
By the way, just for the record: let Rn be the longest sequence of consecutive blocks generated by an account whose block generating probability is p (i.e., Rn is the longest run of the blocks by that account), up to the nth block. Then it is known that Rn is concentrated around log 1/p(qn) + γ/ln(1/p) - 1/2 with known variance, where q=1-p and γ≈0.577 is the Euler-Mascheroni constant. See e.g. formulas (5)-(6) in https://www.maa.org/sites/default/files/pdf/upload_library/22/Polya/07468342.di020742.02p0021g.pdf.
|
|
|
|
Jerical13
|
|
February 26, 2014, 06:35:58 PM |
|
I'm not a developer. I can not put my ideas into a program
So I hope you can understand that this isn't actually really helping at this stage. Maybe once we have a better understanding of what we have and what we are expecting to have when TF is completed we can decide if we want to change that and then model such an alternative. Reasonable? Keep it simple. There is no need to overcomplicate the development with these things. Anyway, centralizing things like this isn't really what NXT is about. Some one could do it as a private, for profit enterprise. Free market opportunity will attract more, and bigger fish to NXT. It sounds like a good idea. You should try to figure out a way to implement it on your own and not write it in NXT.
|
|
|
|
abctc
Legendary
Offline
Activity: 1792
Merit: 1038
|
|
February 26, 2014, 06:37:47 PM |
|
If someone need testNXT, write here, or PM me.
Yesterday I've tested AE a bit.. no problem found yet. You can try to buy some of my ABCs on testnet.
|
██████████████████████████████████████████████████ ████████████████████████████████████████████████████ ██████████████████████████████████████████████████████ ████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████████████ | , the Next platform. Magis quam Moneta (More than a Coin) |
|
|
|
bitcoinpaul
|
|
February 26, 2014, 06:39:32 PM |
|
It seems that things like "proper analysis" are not things that this community wants to do or even hear about. I have no freakin' clue why you come to this conclusion. I am extremely satisfied with and thankful for your contribution and we all discussed the algo today. Why do you suddenly think no one wants this?
|
|
|
|
lophie
|
|
February 26, 2014, 06:40:00 PM |
|
If someone need testNXT, write here, or PM me.
Yesterday I've tested AE a bit.. no problem found yet. You can try to buy some of my ABCs on testnet.
Please man, some here 2457591381965084256 , Let me test, Prease.
|
Will take me a while to climb up again, But where is a will, there is a way...
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
|
February 26, 2014, 06:40:41 PM |
|
One final thing I will say about the (lack of proper) statistical analysis is that for my own involvement in Nxt I would rather be paid in BTC (if I am to be paid anything at all). I have read proper statistical papers (such as created by Meni) with sound math describing all of the possible attacks upon Bitcoin and I am much more satisfied with that then the "just trust BCNext's algorithm argument" who himself btw actually stated "don't trust me". It seems that things like "proper analysis" are not things that this community wants to do or even hear about. I bet most of us believe that BCNext did math analysis and found no flaws.
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
|
February 26, 2014, 06:41:50 PM |
|
Yesterday I've tested AE a bit.. no problem found yet.
What if placing an order and double cancelling it creates coins out of thin air? We should test such cases.
|
|
|
|
marcus03
|
|
February 26, 2014, 06:41:59 PM |
|
What about a liquid market? How can we simulate one? What kind of test cases can we come up with? Who actually IS testing the AE on the testNET? For sure I know about jl777 and myself but there are 2 or three others - wesleyh / nexern / marcus03 ??
For now I'm done with AE implementation in my client. It might need a bit of polishing once there are lots of assets/orders/trades, but I'll be able to fix this pretty quickly. I myself, haven't seen any problems in the NRS side of the implementation. On a side note regarding my client: I've put a lot of work into implementing client-side signing in my client to be able to connect securely to trustless nodes, so that users don't have to start NRS at all and I can ditch NRS and java from my distribution. However, I think that it is currently not possible to use a NXT thin client, since the API doesn't have calls that return batches of transactions/orders/trades/peers with one call. As it is right now, it simply takes to long to do hundreds or thousands of separate calls to fetch hundreds or thousand of transactions/orders/trades/peers. Since I really think that thin clients are the way to go, you might not see any updates of my client until a batch mode is available.
|
|
|
|
cc001
|
|
February 26, 2014, 06:42:04 PM |
|
Agreed (minus the vulgar language), we can market AE when it's finished with testing and we are happy with it.
Btw, who is really testing it? I got only a few bug reports. I don't really need AE working (I'm not a trader and don't need to IPO anything), so I can wait till April. The community should focus on testing if it does need AE. hm well ... I have tested all the basic functions: placeOrder (bis/ask) cancelOrder(bid/ask),issueAsset, transferAsset, trade. Fetch bidorder/askorder as TX from trade. The bug with the 'not enough funds'. I am still missing out on the scaling - whether it is 0.01nxt or 1 nxt, little things like that. May main focus atm is getting the modelView pulled straight in Qt, and then I'll have to switch from GET to POST in requests. What about a liquid market? How can we simulate one? What kind of test cases can we come up with? Who actually IS testing the AE on the testNET? For sure I know about jl777 and myself but there are 2 or three others - wesleyh / nexern / marcus03 ?? Please chime in whoever is testing, so we can cook up something more lively! I made quite a few trades, sell and buy offers, issued assets (Peanuts). I reported some minor bugs and improvements to wesleyh (related to the client). Sometimes it is difficult to distinguish between client and core functionality/bugs. Testing the core is probably more effective when it is done by the client developers, because for end users, there is always the "client-layer" inbetween. Overall it looks pretty good now from my angle.
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
February 26, 2014, 06:42:49 PM |
|
I made a few more tweaks to the simulator for "penalising" that I think come a little closer to how it will work in reality and now have this result: blocks = 5256000 a: 5 b: 5 c: 5 d: 5 e: 5 f: 5 g: 5 h: 5 i: 5 j: 5 k: 50 wins( a ) = 168532 wins( b ) = 168436 wins( c ) = 168653 wins( d ) = 168924 wins( e ) = 168386 wins( f ) = 167850 wins( g ) = 167890 wins( h ) = 166853 wins( i ) = 167323 wins( j ) = 167573 wins( k ) = 3575580 best_streak( a ) = 4 best_streak( b ) = 4 best_streak( c ) = 4 best_streak( d ) = 5 best_streak( e ) = 4 best_streak( f ) = 3 best_streak( g ) = 4 best_streak( h ) = 4 best_streak( i ) = 4 best_streak( j ) = 4 best_streak( k ) = 40 best_combined_streak = 15 Which I think is perhaps looking a lot better in terms of the "combined streak" figure. The "best streak" is a bit misleading in this case so also not likely to be a problem in reality (will have to try and make further tweaks to be sure). // Copyright (c) 2014 CIYAM Developers // // Distributed under the MIT/X11 software license, please refer to the file license.txt // in the root project directory or http://www.opensource.org/licenses/mit-license.php.
#include <ctime> #include <cmath> #include <cstdlib>
#include <string> #include <vector> #include <sstream> #include <iostream>
#define NUM_DAYS 1 #define NUM_YEARS 10
//#define USE_PENALISING
//#define PREVENT_IMMEDIATE_REPEAT
//#define SHOW_WINNERS //#define SHOW_WINNERS_WEIGHT
using namespace std;
#ifndef NUM_YEARS const size_t c_num_blocks = 1440 * NUM_DAYS; #else const size_t c_num_blocks = 1440 * 365 * NUM_YEARS; #endif
int main( ) { #ifdef SHOW_WINNERS string winners; #endif vector< int > wins; vector< int > streaks; vector< int > balances; vector< int > best_streak;
vector< int > combined; vector< long > weights;
int combined_streak = 0; int best_combined_streak = 0;
balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 5 ); balances.push_back( 50 );
srand( ( unsigned int )time( 0 ) );
for( size_t i = 0; i < balances.size( ); i++ ) { wins.push_back( 0 ); weights.push_back( 0 ); streaks.push_back( 0 ); combined.push_back( 0 ); best_streak.push_back( 0 ); }
size_t penalising1 = 0; size_t penalising2 = 0; size_t penalising3 = 0; size_t last_winner = 0; for( size_t blocks = 0; blocks < c_num_blocks; blocks++ ) { #ifdef USE_PENALISING if( blocks % 1440 == 0 ) { penalising1 = rand( ) % balances.size( ); penalising2 = rand( ) % balances.size( ); penalising3 = rand( ) % balances.size( ); penalising4 = rand( ) % balances.size( ); } #endif
long total_weight = 0; for( size_t i = 0; i < weights.size( ); i++ ) { int divisor = rand( ) % 10;
if( divisor == 0 ) ++divisor;
weights[ i ] = ( rand( ) % 10000 ) * ( balances[ i ] / divisor );
#ifdef USE_PENALISING if( i == penalising1 || i == penalising2 || i == penalising3 || i == penalising4 ) weights[ i ] = 0; #endif
total_weight += weights[ i ]; }
size_t winner = 0; size_t runner_up = 0; long best_target = 0; #ifdef PREVENT_IMMEDIATE_REPEAT long second_best_target = 0; #endif
for( size_t i = 0; i < balances.size( ); i++ ) { long adjusted_weight = weights[ i ] * 1000 / total_weight;
if( adjusted_weight > best_target ) { winner = i; best_target = adjusted_weight; } #ifdef PREVENT_IMMEDIATE_REPEAT else if( adjusted_weight > second_best_target ) { runner_up = i; second_best_target = adjusted_weight; } #endif }
#ifdef PREVENT_IMMEDIATE_REPEAT if( winner == last_winner ) winner = runner_up; #endif
#ifdef SHOW_WINNERS winners += ( char )( 'a' + winner ); # ifdef SHOW_WINNERS_WEIGHT ostringstream osstr; osstr << best_target; winners += "(" + osstr.str( ) + ")"; # endif #endif ++wins[ winner ];
if( winner != balances.size( ) - 1 ) { ++combined_streak; if( combined_streak > best_combined_streak ) best_combined_streak = combined_streak; } else combined_streak = 0;
if( winner == last_winner ) { ++streaks[ winner ]; if( streaks[ winner ] > best_streak[ winner ] ) best_streak[ winner ] = streaks[ winner ]; } else streaks[ winner ] = 0;
last_winner = winner; }
cout << "blocks = " << c_num_blocks << endl;
for( size_t i = 0; i < balances.size( ); i++ ) cout << ( char )( 'a' + i ) << ": " << balances[ i ] << endl;
#ifdef SHOW_WINNERS cout << winners << endl; #endif for( size_t i = 0; i < wins.size( ); i++ ) cout << "wins( " << ( char )( 'a' + i ) << " ) = " << wins[ i ] << endl;
for( size_t i = 0; i < best_streak.size( ); i++ ) cout << "best_streak( " << ( char )( 'a' + i ) << " ) = " << ( best_streak[ i ] + 1 ) << endl;
cout << "best_combined_streak = " << best_combined_streak << endl; }
We need a probability distribution for these streaks. Absolute numbers are irrelevant.
|
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 26, 2014, 06:43:41 PM |
|
I have no freakin' clue why you come to this conclusion. I am extremely satisfied with and thankful for your contribution and we all discussed the algo today. Why do you suddenly think no one wants this?
Thanks for the kind words - it is perhaps a combination of being tired, not getting anyone else to work on the simulation and just getting more and more suggestions for alternative ways to do things when we don't already even know what it is doing that has led to me needing to "give it a rest".
|
|
|
|
cc001
|
|
February 26, 2014, 06:43:51 PM |
|
If someone need testNXT, write here, or PM me.
Yesterday I've tested AE a bit.. no problem found yet. You can try to buy some of my ABCs on testnet.
please make an offer
|
|
|
|
|
mthcl
|
|
February 26, 2014, 06:44:52 PM |
|
It seems that things like "proper analysis" are not things that this community wants to do or even hear about. I have no freakin' clue why you come to this conclusion. I am extremely satisfied with and thankful for your contribution and we all discussed the algo today. Why do you suddenly think no one wants this? I also don't understand why such a conclusion. Many people sent me NXT since I've started writing formulas here (thanks a lot to all!!!), so I would say that there is interest in the community for such things.
|
|
|
|
|