unvoid
|
|
September 17, 2016, 02:43:02 PM |
|
2016-09-17 14:40:20 INFO: Finished blockchain download 2016-09-17 14:40:22 INFO: Blockchain download in progress 2016-09-17 14:40:22 SEVERE: Error in blockchain download thread java.lang.NullPointerException at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) at nxt.Appendix$PrunableSourceCode.validate(Appendix.java:575) at nxt.TransactionImpl.validate(TransactionImpl.java:1014) at nxt.BlockchainProcessorImpl.validateTransactions(BlockchainProcessorImpl.java:1434) at nxt.BlockchainProcessorImpl.pushBlock(BlockchainProcessorImpl.java:1326) at nxt.BlockchainProcessorImpl.access$1200(BlockchainProcessorImpl.java:38) at nxt.BlockchainProcessorImpl$1.downloadBlockchain(BlockchainProcessorImpl.java:550) at nxt.BlockchainProcessorImpl$1.downloadPeer(BlockchainProcessorImpl.java:270) at nxt.BlockchainProcessorImpl$1.run(BlockchainProcessorImpl.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2016-09-17 14:40:22 INFO: Finished blockchain download 2016-09-17 14:40:23 INFO: Blockchain download in progress 2016-09-17 14:40:24 SEVERE: Error in blockchain download thread java.lang.NullPointerException at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) at nxt.Appendix$PrunableSourceCode.validate(Appendix.java:575) at nxt.TransactionImpl.validate(TransactionImpl.java:1014) at nxt.BlockchainProcessorImpl.validateTransactions(BlockchainProcessorImpl.java:1434) at nxt.BlockchainProcessorImpl.pushBlock(BlockchainProcessorImpl.java:1326) at nxt.BlockchainProcessorImpl.access$1200(BlockchainProcessorImpl.java:38) at nxt.BlockchainProcessorImpl$1.downloadBlockchain(BlockchainProcessorImpl.java:550) at nxt.BlockchainProcessorImpl$1.downloadPeer(BlockchainProcessorImpl.java:270) at nxt.BlockchainProcessorImpl$1.run(BlockchainProcessorImpl.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Same story on two my nodes after del nxt_test_db
|
BTC: 1CMgHWx4wkAaAy2FfeCyPdedUExmhGhfi5 XEL: XEL-HCM8-KB6E-YFLK-8BWMF
|
|
|
Evil-Knievel
Legendary
Offline
Activity: 1260
Merit: 1168
|
|
September 17, 2016, 03:11:59 PM |
|
2016-09-17 14:40:20 INFO: Finished blockchain download 2016-09-17 14:40:22 INFO: Blockchain download in progress 2016-09-17 14:40:22 SEVERE: Error in blockchain download thread java.lang.NullPointerException at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) at nxt.Appendix$PrunableSourceCode.validate(Appendix.java:575) at nxt.TransactionImpl.validate(TransactionImpl.java:1014) at nxt.BlockchainProcessorImpl.validateTransactions(BlockchainProcessorImpl.java:1434) at nxt.BlockchainProcessorImpl.pushBlock(BlockchainProcessorImpl.java:1326) at nxt.BlockchainProcessorImpl.access$1200(BlockchainProcessorImpl.java:38) at nxt.BlockchainProcessorImpl$1.downloadBlockchain(BlockchainProcessorImpl.java:550) at nxt.BlockchainProcessorImpl$1.downloadPeer(BlockchainProcessorImpl.java:270) at nxt.BlockchainProcessorImpl$1.run(BlockchainProcessorImpl.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2016-09-17 14:40:22 INFO: Finished blockchain download 2016-09-17 14:40:23 INFO: Blockchain download in progress 2016-09-17 14:40:24 SEVERE: Error in blockchain download thread java.lang.NullPointerException at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) at nxt.Appendix$PrunableSourceCode.validate(Appendix.java:575) at nxt.TransactionImpl.validate(TransactionImpl.java:1014) at nxt.BlockchainProcessorImpl.validateTransactions(BlockchainProcessorImpl.java:1434) at nxt.BlockchainProcessorImpl.pushBlock(BlockchainProcessorImpl.java:1326) at nxt.BlockchainProcessorImpl.access$1200(BlockchainProcessorImpl.java:38) at nxt.BlockchainProcessorImpl$1.downloadBlockchain(BlockchainProcessorImpl.java:550) at nxt.BlockchainProcessorImpl$1.downloadPeer(BlockchainProcessorImpl.java:270) at nxt.BlockchainProcessorImpl$1.run(BlockchainProcessorImpl.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Same story on two my nodes after del nxt_test_db This was a very important catch! This stress tested source-code pruning, meaning that source code that is older than 24 hours (testnet) can be safely removed from the blockchain. The bug was that, after pruning, the source code was still tried to be executed! There was a little bug which you found and which is fixed now! Thanks for testing!
|
|
|
|
unvoid
|
|
September 17, 2016, 03:16:05 PM |
|
This was a very important catch! This stress tested source-code pruning, meaning that source code that is older than 24 hours (testnet) can be safely removed from the blockchain. There was a little bug which you found and which is fixed now! Thanks for testing!
Everytime I found something serious I'm happy so I'm glad I can help as much as I can
|
BTC: 1CMgHWx4wkAaAy2FfeCyPdedUExmhGhfi5 XEL: XEL-HCM8-KB6E-YFLK-8BWMF
|
|
|
coralreefer
|
|
September 17, 2016, 04:51:05 PM |
|
I thought maybe we could only average over the last blocks that HAD at least on POW included, but not sure if this is the right way to go.
This would leave the risk that a big miner could drive up the difficulty, then go offline leaving the remaining miners with such a difficult target that they may not get a POW reward for hours or days. Could you please explain a little more how it is determined which Work Algo the miner gets (i.e. if there are currently 5 projects out there with different algos, how does the network decide which one I get). If it's simply distributed evenly, then there may not be any issue here regarding the re-targeting; however, if there is a way for the miner to pick which algo they work on, then I would think they will figure out how to always go after the one with the best profitability based on difficulty / reward leaving some algos without any miners interested in working on them.
|
|
|
|
Evil-Knievel
Legendary
Offline
Activity: 1260
Merit: 1168
|
|
September 17, 2016, 05:03:12 PM Last edit: September 17, 2016, 05:16:11 PM by Evil-Knievel |
|
This would leave the risk that a big miner could drive up the difficulty, then go offline leaving the remaining miners with such a difficult target that they may not get a POW reward for hours or days.
Could you please explain a little more how it is determined which Work Algo the miner gets (i.e. if there are currently 5 projects out there with different algos, how does the network decide which one I get). If it's simply distributed evenly, then there may not be any issue here regarding the re-targeting; however, if there is a way for the miner to pick which algo they work on, then I would think they will figure out how to always go after the one with the best profitability based on difficulty / reward leaving some algos without any miners interested in working on them.
Actually, the miner can pick whichever work he likes. We had a debate over this a few months ago and we decided to leave it up to the miners. Some surely just want to contribute to specific programs (like the work owner wants to work for himself only, or someone has a specific hardware like GPUs which is siutable for specific works only). Other miners also may have different goals: some may want the steady income from the POW submissions, others go "all in" and mine those works with the greatest bounty fund in the hope to make the big score. Yes, it may leave several works "untouched", but this is the "market aspect". If your work finds no miner on the market, you have to rethink the rewards/payouts you configured This would leave the risk that a big miner could drive up the difficulty, then go offline leaving the remaining miners with such a difficult target that they may not get a POW reward for hours or days.
This one is indeed a tough one! Any idea? I thought it could be an option to leave it as it is right now, and give a hard limit to the number of unconfirmed POW inside the memory pool. This would "softly" limit the impact of flooding those POW bursts. Even a block creator could only include a limited number of POW in a block since the block is limited by the maximum block size This is not a perfect solution though, i think!
|
|
|
|
coralreefer
|
|
September 17, 2016, 05:14:17 PM |
|
This one is indeed a tough one! Any idea?
Because Elastic mining really doesn't behave like the more traditional coins, maybe it should treat mining more like how a pool looks at it. In this case there would be a fixed number of XEL per pow block and instead of all or nothing, you would get a percent based on how much hash you contribute. So the target would only effectively be used to throttle the amount of POW submissions, and it could be set differently for different miners on the same block which just alters their percent of the reward. I'd have to think more if there are any downsides but the more I been looking into mining xel, the network really looks like one big pool to me. The pow mining is just shares to determine your percent of the pow reward for that algo, and the bounty is equivalent to the pool finding a block, and even that should probably be distributed evenly across miners (not 100% sure if that would be correct). Anyway, this idea may be way off base, but I think with xel we need to think outside the box.
|
|
|
|
Bgjjj2016
Sr. Member
Offline
Activity: 448
Merit: 250
Ben2016
|
|
September 17, 2016, 05:25:58 PM |
|
This was a very important catch! This stress tested source-code pruning, meaning that source code that is older than 24 hours (testnet) can be safely removed from the blockchain. There was a little bug which you found and which is fixed now! Thanks for testing!
Everytime I found something serious I'm happy so I'm glad I can help as much as I can thank you ! You are another great asset along with EK for this project. Can't wait to see us mainstream with wallet and in exchanges ! Great Job !
|
My " I want that Old Toyota Camry very bad" BTC Fund :1DQU4oqmZRcKSzg7MjPLMuHrMwnbDdjQRM
|
|
|
|
coralreefer
|
|
September 17, 2016, 08:33:43 PM |
|
Hi EK, can you look at how Fund Allocation and Distribution are calculated. The display seems off, see image below: http://imgur.com/a/hVHEYThe actual results are correct, so this just seems to be a display issue.
|
|
|
|
singalone
Newbie
Offline
Activity: 23
Merit: 0
|
|
September 18, 2016, 07:52:06 AM |
|
EK you are very skillful developer, any ETA about launch? How is test going now?
|
|
|
|
|
akhavr
|
|
September 18, 2016, 08:15:18 AM |
|
Finally got my time to build and run XEL. Is this trace ok? nxt.http.ParameterException at nxt.http.ParameterParser.getAccount(ParameterParser.java:243) at nxt.http.GetAccountTransactions.processRequest(GetAccountTransactions.java:28) at nxt.http.APIServlet.process(APIServlet.java:209) at nxt.http.APIServlet.doGet(APIServlet.java:153) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:497) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:313) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:626) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:546) at java.lang.Thread.run(Thread.java:745)
I'm using latest git version of elastic-reference-client Proceeding to build a miner. PS my address is XEL-AAZZ-X7YL-94HK-6TBJB
|
|
|
|
akhavr
|
|
September 18, 2016, 08:19:17 AM |
|
Aaaand.... Here's build defect for elastic-miner: akhavr@yoga14 ~/src $ git clone https://github.com/OrdinaryDude/elastic-miner.git [...] akhavr@yoga14 ~/src $ cd elastic-miner akhavr@yoga14 ~/src/elastic-miner $ ./compile.sh javac: file not found: src/evil/ElasticPL/*.java Usage: javac <options> <source files> use -help for a list of possible options akhavr@yoga14 ~/src/elastic-miner $ ls src elastic_miner ElasticPL
Fixing it is a no-brainer, yet, it better be fixed. Need a pull request? Also, starting miner gives Retrieving work from server screwed up, most likely due to garbaged response. java.lang.NullPointerException at java.math.BigInteger.<init>(BigInteger.java:415) at elastic_miner.Main.main(Main.java:75)
What I'm doing wrong?
|
|
|
|
|
|
unvoid
|
|
September 18, 2016, 11:58:14 AM |
|
What I'm doing wrong?
Please paste your address again once you'll properly compile and run 0.3.2
|
BTC: 1CMgHWx4wkAaAy2FfeCyPdedUExmhGhfi5 XEL: XEL-HCM8-KB6E-YFLK-8BWMF
|
|
|
wwdz99
|
|
September 18, 2016, 12:29:37 PM |
|
EK you are very skillful developer, any ETA about launch? How is test going now?
Yee,EK is the first one who find the last NXT bug and got bounty 2014
|
|
|
|
unvoid
|
|
September 18, 2016, 03:26:01 PM |
|
Moved explorer to US. Europe/Asia users may notice some lags.
Probably before mainnet I'll move it back to Europe into much stronger server. I'm afraid that once mainnet will launch there will be quite high traffic for couple of days.
|
BTC: 1CMgHWx4wkAaAy2FfeCyPdedUExmhGhfi5 XEL: XEL-HCM8-KB6E-YFLK-8BWMF
|
|
|
unvoid
|
|
September 18, 2016, 05:37:18 PM |
|
I wrote app that sends 1 XEL every one minute to last block finder. Hope this will be dummy transactions for blockchain to test it more (and blockchain explorer, we need dummy transactions to test it). So we have at least one transaction every minute. @ImI for this purpose please 1M XEL @ XEL-7UTR-VYZY-ZUZZ-DTJJ5 Thanks!
|
BTC: 1CMgHWx4wkAaAy2FfeCyPdedUExmhGhfi5 XEL: XEL-HCM8-KB6E-YFLK-8BWMF
|
|
|
Evil-Knievel
Legendary
Offline
Activity: 1260
Merit: 1168
|
|
September 18, 2016, 06:29:58 PM |
|
Version bump -> 0.3.3This update is not very critical, so nobody really has to update.
Sometimes, it might happen that peers get blacklisted because they have 1. sent a POW for a transaction meeting a specific block's target value but 2. the receiver side already was ahead of the chain (maybe because it just forged a new block but not yet broadcasted it) with a different difficulty, rendering the received POW invalid and causing the peer to be blacklisted Typical symptom was something like this happening occasionally when mining on the local node (this means, some other node has blacklisted us). 2016-09-18 20:25:08 FINE: Peer 108.61.177.169 version 0.3.2 returned error: {"error":"nxt.NxtException$NotValidException: Peer sends invalid transactions: [nxt.NxtException$NotValidException: Proof of work is invalid: does not meet target]"}, request was: {"protocol":1,"requestType":"processTransactions","transactions":[{"senderPublicKey":"d9d5c57971eefb085e3abaf7a5a4a6cdb8185f30105583cdb09ad8f61886ec65","attachment":{"input":[1665498805,-467634391,-1035598394],"version.PiggybackedProofOfWork":1,"id":"7680446930260947479"},"subtype":2,"amountNQT":0,"signature":"d536bc11494fad4bdbfd1477463ce3bd9361ba336591af792fb3ad291b6d9e0acd55e6fa302fbb7af798f6e0b32ddb081b38a7429393793e802d0e7d0f733d3c","feeNQT":0,"ecBlockHeight":3945,"type":3,"deadline":3,"version":1,"timestamp":88928708,"ecBlockId":"17321588210217598091"}]}, disconnecting
The fix was to introduce a soft_unblock. Basically, we do not block peers that send POW which are invalid but were valid in the last 5 blocks. For this we have added a second Exception type. Besides the regular "NotValidException" (which causes a peer to be blacklisted) we now have the LostValidityException. If the lost validity happened not later than 5 blocks ago, there will be no blacklisting, the tx will just be dropped silently. Fixes: https://github.com/OrdinaryDude/elastic-core/commit/6e836ef42701ba799715bb16d55f00a51a87048f (The fix) https://github.com/OrdinaryDude/elastic-core/commit/4da2959b90e1ef6fab4adf598c8345a357d4890e (Added LRU cache, and fixed little bug)
|
|
|
|
|