Bitcoin Forum
December 15, 2017, 09:04:38 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 5 [6]  All
  Print  
Author Topic: [ANN][ICO][ADX]Iadix Coin POS Purenode 3D+HTML5 Blockchain, ICO COMING SOON  (Read 6520 times)
IadixTeam
Jr. Member
*
Offline Offline

Activity: 35


View Profile
March 03, 2017, 03:10:22 AM
 #101

Well, due to its modular conception and other special features concerning interaction with HTML, purenode can do lot of things.
The blockchain bounty tool is a good example of a nice little web-app that can be useful.
It didn't take long time to build it as the core is functional and can already work through browser.
Purenode can handle all bitcore coins, and be integrated in all kinds of blockchain process needed.
Building bitcoin or altcoins web-apps can be very easy with it.

Concerning the technical part, I think our dev will be much more sharpen than everybody else to explain in details how it works exactly.
I can already tell you that you've never seen that kind of thing  Grin
1513328678
Hero Member
*
Offline Offline

Posts: 1513328678

View Profile Personal Message (Offline)

Ignore
1513328678
Reply with quote  #2

1513328678
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
IadixDev
Full Member
***
Offline Offline

Activity: 210


They're tactical


View Profile
March 03, 2017, 08:53:27 AM
 #102

Very interesting project

Thanks Smiley


though everything here sounds pretty much abstract, and in general it looks like the project lacks focus - meaning it needs to define some specific direction (maybe several ones) and most importantly concrete goals set with their respective timeframes.

I am a bit lost reading about all those capabilities... trying to understand what specific targets this powerfull framework will have. Will play more with website to see if it clears up things.

The framework was not designed specially for blockchain originally, so it's focus is very wide, from hardware drivers ( usb, hid,audio, vesa), asynchronous events, management of different types of network protocol, object references, but it has very pragmatic application, and all the code already works, but it's made to be a modular framework, rather than monolithic application, so necessarily it's a bit abstract Smiley The goal of the framework is to build a solid, interoperable, light weight abstraction layer to build application on, and I have different practical cases in mind.

In a way i kept this project out of the commercial pipeline to have the time to advance on the code at baby step looking the best way to implement each thing with network protocol json/rpc , threading and asynchronous io in mind, and to avoid to have to rush the development of certain thing to release specific application with a well defined dead line, but lots of it is already ready and tested now Smiley

For the blockchain specific things, there is already large part of what is needed to make a client for any blockchain based on bitcore , using any hash algo that is compiled in or in a module, with staking with pos 1/2/3 and is interoperable with bitcore based wallet, with compatible rpc interface.

There is not much documentation online, only short explanation on the rough idea, but I will write more detailed documentation latter.

I have just a small question... You tell you will provide universal binaries to be used on practically any system and architecture. I wonder which format those binaries will be based on? It cannot be just assembler/machine code, as this cannot be used both on x86 and ARM, and even I doubt the same format could be used on x86 machines running Windows and Linux respectively. Will that be .dll, .so, or something proprietary?

I say only on different system, the binaries are position independant dynamically  linked modules, which contain machine code, they can be run only on same cpu architecture, but they dont depend on the compiler runtime or the host system, all the module are in simple C , it should not be hard to compile for different cpu architectures, including arm, I have plan for the raspberry pi , but it will need a version of the binaries for each cpu architectures, for the moment it's 32bits x86, with sse for the raytracing, it can run on any system running on x86 /x64 with x86 emulation, other binaries need to be made for arm, or for native 64 bits intel.

However I would like to have some test with udp implementation of certain parts of the protocol enough to make useable client, before to get into arm.

The same binaries can already be compiled on windows with visual studio and used on linux, or compiled on linux with gcc and used on windows, it already works and is testable from the git. I already tested this with micro kernel architecture so can safety say the dependencies are "in check".

Most of the binaries running on the ubuntu 64 server currently have been compiled with visual studio 2013 on windows, including the raytracing with the sse code with sse C intrinsic.

It is home made ABI, there is zero documentation on the inner format, but the code source to create them out of 32 bit dll & so file is on the git  ( https://github.com/iadix/purenode/tree/master/mod_maker ) , and the loader too ( https://github.com/iadix/purenode/blob/master/libcon/tpo_mod.c ).



I should release a new version on the git in the next days, and the new block explorer, after i will improve the 3d demo page, and then ill see after in 2 weeks how everything goes with the ico préparation if there are more needs for the site and web things, then I will write more documentation on the memory model, references tree, json rpc, modules, and the blockchain specific modules & applications with more html5 examples, either for the website or for the node built in application like block explorer & secure wallet, and/or with the raytracing.
beyinsi
Hero Member
*****
Offline Offline

Activity: 672


Lendoit


View Profile
March 08, 2017, 10:13:52 AM
 #103

ICO date?




▄▄▄                                          ███                ▄▄▄     ███
███                                          ███               ▐███▌    ███
███                                          ███                ▀▀▀     ███
███        ▄███████▄   ▐███▄█████▄     ▄▄███████ ▄▄███████▄▄    ███   ███████▄
███       ████▀  ████  ▐████▀▀████▌   ████▀▀██▀▄████▀▀▀▀▀███▌   ███   ▀▀███▀▀▀
███      ▐████▄▄▄████  ▐███    ███▌  ████    ▄████▀▄█▌   ▐███   ███     ███
███      ▐███▀▀▀▀▀▀▀▀  ▐███    ███▌  ███▌   ████▀▄███▀   ▐███   ███     ███
███       ████▄    ▄▄  ▐███    ███▌  ████▄   ▄█████▀▄█   ████   ███     ███▄ ▄▄
▀████████  ▀████████▀  ▐███    ███▌   █████████▀▀  ████████▀    ███     ▀█████▀

ALL YOU NEED IS LOAN





















           ▄▄██████▄▄
       ▄▄██████████████▄▄
    ▄▄████████████████████▄▄
 ▄████████████████████████████▄
████████████▌  █████████████████
████████████▌  █████████████████
███████▀▀      ███▀      ▀██████
██████   ▄██▄▄▀▀  ▄▄▄██▄   █████
█████▌  ████    ▄▀  ████   █████
█████▌  ▐███▄▄▀▀  ▄▄████   █████
██████   ▀▀▀   ▄▄█▀  ▀▀   ▄█████
████████▄▄▄▄███████▄▄▄▄▄████████
▀██████████████████████████████▀
   ▀▀███████████████████████▀▀
      ▀▀████████████████▀▀
          ▀▀▀██████▀▀▀
IadixTeam
Jr. Member
*
Offline Offline

Activity: 35


View Profile
March 08, 2017, 09:47:40 PM
 #104

We're still working to improve Purenode and everything that can be done to make a better ico announcement.
We'll communicate the new date quickly, thanks for your interest !
IadixDev
Full Member
***
Offline Offline

Activity: 210


They're tactical


View Profile
March 19, 2017, 04:15:11 PM
 #105

Hello Smiley

Some news from the developpment Smiley

i have put online the new block explorer :

http://iadix.com/ico/blocks/en

Which include a filter system, the api looks like this :

http://iadix.com/ico/api/blocks?height<86000&tx*>2&size>400



https://github.com/iadix/purenode/blob/master/block_explorer/block_explorer.c#L212


Code:


tree_manager_set_child_value_i64(result, "height", height);
tree_manager_set_child_value_i32(result, "size", size);
tree_manager_set_child_value_hash(result, "hash", block_hash);
tree_manager_set_child_value_i32(result, "confirmations", nblks-height);
tree_manager_set_child_value_i32(result, "time", time);
tree_manager_set_child_value_i32(result, "version", version);
tree_manager_set_child_value_i32(result, "bits", bits);
tree_manager_set_child_value_i32(result, "nonce", nonce);


for (qv = 0; req->query_vars[qv].value.len > 0; qv++)
{
if (!tree_node_keval_i64(result, &req->query_vars[qv]))
{
release_zone_ref(&block);
return 0;
}
}



I also added a mechanism to buffer blocks that are potentially orphaned, and being able to put a node on testing to test a few blocks and rollback the current chain to the fork point if the other chain is longer.

https://github.com/iadix/purenode/blob/master/purenode/main.c#L1182

Code:
if (testing>0)
{
hash_t lh;
int new_len,cur_len;

if (!tree_manager_get_child_value_hash(node, NODE_HASH("last_header_hash"), lh))
node_get_hash_idx(testing-1, lh);

tree_manager_create_node ("log", NODE_LOG_PARAMS, &log);
tree_manager_set_child_value_hash (&log, "ph", prevHash);
tree_manager_set_child_value_hash (&log, "lh", lh);
log_message (" testing block '%ph%' -- '%lh%'", &log);
release_zone_ref (&log);

if (memcmp_c(prevHash, lh, sizeof(hash_t)))
{
release_zone_ref(&header);
return 0;
}

new_len = node_add_block_header(node, &header);
cur_len = get_last_block_height();

tree_manager_create_node("log", NODE_LOG_PARAMS, &log);
tree_manager_set_child_value_i32(&log, "new_len", new_len);
tree_manager_set_child_value_i32(&log, "cur_len", cur_len);
log_message("testing chain at height : %new_len% - %cur_len%", &log);
release_zone_ref(&log);

if (new_len > cur_len)
{
mem_zone_ref last_blk = { PTR_NULL };
int n;
uint64_t lost_reward;

lost_reward = 0;
n = cur_len;
while ((n--) > testing)
{
char chash[65];
hash_t h;
uint64_t reward;

if (!node_get_hash_idx(n, h))continue;

n = 0;
while (n<32)
{
chash[n * 2 + 0] = hex_chars[h[n] >> 4];
chash[n * 2 + 1] = hex_chars[h[n] & 0x0F];
n++;
}
chash[64] = 0;

if (is_pow_block(chash))
reward=get_blockreward(n);
else
get_stake_reward(n, &reward);

lost_reward += reward;
}

tree_manager_create_node("log", NODE_LOG_PARAMS, &log);
tree_manager_set_child_value_i32(&log, "testing", testing);
log_message("truncate chain to height : %testing%", &log);
release_zone_ref(&log);

if(node_truncate_chain(testing))
{
if (tree_manager_find_child_node(&self_node, NODE_HASH("last pos block"), NODE_BITCORE_BLK_HDR, &last_blk))
{
unsigned int pBits;
if (compute_last_pos_diff(&last_blk, &pBits))
tree_manager_set_child_value_i32(&self_node, "current pos diff", pBits);
else
tree_manager_set_child_value_i32(&self_node, "current pos diff", 0x1FFFFFFF);

release_zone_ref(&last_blk);
}

sub_moneysupply (lost_reward);

log_output ("switching to new chain \n");
tree_manager_set_child_value_i32(node, "testing_chain", 0);
}
}
release_zone_ref(&header);
return 0;
}

if (!tree_manager_find_child_node(payload, NODE_HASH("txs"), NODE_BITCORE_TX_LIST, &tx_list)){ release_zone_ref(&header); return 1; }
if (!tree_manager_find_child_node(payload, NODE_HASH("signature"), NODE_BITCORE_ECDSA_SIG, &sig)){ release_zone_ref(&tx_list); release_zone_ref(&header); return 1; }
tree_manager_get_node_istr(&sig, 0, &signature, 0);
release_zone_ref(&sig);

ret = node_is_next_block (&header, &lastBlk);
if (!ret)
{
ret = check_node_chain(node, &header, &keep_block);
if (!ret)
{
free_string(&signature);
release_zone_ref(&header);
release_zone_ref(&tx_list);
return (keep_block==1)?0:1;
}
}


And also 2 command line parameters to rebuild local index and re validate local block chain, or looking for corrupt data.

Code:
launcher rebuildtxs

To recheck the block headers and tx indexes.

Code:
launcher rebuildsupply

To recheck block reward and proof of stake/proof of work to rebuild the money supply.


Additionally i started to write some more in depth documentation about the memory model, and the binary module system :

http://iadix.com/articles/viewarticle/en/purenode%20memory%20and%20component%20programming%20model_0/blogs/purenode

I'll probably update it to add more example and better page formatting Smiley

Still no date from the ICO, nothing is really heavily tested for the moment, don't hesitate to mentions bugs or errors or comments Smiley

Normally i just have to finish the page with the 3D demo, and we can start to get more precise with the ICO details, with the escrowed coins and the official detail, and the bounty campain.

Thanks for your patience Smiley
Xenophanes0
Member
**
Offline Offline

Activity: 75


View Profile
March 22, 2017, 08:59:14 AM
 #106

i don't care if this is a trash coin, i just waiting the bounty twitter


salute your choice good idea for becoming a good businessman and for going further.
MEMEX
Sr. Member
****
Offline Offline

Activity: 350



View Profile
March 23, 2017, 04:27:08 PM
 #107

Waiting Iadix ICO started dev

chinadaye
Member
**
Offline Offline

Activity: 85


View Profile
March 26, 2017, 07:03:13 AM
 #108

Any updates?

Join the Elastic revolution!  Elastic - The Decentralized Supercomputer
ELASTIC WEBSITE | ANNOUNCEMENT THREAD | ELASTIC SLACK | ELASTIC FORUM
miramare
Hero Member
*****
Offline Offline

Activity: 728


Spectiv VR Crowdsale: 08/14/17


View Profile
March 26, 2017, 07:22:36 AM
 #109

Hello Smiley

Some news from the developpment Smiley

i have put online the new block explorer :

http://iadix.com/ico/blocks/en

Which include a filter system, the api looks like this :

http://iadix.com/ico/api/blocks?height<86000&tx*>2&size>400



https://github.com/iadix/purenode/blob/master/block_explorer/block_explorer.c#L212


Code:


tree_manager_set_child_value_i64(result, "height", height);
tree_manager_set_child_value_i32(result, "size", size);
tree_manager_set_child_value_hash(result, "hash", block_hash);
tree_manager_set_child_value_i32(result, "confirmations", nblks-height);
tree_manager_set_child_value_i32(result, "time", time);
tree_manager_set_child_value_i32(result, "version", version);
tree_manager_set_child_value_i32(result, "bits", bits);
tree_manager_set_child_value_i32(result, "nonce", nonce);


for (qv = 0; req->query_vars[qv].value.len > 0; qv++)
{
if (!tree_node_keval_i64(result, &req->query_vars[qv]))
{
release_zone_ref(&block);
return 0;
}
}



I also added a mechanism to buffer blocks that are potentially orphaned, and being able to put a node on testing to test a few blocks and rollback the current chain to the fork point if the other chain is longer.

https://github.com/iadix/purenode/blob/master/purenode/main.c#L1182

Code:
if (testing>0)
{
hash_t lh;
int new_len,cur_len;

if (!tree_manager_get_child_value_hash(node, NODE_HASH("last_header_hash"), lh))
node_get_hash_idx(testing-1, lh);

tree_manager_create_node ("log", NODE_LOG_PARAMS, &log);
tree_manager_set_child_value_hash (&log, "ph", prevHash);
tree_manager_set_child_value_hash (&log, "lh", lh);
log_message (" testing block '%ph%' -- '%lh%'", &log);
release_zone_ref (&log);

if (memcmp_c(prevHash, lh, sizeof(hash_t)))
{
release_zone_ref(&header);
return 0;
}

new_len = node_add_block_header(node, &header);
cur_len = get_last_block_height();

tree_manager_create_node("log", NODE_LOG_PARAMS, &log);
tree_manager_set_child_value_i32(&log, "new_len", new_len);
tree_manager_set_child_value_i32(&log, "cur_len", cur_len);
log_message("testing chain at height : %new_len% - %cur_len%", &log);
release_zone_ref(&log);

if (new_len > cur_len)
{
mem_zone_ref last_blk = { PTR_NULL };
int n;
uint64_t lost_reward;

lost_reward = 0;
n = cur_len;
while ((n--) > testing)
{
char chash[65];
hash_t h;
uint64_t reward;

if (!node_get_hash_idx(n, h))continue;

n = 0;
while (n<32)
{
chash[n * 2 + 0] = hex_chars[h[n] >> 4];
chash[n * 2 + 1] = hex_chars[h[n] & 0x0F];
n++;
}
chash[64] = 0;

if (is_pow_block(chash))
reward=get_blockreward(n);
else
get_stake_reward(n, &reward);

lost_reward += reward;
}

tree_manager_create_node("log", NODE_LOG_PARAMS, &log);
tree_manager_set_child_value_i32(&log, "testing", testing);
log_message("truncate chain to height : %testing%", &log);
release_zone_ref(&log);

if(node_truncate_chain(testing))
{
if (tree_manager_find_child_node(&self_node, NODE_HASH("last pos block"), NODE_BITCORE_BLK_HDR, &last_blk))
{
unsigned int pBits;
if (compute_last_pos_diff(&last_blk, &pBits))
tree_manager_set_child_value_i32(&self_node, "current pos diff", pBits);
else
tree_manager_set_child_value_i32(&self_node, "current pos diff", 0x1FFFFFFF);

release_zone_ref(&last_blk);
}

sub_moneysupply (lost_reward);

log_output ("switching to new chain \n");
tree_manager_set_child_value_i32(node, "testing_chain", 0);
}
}
release_zone_ref(&header);
return 0;
}

if (!tree_manager_find_child_node(payload, NODE_HASH("txs"), NODE_BITCORE_TX_LIST, &tx_list)){ release_zone_ref(&header); return 1; }
if (!tree_manager_find_child_node(payload, NODE_HASH("signature"), NODE_BITCORE_ECDSA_SIG, &sig)){ release_zone_ref(&tx_list); release_zone_ref(&header); return 1; }
tree_manager_get_node_istr(&sig, 0, &signature, 0);
release_zone_ref(&sig);

ret = node_is_next_block (&header, &lastBlk);
if (!ret)
{
ret = check_node_chain(node, &header, &keep_block);
if (!ret)
{
free_string(&signature);
release_zone_ref(&header);
release_zone_ref(&tx_list);
return (keep_block==1)?0:1;
}
}


And also 2 command line parameters to rebuild local index and re validate local block chain, or looking for corrupt data.

Code:
launcher rebuildtxs

To recheck the block headers and tx indexes.

Code:
launcher rebuildsupply

To recheck block reward and proof of stake/proof of work to rebuild the money supply.


Additionally i started to write some more in depth documentation about the memory model, and the binary module system :

http://iadix.com/articles/viewarticle/en/purenode%20memory%20and%20component%20programming%20model_0/blogs/purenode

I'll probably update it to add more example and better page formatting Smiley

Still no date from the ICO, nothing is really heavily tested for the moment, don't hesitate to mentions bugs or errors or comments Smiley

Normally i just have to finish the page with the 3D demo, and we can start to get more precise with the ICO details, with the escrowed coins and the official detail, and the bounty campain.

Thanks for your patience Smiley


The dev's positive attitude may make a likely success in the future. Keep my eye on it. And look forward to the ico.


              ▄▄████████████▄▄             
          ▄███▀▀▀░░░░░░░░░░▀▀▀███▄▄         
       ▄██▀▀░░░░░░░░░░░░░░░░░░░░░▀██▄       
     ▄██▀░░░░░░░░░░░░░░░░░░░░░░░░░░▀███     
   ▄██▀░░░░░░░░░░░░░░░▄▄▄▄▄█████████████▄   
  ▄██░░░░░░░░░░░▄▄█████████░░░░░░░░░░░░▀█▌ 
 ▐██░░░░░░░░▄█████▀▀▀▀▀▀▀▀▀████▄░░░░░░░░▀█▌
▐██░░░░░░▄███▀▀███████████████▀▀██▄░░░░░░██▌
████▄░░▄██▀███████▄██████▄████████▀██▄░░░▐██
██░▀████▀██████████████████████████████▄░░██
██░░░▀██▄█████████████████████████▄██▀▀██▄██
██▌░░░░▀███▄████████▀▀▀▀███████▄██▀░░░░░▀███
▐██░░░░░░░▀███▄▄███████████▄▄██▀▀░░░░░░░░██▌
 ▐██░░░░░░░░░░▀▀████████████▀░░░░░░░░░░░▄█▌
  ▀██▄▄▄▄▄▄▄▄▄████████▀▀▀░░░░░░░░░░░░░░▄█▌ 
   ▀███▀▀▀▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░▄██▀   
     ▀██▄░░░░░░░░░░░░░░░░░░░░░░░░░░▄██▀     
       ▀███▄░░░░░░░░░░░░░░░░░░░░▄▄██▀       
          ▀████▄▄░░░░░░░░░░▄▄▄███▀         
              ▀▀▀██████████▀▀▀             

     
                   [ Whitepaper ]        [ Website ]                     
     
IadixTeam
Jr. Member
*
Offline Offline

Activity: 35


View Profile
March 26, 2017, 05:38:34 PM
 #110

Yes, our dev is working hard and has a real vision of what must be a good blockchain.
We'll give you an ico date very soon, some few last things to prepare Smiley
IadixDev
Full Member
***
Offline Offline

Activity: 210


They're tactical


View Profile
April 18, 2017, 08:47:22 PM
 #111

Awaiting the ICO take place, i started to work on a script engine to make it even easier to create blockchain and define node parameters to connect to other blockchain Smiley


Code:


let NODE_GFX_OBJECT configuration = `
{
"name":"purenode",

"seed_node" :
{
"host":"iadix.com",
"port" : 16714
},
"magic":0xD9BEFECA,
"version":60018,
"sign_mod":"ecdsa",
"pubKeyVersion":0x19,
"staking":
{
"targetspacing":64,
"targettimespan":960,
"stake reward":150000000,
"limit":0x1B00FFFF,
(NODE_MODULE_DEF) "pos_kernel" : {"file":"modz/stake_pos3.tpo"}
},
"mining":
{
"targetspacing":64,
"targettimespan":960,
"limit":0x1E0FFFFF,
"reward":10000000000000,
"last_pow_block":200,
"paytxfee":10000
},
"genesis":
{
"version" :1,
"time" :1466419085,
"bits" :0x1e0fffff,
"nonce" :579883,
"InitialStakeModifier":0,
"InitialStakeModifier2":0
}
}`

let NODE_BITCORE_NODE SelfNode = `
{
"user_agent" : "purenode",
"paytxfee" : 0,
(NODE_GFX_INT)"version"  : 0,
(NODE_BITCORE_BLK_HDR) "lastPOSBlk":null,
(NODE_BITCORE_BLK_HDR) "lastPOWBlk":null,
(NODE_BITCORE_ADDR)"p2p_addr" :
{
"services": 0,
(NODE_NET_IPV)"addr" : "127.0.0.1",
(NODE_GFX_SHORT)"port" : 16819
},
(NODE_BITCORE_WALLET_ADDR_LIST) "addr scan list" : null,
(NODE_BITCORE_MSG_LIST) "send queue" : [],
(NODE_BITCORE_MSG_LIST) "emitted_queue" : [],
(NODE_BITCORE_TX_LIST) "tx mem pool" : null,
(NODE_BITCORE_BLK_HDR_LIST) "submitted blocks" : null
}`


let NODE_MODULE_DEF node_adx = `{"order":2, "file" : "modz/node_adx.tpo"}`
let NODE_MODULE_DEF protocol_adx = `{"order":0, "file" : "modz/protocol_adx.tpo"}`
let NODE_MODULE_DEF iadixcoin = `{"order":3, "file" : "modz/iadixcoin.tpo"}`
let NODE_MODULE_DEF block_adx = `{"order":1, "file" : "modz/block_adx.tpo"}`


let NODE_BITCORE_NODE_LIST  peer_nodes  = `[]`
let NODE_BITCORE_BLK_HDR genesis_blk = `{}`
let NODE_GFX_INT ping_nonce = `1`


handler on_verack(node,payload) = ` node_adx.queue_ping_message(node) `

handler on_ping(node,payload) = ` node_adx.queue_pong_message(node,payload.nonce) `

handler on_pong(node, payload) = ` set node.synching = 1; `

handler on_version(node,payload) = `

set node.p2p_addr = payload.their_addr;
set node.p2p_addr.services = payload.services;

set node.my_addr = payload.my_addr;

set node.user_agent = payload.user_agent;
set node.version = payload.proto_ver;
set node.block_height = payload.last_blk;

node_adx.node_log_version_infos(node)

node_adx.queue_verack_message(node)


`

handler on_inv(node, payload) = `

node_adx.queue_getdata_message(node, payload.hashes)

`

handler on_addr(node, payload) = `

foreach payload.addrs node_adx.node_log_addr_infos

`

proc init_node = `

protocol_adx.init_protocol (configuration)
block_adx.init_blocks (configuration)

set SelfNode.version = configuration.version;

node_adx.node_init_self (SelfNode)
node_adx.node_load_block_indexes ()

loadmod (configuration.staking.pos_kernel)
configuration.staking.pos_kernel.init_pos (configuration.staking)

block_adx.make_genesis_block (configuration.genesis, genesis_blk)

if (SelfNode.block_height = 1)
node_adx.node_set_last_block (genesis_blk)
configuration.staking.pos_kernel.store_blk_staking  (genesis_blk)
endif

if (SelfNode.block_height > 1)
node_adx.node_load_last_blks()

configuration.staking.pos_kernel.load_last_pos_blk(SelfNode.lastPOSBlk) :

set SelfNode.lastPOSBlk = SelfNode.last_blk;

configuration.staking.pos_kernel.find_last_pos_block(SelfNode.lastPOSBlk)
configuration.staking.pos_kernel.store_last_pos_hash(SelfNode.lastPOSBlk)

configuration.staking.pos_kernel.compute_last_pos_diff(SelfNode.lastPOSBlk, SelfNode.current_pos_diff) :
set SelfNode.current_pos_diff = SelfNode.limit;
endor
endor
endif

sethandler SelfNode.emitted_queue{ "cmd=verack" } = on_verack;
sethandler SelfNode.emitted_queue{ "cmd=version" } = on_version;
sethandler SelfNode.emitted_queue{ "cmd=ping" } = on_ping;
sethandler SelfNode.emitted_queue{ "cmd=pong" } = on_pong;
sethandler SelfNode.emitted_queue{ "cmd=inv" } = on_inv;
sethandler SelfNode.emitted_queue{ "cmd=addr" } = on_addr;



node_adx.new_peer_node(configuration.seed_node, peer_nodes)
node_adx.queue_version_message(peer_nodes[0])
node_adx.queue_getaddr_message(peer_nodes[0])

`







For the moment it looks like this =)


Then from C code :

Code:
load_script ("script.cc", &script_vars);
resolve_script_var (&script_vars,PTR_NULL, "init_node" , NODE_SCRIPT_PROC,&init_node_proc);
execute_script_proc     (&script_vars, &init_node_proc);


=>




In the next days i'll get into implementing the harder function with the script to check block headers and tx, but all the basics to manipulate event handlers based on network message is already there, and i already have all the code in C.


Like this the code for high level definition of node and protocol can be much cleaner =)


Next also is making a system to define the module associated with http services with the script with a definition like this

Code:
let NODE_GFX_OBJECT http_services = `
{
"port":16820,
"cgi" : [{"block explorer":{"index" : "/api/"   , (NODE_MODULE_DEF) "block_explorer" : {"file":"modz/block_explorer.tpo"}}}]
"rpc" : [{"walletRPC"   :{"index" : "/wallet/", (NODE_MODULE_DEF) "rpc_wallet"     : {"file":"modz/rpc_wallet.tpo"}}}],


}`

To have either cgi interface bound to http addresse like http://nodeip:port/api/method?param=value for the block explorer and the http/json/rpc api on http://nodeip:port/wallet/jsonrpc

And next, to recode the block explorer and wallet modules with this script, to make it easier to read and easier to add new function in the api, without to even have to recompile anything.

Those script can probably be easily compiled to assembler, and then to tpo module too, but for the moment it's simple interpreter Smiley

I will write also more documentation for the API and how the script work in the next week.

I guess tomorow or the day after the handler to deal with block validation should be ok.


Then i'll see a bit more how to define the http interface binding to modules, and how to recode the modules with the script Smiley


After this, i guess either the rest of the team is ready for the ICO, i'll probably launch a test coin because it's taking too much time Smiley


IadixTeam
Jr. Member
*
Offline Offline

Activity: 35


View Profile
April 19, 2017, 07:34:43 PM
 #112

Soon back, better and stronger with some cool stuff Smiley
IadixDev
Full Member
***
Offline Offline

Activity: 210


They're tactical


View Profile
May 23, 2017, 09:32:26 AM
 #113

Ok so i have some good news and some bad news lol

The guy who was driving the ICO left the project, basically when i told him after month and month, once again, to make a timeline, and clarify his vision of the project beyond the ico funding rising, he told he left the project, i'm not sure i really understand his vision and motivation anyway, but we don't agree on too much things i guess and he left the project.

Well on the other side it doesn't matter too much, to explain shortly the situation, those two guy never made a website of their life, basically they are not developers, it took me 4 month to make them do the most basic CSS with many sweating and hard pushing, they have no experience in developing anything, and i struggled for month to try to get them to work on real roadmap and timeline and objective only to get same deflective answer .. Smiley

Basically this whole ICO thing was their plan, i was not super fond of the idea since the beginning, but they pushed me into it with their plan of ICO and investment and stuff, and then now he leave the project =)

But well it's why i took a break to re orient myself, because the only reason i came to this forum to begin with is because he told me about this ICO stuff, that it's easy, just copy paste wave website and paste some technical word and a non sense white paper and get investement without engagment, responsability, timeline, roadmap, most of the vauge text on the website is wrote by them, well i knew there was very little chance for this to be realistic but could always try, the time i develop the thing i wanted to get at with distributed application, could always try to do an ICO thing, but it didn't work has he planed, and now he leave without explaining anything too much except we don't agree or something =)




Well i will see what my plan is, it's why i took a bit a break to think things out, because now i'm alone on the project Smiley



But i still advanced more, reworked lot of the code, and cleaned the api to start working on the script engine, and it start to get good Smiley Much clearer code on the C side, and normally soon all the coin high level function should be made with the script.


And i also added system to create dynamic html page from node variable with the script, like this it's total killer to make html5 dynamic app.

with purenode.site file in the root web folder, and raw html template for page structure, node variables are added via the %% tag in the html_js opcode to generate the script for the page, and the script format the html and insert the value in the tags from these variable in the browser side.

It use the purenode block.js api and keys.js api.

Code:


let NODE_JSON_ARRAY stylesheets = `[
"//fonts.googleapis.com/css?family=Open+Sans:400,300,600&amp;subset=cyrillic,latin",
"/assets/plugins/bootstrap/css/bootstrap.min.css",
"/assets/css/style.css",
"/assets/css/headers/header-default.css",
"/assets/css/blocks.css",
"/assets/css/footers/footer-v7.css",
"/assets/plugins/animate.css",
"/assets/plugins/line-icons/line-icons.css",
"/assets/plugins/font-awesome/css/font-awesome.min.css",
"/assets/plugins/brand-buttons/brand-buttons.css",
"/assets/css/theme-skins/dark.css",
"/assets/css/custom.css",
"/assets/plugins/sky-forms-pro/skyforms/css/sky-forms.css",
"/assets/plugins/sky-forms-pro/skyforms/custom/custom-sky-forms.css"
]`

let NODE_JSON_ARRAY scripts = `[
"/assets/plugins/jquery/jquery.min.js",
"/assets/plugins/jquery/jquery-migrate.min.js",
"/assets/plugins/bootstrap/js/bootstrap.min.js",
"/assets/plugins/back-to-top.js",
"/assets/plugins/smoothScroll.js",
"/assets/plugins/sky-forms-pro/skyforms/js/jquery-ui.min.js",
"/assets/plugins/sky-forms-pro/skyforms/js/jquery.validate.min.js",
"/assets/plugins/sky-forms-pro/skyforms/js/jquery.maskedinput.min.js",
"/assets/plugins/scrollbar/js/jquery.mCustomScrollbar.concat.min.js",
"/assets/js/custom.js",
"/assets/js/app.js"
]`

let NODE_JSON_ARRAY metas = `[
{"viewport":"width=device-width, initial-scale=1.0"},
{"description":""},
{"author":""}
]`


Code:

page blocks = `

push stylesheets,"/assets/css/plugins/blocks.css"
push scripts,"/assets/js/plugins/datepicker.js"
push scripts,"/assets/js/blocks.js"

html_head "PURENODE BLOCK EXPLORER"
html_block "templates/menu.html"
html_block "templates/blocks.html"
html_scripts

html_js
jQuery(document).ready(function ()
{
        App.init();
        App.initScrollBar();
        Datepicker.initDatepicker(function (selectedDate) { blk_page_idx = 0; tx_page_idx = 0; txs = null; blocks = null; list_blocks(selectedDate, blk_page_idx, 0); list_txs(selectedDate, tx_page_idx); });

        lang = 'en';
        api_base_url = '';
site_base_url = '/purenode.site';
        blk_page_idx = 0;
        tx_page_idx = 0;
        txs = null;
        blocks = null;
        selectedDate = $('#inline').datepicker({ dateFormat: 'yy-mm-dd' }).val();

        list_blocks(selectedDate, blk_page_idx, 0);
        list_txs(selectedDate, tx_page_idx);

    });
end_js

html_block "templates/footer.html"




Code:

page address(addr,page_idx) = `

push stylesheets,"/assets/css/plugins/blocks.css"
push scripts,"/assets/js/blocks.js"

html_head "PURENODE BLOCK EXPLORER ( ADDRESS )"
html_block "templates/menu.html"
html_block "templates/address.html"
html_scripts
html_js
$(document).ready(function ()
{
App.init();
App.initScrollBar();
site_base_url = '/purenode.site';
api_base_url ='';
currentAddr = '%addr%';
page_idx    = parseInt('%page_idx%');
lang = 'en';

$('#imp_addr').val(currentAddr);
list_addr_txs(currentAddr, page_idx);
});
end_js

html_block "templates/footer.html"

`




Code:

page wallet = `

push stylesheets,"/assets/css/plugins/blocks.css"
push scripts,"/assets/js/blocks.js"
push scripts,"/assets/js/ecdsa_bundle.js"
push scripts,"/assets/js/jsSHA-2.2.0/src/sha_dev.js"
push scripts,"/assets/js/keys.js"
push scripts,"/assets/js/md5.min.js"

html_head "PURENODE WALLET"
html_block "templates/menu.html"
html_block "templates/wallet.html"
html_scripts
html_js
    jQuery(document).ready(function() {
App.init ();

lang ='en';
api_base_url ='';
site_base_url ='/purenode.site';
ec = new EC('secp256k1');

$('#addrlabel').val('new address');
get_accounts ('my_address_list_table');

    });
end_js

html_block "templates/footer.html"
`







Those scripts are executed by the node, and have full access to the blockchain api modules, and can insert node variable in the javascript generation with the %% tags.


Like this it will become very easy to program distributed html5 apps.


For the moment i'm finishing this script and polishing the API, after it will pick a new name, and make yet another website lol But this time with real documentation, examples, download, sources etc more technically oriented, now that the API is getting cleaner and the script parser is version 0.1 i can start to write more focused documentation.

With the script it will be also easy to add the mempool and the p2p managment, so probably i'll end up running a beta coin in POW with it in the end lol

I will see, anyway i'll create a new thread with a new site and new plan in the coming weeks ! Smiley
Pages: « 1 2 3 4 5 [6]  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!