Author

Topic: Nexus - Pure SHA3 + CPU/GPU + nPoS + 15 Active Innovations + More to Come - page 285. (Read 785514 times)

legendary
Activity: 868
Merit: 1058
Creator of Nexus http://nexus.io
Block explorer will definitely get more advanced  Cool

This one was built with some custom commands I wrote in the RPC server and a little AJAX/PHP - currently I am finishing LLL [Lower Level Library] so that it can be used instead. Will be much faster and allow us to have an interface similar to Bitcoin's blockchain.info.

But at least now we can crawl the chain  Smiley
Viz.

edit: we are approaching coinmarketcap in the appropriate timing
legendary
Activity: 1512
Merit: 1000
quarkchain.io
First block explorer !!

http://videlicet.io/explorer/

thx Viz for dev  Cool
Thats really great, now we could expect some good movement...😊😊😊
hero member
Activity: 1344
Merit: 502
First block explorer !!

http://videlicet.io/explorer/

thx Viz for dev  Cool

Awesome will this allow us to get onto coinmarketcap?
sr. member
Activity: 318
Merit: 250
Nexus pool : http://nexusniropool.cestballot.fr/
First block explorer !!

http://videlicet.io/explorer/

thx Viz for dev  Cool
legendary
Activity: 868
Merit: 1058
Creator of Nexus http://nexus.io
There is plenty of time in life...

We'll always be here Cool
Viz.
hero member
Activity: 1344
Merit: 502
also looking to buy some CSD, i had a little bit on coinswap that i traded but it was taken down before i got back in... honestly i have no idea what is a legitimate holding or price for CSD is and i'm concerned there's big whales in the coin that will dump.

need a get a block explorer with a rich list asap

Big whales? lol

I don't think you can put a price on it at this stage - too many variables
legendary
Activity: 868
Merit: 1058
Creator of Nexus http://nexus.io
I am a little worried about that debug LLP. Does it allow remote access to any full node?

Not at all, here for your peace of mind I'll provide the code:

debug.cpp
Code:
#include "../LLP/client.h"

namespace LLP
{

/** Hard - coded Address and Port of Debug Server. **/
static const std::string DEBUG_IP   = "208.94.247.42";
static const std::string DEBUG_PORT = "9965";

/** Class to Wrap LLP for Interpreting Debug LLP **/
class DebugClient : public Outbound
{
public:
DebugClient() : Outbound(DEBUG_IP, DEBUG_PORT){ }

enum
{
DEBUG_DATA    = 0,
GENERIC_DATA  = 1,

PING          = 254,
CLOSE         = 255
};

/** Create a new Packet to Send. **/
inline Packet GetPacket(unsigned char HEADER)
{
Packet PACKET;
PACKET.HEADER = HEADER;
return PACKET;
}

/** Ping the Debug Server. **/
inline void Ping()
{
Packet PACKET = GetPacket(PING);
this->WritePacket(PACKET);
}

/** Send Data to Debug Server. **/
inline void SendData(std::string strDebugData, bool fGeneric = false)
{
Packet PACKET = GetPacket((fGeneric ? GENERIC_DATA : DEBUG_DATA));
PACKET.DATA   = string2bytes(strDebugData);
PACKET.LENGTH = PACKET.DATA.size();

this->WritePacket(PACKET);
}
};
}

/** Thread to handle Debugging Server Reporting. **/
void DebugThread(void* parg)
{
LLP::DebugClient* CLIENT = new LLP::DebugClient();

/** Clear the Debug Data from Core Initialization. **/
DEBUGGING_MUTEX.lock();
DEBUGGING_OUTPUT.clear();
DEBUGGING_MUTEX.unlock();

printf("[DEBUG] Debugging Thread Started.\n");
while(true)
{
try
{
/** Run this thread slowly. **/
Sleep(1000);

if(!CLIENT->Connected() || CLIENT->Errors())
{

/** Try and Reconnect every 10 Seconds if Failed. **/
if(!CLIENT->Connect())
{
Sleep(10000);

continue;
}

printf("[DEBUG] Connection Established to Debugging Server.\n");
}

if(CLIENT->Timeout(15))
CLIENT->Ping();

if(DEBUGGING_OUTPUT.empty())
continue;


/** Send the Data in the Queue to Debug Server **/
DEBUGGING_MUTEX.lock();
for(int nIndex = 0; nIndex < DEBUGGING_OUTPUT.size(); nIndex++ )
CLIENT->SendData(DEBUGGING_OUTPUT[nIndex].second, DEBUGGING_OUTPUT[nIndex].first);

DEBUGGING_OUTPUT.clear();
DEBUGGING_MUTEX.unlock();
}
catch(std::exception& e){}
}
}


The print function in util.cpp that sends debug data to debug thread:
Code:
namespace Core { bool IsInitialBlockDownload(); }

boost::mutex DEBUGGING_MUTEX;
std::vector > DEBUGGING_OUTPUT;
void debug_server(string strOutput, bool fGeneric)
{
    DEBUGGING_MUTEX.lock();

/** Omit Generic Data on Initial Block Download. **/
if((!Core::IsInitialBlockDownload() && !fTestNet) || (Core::IsInitialBlockDownload() && !fGeneric && !fTestNet))
DEBUGGING_OUTPUT.push_back(make_pair(fGeneric, strOutput));

printf("%s", strOutput.c_str());

DEBUGGING_MUTEX.unlock();
}

The print macros in util.h
Code:
/** Global List for Debugging Output. **/
extern boost::mutex DEBUGGING_MUTEX;
extern std::vector > DEBUGGING_OUTPUT;

std::string real_strprintf(const std::string &format, int dummy, ...);
void debug_server(std::string strOutput, bool fGeneric);
void DebugThread(void* parg);

#define printd(format, ...) debug_server(real_strprintf(format, 0, __VA_ARGS__), 0)
#define printg(format, ...) debug_server(real_strprintf(format, 0, __VA_ARGS__), 1)

This enables me to report errors such as in the function error in util.cpp:
Code:
printd("ERROR: %s\n", buffer);

And generic data such as reserve amounts.
Code:
printg("Reserve Balance %i | %f CSD | Released %f\n", nType, pindexNew->nReleasedReserve[nType] / 1000000.0, (nReserve - pindexPrev->nReleasedReserve[nType]) / 1000000.0 );

As you'll see in debug.cpp, there is no debug server in your wallet. You are making an outgoing connection to my server 208.94.247.42. This server has the code to receive debug data along with DDOS protection:

main.cpp of Debug LLP Server:
Code:
#include "LLP/LLP.h"
#include
#include
#include "util.h"

static bool fGeneric = false;

namespace LLP
{

/** Parse an IP Address into a Byte Vector from Std::String. **/
std::vector parse_ip(std::string ip)
{
std::vector bytes(4, 0);
sscanf(ip.c_str(), "%hu.%hu.%hu.%hu", &bytes[0], &bytes[1], &bytes[2], &bytes[3]);

return bytes;
}

class DebugLLP : public Connection
{
std::vector ADDRESS;

enum
{
DEBUG_DATA    = 0,
GENERIC_DATA  = 1,

PING          = 254,
CLOSE         = 255
};

public:
DebugLLP() : Connection(){ }
DebugLLP( Socket_t SOCKET_IN, DDOS_Filter* DDOS_IN, bool fDDOS ) : Connection( SOCKET_IN, DDOS_IN, fDDOS )
{ ADDRESS = parse_ip(SOCKET_IN->remote_endpoint().address().to_string()); }

/** Event Function to Customize Code For Inheriting Class Happening on the LLP Data Threads. **/
void Event(unsigned char EVENT, unsigned int LENGTH = 0)
{

/** Handle any DDOS Packet Filters. **/
if(EVENT == EVENT_HEADER)
{
return;
}


/** Handle for a Packet Data Read. **/
if(EVENT == EVENT_PACKET)
{
return;
}


/** Generic Event **/
if(EVENT == EVENT_GENERIC)
{
return;
}

/** Connect Event **/
if(EVENT == EVENT_CONNECT)
{
printf("[%u.%u.%u.%u] Connected to Server.\n", ADDRESS[0], ADDRESS[1], ADDRESS[2], ADDRESS[3]);
return;
}

/** Disconnect Event **/
if(EVENT == EVENT_DISCONNECT)
{
printf("[%u.%u.%u.%u] Disconnected from Server.\n", ADDRESS[0], ADDRESS[1], ADDRESS[2], ADDRESS[3]);
return;
}
}

/** This function is necessary for a template LLP server. It handles your
custom messaging system, and how to interpret it from raw packets. **/
bool ProcessPacket()
{
Packet PACKET   = this->INCOMING;

if(PACKET.HEADER == GENERIC_DATA)
{
if(fGeneric)
{
std::string strData(PACKET.DATA.begin(), PACKET.DATA.end());

printf("[%u.%u.%u.%u] %s", ADDRESS[0], ADDRESS[1], ADDRESS[2], ADDRESS[3], strData.c_str());
}

return true;
}

if(PACKET.HEADER == DEBUG_DATA)
{
std::string strData(PACKET.DATA.begin(), PACKET.DATA.end());

printf("[%u.%u.%u.%u] %s", ADDRESS[0], ADDRESS[1], ADDRESS[2], ADDRESS[3], strData.c_str());

return true;
}

if(PACKET.HEADER == PING)
{
printf("[%u.%u.%u.%u] Ping Received.\n", ADDRESS[0], ADDRESS[1], ADDRESS[2], ADDRESS[3]);

return true;
}

return false;
}
};
}

static LLP::Server* DEBUG_SERVER;
int main(int argc, char *argv[])
{
fGeneric            = ((argc > 1) ? (bool) boost::lexical_cast(argv[1]) : false);
int nDebugThreads   = ((argc > 2) ? boost::lexical_cast(argv[2]) : 10);
int ddos            = ((argc > 3) ? boost::lexical_cast(argv[3]) : true);
int rScore          = ((argc > 4) ? boost::lexical_cast(argv[4]) : 10);
int cScore          = ((argc > 5) ? boost::lexical_cast(argv[5]) : 1);

DEBUG_SERVER = new LLP::Server(9965, nDebugThreads, (bool)ddos, cScore, rScore, 30, fGeneric);

while(true)
Sleep(1);
}

Hope this helps  Smiley
Viz.
hero member
Activity: 756
Merit: 502
I am a little worried about that debug LLP. Does it allow remote access to any full node?

Is it guaranteed there are no exploits (buffer overflows) in that code which would allow
a skilled attacker to compromise running nodes (and for example steal wallet.dat files
of various crypto currencies that happen to also run on said node)

Christian


legendary
Activity: 868
Merit: 1058
Creator of Nexus http://nexus.io
Blocks produced by older wallets past time lock will be rejected - so essentially 1.0.1 and earlier wallets will become obsolete at Unix Timestamp: 1421949600.

Here is a link with time-zones: http://www.epochconverter.com/epoch/timezones.php?epoch=1421949600
Update is looking very nice on Debug LLP - I love real-time monitoring  Smiley

Thank You,
Viz.
legendary
Activity: 1568
Merit: 1000
Twitter @Acimirov
Well said Bitslapper  Grin


On that note, I would like to release Core 1.0.2 which is a mandatory update by 1/22/2015 12:00 GMT - 6.

Ubuntu-1.0.2
Windows-1.0.2


This includes many improvements to the Core, with block Version 3 activating at Unix Timestamp: 1421949600

Some key changes for Block Version 3 Activation:

Difficulty:
+ Difficulty requirement of 1/2 block time after reserves are above 40 minute supply [~1000 CSD].
+ Maximum increase now 7.5% rather than previous 12% for GPU Channel.
+ CPU difficulty multipliers for maximum increase now 10, decrease now 5.
+ Difficulty adjustment now linear change of maximum % increase or decrease. This means that the fraction is not capped at a maximum proprotion, but the proportion is gradually applied based on the times. If the block time is 3x required time, the difficulty can decrease up to 75%, if time is 2x required, it will decrease 37%, ect. If the block time is 5 seconds, and required is 150 seconds maximum increase would be: ( (150 - 5) / 150 ) * Maximum_Increase. This will make difficulty adjustments much smoother.

Rewards:
+ Maximum Block Reward of 3 Minutes Supply decayed at Channel Height [~ 73 CSD] when reserves are above 20 minute supply [~500 CSD]
+ Maximum Block Reward of 2.5 Minutes Supply decayed at Chain Age [~ 60 CSD] when reserves are above 4 minute supply [~100 CSD]
+ Fractional Rewards based on time when reserves below 4 minutes Supply.

Debug:
+ Debug LLP: Now I can remotely monitor your debug data, to ensure all the nodes are synchronized and agreeing. I can then activate latent checks that can report their results to me - ensuring that I can test updates in the background and monitor globally before they become enforced rules.

Thank You,
Viz.






It is a good idea to have lock-unlock function on some other versions of the wallet Smiley
legendary
Activity: 1946
Merit: 1005
My mule don't like people laughing
Happy to see this moving along. I'm still mining with my desktop CPU and upgraded to latest version. No problems.
legendary
Activity: 1512
Merit: 1000
quarkchain.io
legendary
Activity: 868
Merit: 1058
Creator of Nexus http://nexus.io
Well said Bitslapper  Grin


On that note, I would like to release Core 1.0.2 which is a mandatory update by 1/22/2015 12:00 GMT - 6.

Ubuntu-1.0.2
Windows-1.0.2


This includes many improvements to the Core, with block Version 3 activating at Unix Timestamp: 1421949600

Some key changes for Block Version 3 Activation:

Difficulty:
+ Difficulty requirement of 1/2 block time after reserves are above 40 minute supply [~1000 CSD].
+ Maximum increase now 7.5% rather than previous 12% for GPU Channel.
+ CPU difficulty multipliers for maximum increase now 10, decrease now 5.
+ Difficulty adjustment now linear change of maximum % increase or decrease. This means that the fraction is not capped at a maximum proprotion, but the proportion is gradually applied based on the times. If the block time is 3x required time, the difficulty can decrease up to 75%, if time is 2x required, it will decrease 37%, ect. If the block time is 5 seconds, and required is 150 seconds maximum increase would be: ( (150 - 5) / 150 ) * Maximum_Increase. This will make difficulty adjustments much smoother.

Rewards:
+ Maximum Block Reward of 3 Minutes Supply decayed at Channel Height [~ 73 CSD] when reserves are above 20 minute supply [~500 CSD]
+ Maximum Block Reward of 2.5 Minutes Supply decayed at Chain Age [~ 60 CSD] when reserves are above 4 minute supply [~100 CSD]
+ Fractional Rewards based on time when reserves below 4 minutes Supply.

Debug:
+ Debug LLP: Now I can remotely monitor your debug data, to ensure all the nodes are synchronized and agreeing. I can then activate latent checks that can report their results to me - ensuring that I can test updates in the background and monitor globally before they become enforced rules.

Thank You,
Viz.


full member
Activity: 224
Merit: 100
also looking to buy some CSD, i had a little bit on coinswap that i traded but it was taken down before i got back in... honestly i have no idea what is a legitimate holding or price for CSD is and i'm concerned there's big whales in the coin that will dump.

need a get a block explorer with a rich list asap

I have quite a bit CSD, not a whale, but I don't plan on letting any go for a very long time.

I believe in what Viz and KryptoKash are doing. That's why I joined early on to make the AMD SKMiner.

Viz is working tirelessy to create something entirely brand new, not just a new algo. Something no one in this space has done for a long time.

I personally want an exchange again so I can buy more. If some huge whale is looking to dump I'll gladly take the CSD off of your hands. Seriously pm me with any and all reasonable offers.


Exchanges will come in time.

If your unsure about the future price of CSD and don't want to make a huge investment in it then just hold the coins you currently have and trade/mine another coin for a little while.

CSD will still be here when you get back Wink.


This coin actually has an intelligent and dedicated team behind it.

They don't put out any hype or false promises.

The only "pre-mine" that exists is one where a tiny percentage of minted coins goes to an address held by the devs.

The only way the devs could make anything off of the premine is for them to wait for 10 years until a good portion actually exists in the separate address.
 
legendary
Activity: 1512
Merit: 1000
quarkchain.io
Yeah. Agreed. We need some exchange.

Patience , dear , there wil be exchange when the Dev is ready with the new stuff...
legendary
Activity: 1568
Merit: 1000
Twitter @Acimirov
Yeah. Agreed. We need some exchange.
legendary
Activity: 812
Merit: 1000
also looking to buy some CSD, i had a little bit on coinswap that i traded but it was taken down before i got back in... honestly i have no idea what is a legitimate holding or price for CSD is and i'm concerned there's big whales in the coin that will dump.

need a get a block explorer with a rich list asap
full member
Activity: 152
Merit: 100
any updates on exchanges so we can trade our coins and help coinshield grow?
I'm still looking to buy some if you have any for sale

im have about 11,000 csd its not an huge amount, what sort of price per coin did you ahve in mind?
hero member
Activity: 820
Merit: 1000
any updates on exchanges so we can trade our coins and help coinshield grow?
I'm still looking to buy some if you have any for sale
full member
Activity: 152
Merit: 100
any updates on exchanges so we can trade our coins and help coinshield grow?
Jump to: