Author

Topic: [ANN][XEL] Elastic Project - The Decentralized Supercomputer - page 256. (Read 450524 times)

ImI
legendary
Activity: 1946
Merit: 1019
Have you been in touch with him EK lately?

Without wanting to dig too much into what Lannister does, I have contacted him yesterday on behalf of a member here who then received 5 BTC in exchange for his awesome work so far and his bug hunting in the first testnet. I would also appreciate if he was involved a bit more in this thread, but even if he does not write, he is there  Wink 

Appreciate Lannister still being available and also the honoring of Unvoid's work. Thats good news!
legendary
Activity: 1260
Merit: 1168
Have you been in touch with him EK lately?

Without wanting to dig too much into what Lannister does, I have contacted him yesterday on behalf of a member here (we all are having big issues with bitmessage somehow) who then received 5 BTC in exchange for his awesome work so far and his bug hunting in the first testnet. I would also appreciate if he was involved a bit more in this thread, but even if he does not write, he is there  Wink  
legendary
Activity: 1092
Merit: 1001
Awesome job guys, you are killing it. Smiley

Between Lannister has been unresponsive for a long time and he is not logging in the forum since 8 days but he moved funds yesterday, so, he's still active. https://blockchain.info/address/1NazcPCGqSK5peSTDFKsaSWeFbBQz32kiB .
Have you been in touch with him EK lately?
Would be awesome if he posts here a recap of the project status (and eventually pay the bug bounty winners).

Cheers!
legendary
Activity: 1260
Merit: 1168
While the page loads, it's "NXT Wallet" shown on the tab's header (after the spinning wheel), and then (after a second or two) it's replaced with "Elastic Wallet" once the login page is fully loaded.
Checked on Chrome only

[master 41a5559] fix website title, thanks forum
 1 file changed, 1 insertion(+), 1 deletion(-)

hero member
Activity: 1022
Merit: 507
The new version of the testnet is not released yet! I am still testing several things like blockchain reorganization and stuff like that! I will write a release post once I think that we can start testing in public. Also, some very little UI things are still missing.

... however ...


For those who want a small sneak peek: Account with passphrase "test" has 265,000.00 Testnet-XEL in it.
Grab it if you like on the public node: http://ec2-52-57-31-137.eu-central-1.compute.amazonaws.com:6876/ Tongue



While the page loads, it's "NXT Wallet" shown on the tab's header (after the spinning wheel), and then (after a second or two) it's replaced with "Elastic Wallet" once the login page is fully loaded.
Checked on Chrome only
legendary
Activity: 1260
Merit: 1168
The new version of the testnet is not released yet! I am still testing several things like blockchain reorganization and stuff like that! I will write a release post once I think that we can start testing in public. Also, some very little UI things are still missing.

... however ...


For those who want a small sneak peek: Account with passphrase "test" has 265,000.00 Testnet-XEL in it.
Grab it if you like on the public node: http://ec2-52-57-31-137.eu-central-1.compute.amazonaws.com:6876/ Tongue

member
Activity: 91
Merit: 10
I have no coding skills but it's really good to watch you.
I'm having fun  Cheesy Cheesy

Me too, they are very professional, althoug i am not a coder, i am still very happy with their talkings.
legendary
Activity: 1232
Merit: 1001
I have no coding skills but it's really good to watch you.
I'm having fun  Cheesy Cheesy
hero member
Activity: 1022
Merit: 507
Please tell, how much time left  to launch mainnet?

When there are 3 weeks no new bugs in the new version of the testnet (which will be released today).
Awesome job EK and other developers. You guys proved lots of spectators wrong ! This project is unique and as develops, more and more demand will follow .

Yes, I must admit the devs here do a really good job. It's quite impressive especially when looking at other projects in which the progress is zero (or nearly zero), or bugs are never resolved, or the devs run away, or not responding at all, or, or, etc... On the other hand, Lannister seems to be not responsive at all, ie. the ANN page is still not updated and looks awful, webpage doesn't exist, no marketing/PR/promo. I wonder if he's going to be more active in the future, anyone knows ...?
sr. member
Activity: 448
Merit: 250
Ben2016
Please tell, how much time left  to launch mainnet?

When there are 3 weeks no new bugs in the new version of the testnet (which will be released today).
Awesome job EK and other developers. You guys proved lots of spectators wrong ! This project is unique and as develops, more and more demand will follow .
legendary
Activity: 1260
Merit: 1168
The testnet is almost ready, I will test for ~2 hours locally and then release it!

Note to the devs in here:
We need a better (more easy to understand) miner with multiple "policies" such as "mining the work with greatest bounty fund", "mining with best POW reward", "etc."


Also, we need to have a thread where we can put specific development questions up for discussion. Like this one here:

Can you all please check if the POW target value retargetting mechanism makes sence?
We aim for having 10 POW submissions per block, so we average over the last 3 blocks and calculate a "factor" by which the POW target value is scaled (the value is capped at 25% up or down).
Any obvious flaws with this?

POWRETARGET_N_BLOCKS = 3 ... 3 blocks sliding window
POWRETARGET_POW_PER_BLOCK_SCALER = 10 ... 10 POW submissions per block


Code:
public static BigInteger calculateNextMinPowTarget(long lastBlockId) {

System.out.println("entrance");
// First check in cache
BigInteger cached = powDifficultyLRUCache.get(lastBlockId);
if(cached != null)
return cached;

// Genesis specialty
if (lastBlockId == 0)
return Constants.least_possible_target;

Block b = Nxt.getBlockchain().getBlock(lastBlockId);

// try to cycle over the last N blocks, or - if height is smaller -
// over entire blockchain
int go_back_counter = Math.min(Constants.POWRETARGET_N_BLOCKS, b.getHeight());
int original_back_counter = go_back_counter;

// ... and count the number of PoW transactions inside those blocks
int pow_counter = 0;
BigInteger last_pow_target = b.getMinPowTarget();
while (go_back_counter > 0) {
pow_counter += b.countNumberPOW();
b = b.getPreviousBlock();
go_back_counter -= 1;
}

// scale up if there are not yet N blocks there, avoids MADNESS
if(original_back_counter
double scaledCounter = (double)pow_counter;

scaledCounter = scaledCounter / (1.0*original_back_counter);
scaledCounter = scaledCounter * Constants.POWRETARGET_N_BLOCKS;

pow_counter = (int)scaledCounter;
}

// if no PoW was sent during last n blocks, something is strange, give
// back the lowest possible target
if (pow_counter == 0){
pow_counter = 1; // dirty ugly fix
}

// Check the needed adjustment here, but make sure we do not adjust more
// than * 2 or /2.
// This will prevent huge difficulty jumps, yet it will quickly
// (exponentially) approxiamate the desired number
// of PoW packages per block.
BigDecimal new_pow_target = new BigDecimal(last_pow_target);
double factor = (double)(Constants.POWRETARGET_N_BLOCKS * Constants.POWRETARGET_POW_PER_BLOCK_SCALER) / (double)pow_counter; // RETARGETING

System.out.println("Retargetting: Had POW " + pow_counter + " should be " + ((Constants.POWRETARGET_N_BLOCKS * Constants.POWRETARGET_POW_PER_BLOCK_SCALER)) + ", scaling by factor " + factor);
// limits, we do not want to change the target too CRAZY at once
if (factor > 1.25)
factor = 1.25;
if (factor < 0.75)
factor = (double) 0.75;

BigDecimal factorDec = new BigDecimal(factor);

// Apply the retarget: Adjust target so that we again - on average -
// reach n PoW per block
new_pow_target = new_pow_target.multiply(factorDec);
BigInteger converted_new_pow = new_pow_target.toBigInteger();

if(converted_new_pow.compareTo(Constants.least_possible_target)==1) converted_new_pow = Constants.least_possible_target;
powDifficultyLRUCache.set(lastBlockId, converted_new_pow);
return converted_new_pow;
}
legendary
Activity: 1260
Merit: 1168
Please tell, how much time left  to launch mainnet?

When there are 3 weeks no new bugs in the new version of the testnet (which will be released today).
hero member
Activity: 495
Merit: 500
Please tell, how much time left  to launch mainnet?
hero member
Activity: 535
Merit: 500
If you are one of the donators and you want to know if you own XEL go to:
https://github.com/elastic-project/genesis-block/blob/master/genesis-block.json
or
http://elasticexplorer.org/share/donators.json
Don't go to http://elastic.pro/ and don't search there for your address because there are placed only addresses that participated in voting.



If you want to try XEL ( Elastic ):

Download testnet client https://github.com/OrdinaryDude/elastic-reference-client.
Best if you download it trough git for future easy updates. Install git on your machine and:

git clone https://github.com/OrdinaryDude/elastic-reference-client.git

Watch this video for instructions how to run it https://player.vimeo.com/video/178616474?quality=1080p and paste your address here to receive some XEL for testing and fun.

For Windows you have to run compile.bat to compile and run.bat to start XEL.



If you want to try out a miner:

1. Download it from: https://github.com/OrdinaryDude/elastic-miner
Best if you download it trough git for future easy updates. Install git on your machine and:

git clone https://github.com/OrdinaryDude/elastic-miner.git

2. ./compile.sh
3. ./run.sh
4. Give it your passphrase (after you hit a key make sure visible XEL address is yours)
5. Give it a XEL running daemon IP address (default localhost)
6. Hit enter and submit work to the network in your XEL client UI as shown here https://player.vimeo.com/video/178616474?quality=1080p. If someone else will submit work to the network your miner will automatically start working on it.
7. Example work are here https://github.com/OrdinaryDude/elastic-reference-client/tree/master/elasticpl_examples. no_bounties_found.epl will not found any bounty! Be warned that this is debug job that will just expire after 250 blocks without any submissions.

Suggestions:

run miner with lower cpu priority for optimal experience. Especialy if you running miner on the same machine that you running XEL node.

i. e.

Code:
screen nice -n 20 ./run.sh
20 is lowest possible priority in most linux env.



If you want to update XEL to the newest version:

Stop your node (CTRL + C)
Go to main directory of XEL and:
Code:
git pull origin master
./compile.sh
rm -rf nxt_test_db/
screen ./run.sh



If you want to update miner to the newest version:

Stop your miner (CTRL + C)
Go to main directory of miner and:
Code:
git pull origin master
./compile.sh
screen nice -n 20 ./run.sh
sr. member
Activity: 259
Merit: 250
Nice, I like this experiment and open community here !
hero member
Activity: 535
Merit: 500
Dont forget what I have sent you in a PM ;-) (Genesis Account)
And note, that the POW verification is dummy for the moment (submit POW or bounties with test_*.sh scripts) ... until we have the miner ready.
Nice. Some XEL to actually do something Smiley Thanks!
legendary
Activity: 1260
Merit: 1168
Dont forget what I have sent you in a PM ;-) (Genesis Account)
And note, that the POW verification is dummy for the moment (submit POW or bounties with test_*.sh scripts) ... until we have the miner ready.

EDIT: and please oversee some UI glitches which I will hopefully fix this night.At the moment I am still working on miner and POW verification parallely.
hero member
Activity: 535
Merit: 500
I'm in! Great! Smiley Now time to play before tomorrow.

legendary
Activity: 1260
Merit: 1168
I think the compile.sh script is screwed up!

EDIT: fixed


Note: We have no miner yet for the new version, just a dummy "test_proofofwork.sh" script that creates a dummy proof of work submission! Same with "test_bounty.sh".
All will be done by tomorrow.
hero member
Activity: 535
Merit: 500
...

Oh, darn ... the git add again  Wink
EDIT: sure that something is missing?

All transaction types are now working in the new version, and all are now using the versioned DB and the new account ledger.
I am starting with a local test phase now, and adding a few little missing things (in protocol and in UI) and then we can release it! I think tomorrow is realistic.

Flawless! Can't wait. I'll check again if something is missing and give a raport.

EDIT: I just can't comple it.

Code:
compiling nxt core...
src/java/nxt/Appendix.java:27: error: package ElasticPL does not exist
import ElasticPL.ASTCompilationUnit;
                ^
src/java/nxt/Appendix.java:28: error: package ElasticPL does not exist
import ElasticPL.ElasticPLParser;
                ^
src/java/nxt/Appendix.java:29: error: package ElasticPL does not exist
import ElasticPL.RuntimeEstimator;
                ^
src/java/nxt/TransactionType.java:28: error: package ElasticPL does not exist
import ElasticPL.ASTCompilationUnit;
                ^
src/java/nxt/TransactionType.java:29: error: package ElasticPL does not exist
import ElasticPL.ElasticPLParser;
                ^
src/java/nxt/TransactionType.java:30: error: package ElasticPL does not exist
import ElasticPL.RuntimeEstimator;
                ^
src/java/nxt/http/CreateWork.java:34: error: package ElasticPL does not exist
import ElasticPL.ASTCompilationUnit;
                ^
src/java/nxt/http/CreateWork.java:35: error: package ElasticPL does not exist
import ElasticPL.ElasticPLParser;
                ^
src/java/nxt/http/CreateWork.java:36: error: package ElasticPL does not exist
import ElasticPL.RuntimeEstimator;
                ^
src/java/nxt/WorkLogicManager.java:29: error: package ElasticPL does not exist
import ElasticPL.ParseException;
                ^
src/java/nxt/Executioner.java:11: error: package ElasticPL does not exist
import ElasticPL.ASTCompilationUnit;
                ^
src/java/nxt/Executioner.java:12: error: package ElasticPL does not exist
import ElasticPL.ElasticPLParser;
                ^
src/java/nxt/Executioner.java:13: error: package ElasticPL does not exist
import ElasticPL.ParseException;
                ^
src/java/nxt/Executioner.java:23: error: cannot find symbol
ElasticPLParser parser = null;
^
  symbol:   class ElasticPLParser
  location: class Executioner
src/java/nxt/Executioner.java:47: error: cannot find symbol
public Executioner(String code, int numberOfInputs, long identifier) throws ParseException {
                                                                           ^
  symbol:   class ParseException
  location: class Executioner
src/java/nxt/Appendix.java:574: error: cannot find symbol
ElasticPLParser parser = new ElasticPLParser(stream);
^
  symbol:   class ElasticPLParser
  location: class PrunableSourceCode
src/java/nxt/Appendix.java:574: error: cannot find symbol
ElasticPLParser parser = new ElasticPLParser(stream);
                            ^
  symbol:   class ElasticPLParser
  location: class PrunableSourceCode
src/java/nxt/Appendix.java:584: error: cannot find symbol
ASTCompilationUnit rootNode = ((ASTCompilationUnit) parser.jjtree.rootNode());
^
  symbol:   class ASTCompilationUnit
  location: class PrunableSourceCode
src/java/nxt/Appendix.java:584: error: cannot find symbol
ASTCompilationUnit rootNode = ((ASTCompilationUnit) parser.jjtree.rootNode());
                               ^
  symbol:   class ASTCompilationUnit
  location: class PrunableSourceCode
src/java/nxt/Appendix.java:585: error: cannot find symbol
WCET = RuntimeEstimator.worstWeight(rootNode);
      ^
  symbol:   variable RuntimeEstimator
  location: class PrunableSourceCode
src/java/nxt/Appendix.java:590: error: cannot find symbol
numberInputVars = (byte) ((ASTCompilationUnit) parser.jjtree.rootNode()).getRandomIntNumber();
                          ^
  symbol:   class ASTCompilationUnit
  location: class PrunableSourceCode
src/java/nxt/http/CreateWork.java:122: error: cannot find symbol
ElasticPLParser parser = new ElasticPLParser(stream);
^
  symbol:   class ElasticPLParser
  location: class CreateWork
src/java/nxt/http/CreateWork.java:122: error: cannot find symbol
ElasticPLParser parser = new ElasticPLParser(stream);
                            ^
  symbol:   class ElasticPLParser
  location: class CreateWork
src/java/nxt/http/CreateWork.java:132: error: cannot find symbol
ASTCompilationUnit rootNode = ((ASTCompilationUnit) parser.jjtree.rootNode());
^
  symbol:   class ASTCompilationUnit
  location: class CreateWork
src/java/nxt/http/CreateWork.java:132: error: cannot find symbol
ASTCompilationUnit rootNode = ((ASTCompilationUnit) parser.jjtree.rootNode());
                               ^
  symbol:   class ASTCompilationUnit
  location: class CreateWork
src/java/nxt/http/CreateWork.java:133: error: cannot find symbol
WCET = RuntimeEstimator.worstWeight(rootNode);
      ^
  symbol:   variable RuntimeEstimator
  location: class CreateWork
src/java/nxt/http/CreateWork.java:141: error: cannot find symbol
numberInputVars = (byte) ((ASTCompilationUnit) parser.jjtree.rootNode()).getRandomIntNumber();
                          ^
  symbol:   class ASTCompilationUnit
  location: class CreateWork
src/java/nxt/WorkLogicManager.java:1262: error: cannot find symbol
} catch (ParseException e1) {
        ^
  symbol:   class ParseException
  location: class WorkLogicManager
src/java/nxt/Executioner.java:56: error: cannot find symbol
parser = new ElasticPLParser(stream);
            ^
  symbol:   class ElasticPLParser
  location: class Executioner
src/java/nxt/Executioner.java:67: error: cannot find symbol
((ASTCompilationUnit) parser.jjtree.rootNode()).reset();
 ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:68: error: cannot find symbol
((ASTCompilationUnit) parser.jjtree.rootNode()).fillGivenIntNumber(inputs);
 ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:69: error: cannot find symbol
((ASTCompilationUnit) parser.jjtree.rootNode()).interpret();
 ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:71: error: cannot find symbol
boolean verifyB = ((ASTCompilationUnit) parser.jjtree.rootNode()).verifyBounty();
                   ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:76: error: cannot find symbol
((ASTCompilationUnit) parser.jjtree.rootNode()).reset();
 ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:77: error: cannot find symbol
((ASTCompilationUnit) parser.jjtree.rootNode()).fillGivenIntNumber(inputs);
 ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:78: error: cannot find symbol
((ASTCompilationUnit) parser.jjtree.rootNode()).interpret();
 ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
src/java/nxt/Executioner.java:80: error: cannot find symbol
boolean verifyPow = ((ASTCompilationUnit) parser.jjtree.rootNode()).verifyPOW(target_pow);
                     ^
  symbol:   class ASTCompilationUnit
  location: class Executioner
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
37 errors


I'll look closer at it.

EDIT:

I think you forgot to add ElasticPL path to compile script.

Quote
echo "compiling nxt core..."
find src/java/nxt/ -name "*.java" > sources.tmp
find src/evil/ElasticPL/ -name "*.java" >> sources.tmp
javac -encoding utf8 -sourcepath "${SP}" -classpath "${CP}" -d classes/ @sources.tmp || exit 1
echo "nxt core class files compiled successfully"

When I added bold line I was able to compile new port. Maybe you're not versioning compile.sh?
Jump to: