Show Posts - Riker singapore
Please login or register.

Login with username, password and session length
Advanced search  


Latest Stable Nxt Client: Nxt 1.12.2

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Riker

Pages: [1] 2 3
Nxt General Discussion / Preparations for Ignis Crowd Sale Round #2
« on: August 24, 2017, 10:02:54 am »
More info regarding the round 2 of the crowd sale https://medium.com/@lyaffe/ignis-token-sale-round-2-59433c04073a

Nxt General Discussion / The story of the IGNIS Crowd Sale (first round)
« on: August 12, 2017, 10:50:50 am »
They say necessity is the mother of all invention. By the end of day last Saturday, the developers at Jelurida were facing the grim reality. A single user had bought every exchange offer they published before anyone else even had a chance to participate. Hundreds or perhaps even thousands of participants sitting in front of their computer and waiting for their chance to buy, did not even see it enabled on the user interface before it was all over.

While the Nxt blockchain itself has performed remarkably well under the immense load, the social impact of having a crowd sale which turned into two over the counter transfers was turning into a PR disaster. Not because this hasn’t been a concern as the developers went to great lengths to try to prevent this situation by splitting the 60M IGNIS round into 12 batches of 5M tokens each and by randomizing the exact block in which the sale would start to prevent power users from using phased transactions to front run others.
Still, someone has found a loophole. In the beginning, the thought was that this user (nicknamed MAAC by everyone, due to his account address being NXT-MAAC-AZFN-MK6A-CE4N7) was using a bot, which became a common perception. However soon after, MAAC himself has confessed that he was not using a bot, does not even program, and that his day job is at the movie theater. Instead, MAAC, being an NXT holder and supporter since 2013, spent weeks learning the blockchain and attempted various techniques. He figured that by listening to new transactions, he can intercept the Jelurida exchange offer just after it was published while it was still unconfirmed and immediately submit his transactions. All other users were waiting for the user interface to refresh but this would only occur when a new block was forged. By then, MAAC’s transactions had already matched the Jelurida exchange offer and the sale was over.

To make matters worse, Jelurida had submitted a phased exchange offer then approved it using another approval transaction. MAAC was using the exact same technique, thus gaining priority even on other users who tried to match the exchange while being unconfirmed using regular transactions. For the developers, the choice on what to do was not immediately apparent. On one hand, the crowd sale progressed as expected and 2M NXT were bought every 12 hours. In addition, nothing that MAAC did had violated the terms and conditions, so no legal exposure existed. Still, the feeling was that something must be done and must be done quickly. Attempts to explain the situation were faced with angry comments ranging from “The worst ICO ever” to dirty words.

After studying the technique used by MAAC, the Jelurida devs realized that using a phased exchange, while more secure, is contributing to the unfair advantage gained by MAAC. So, one quick fix (which wasn’t implemented initially) was to start using a regular exchange transaction and allow anyone who is monitoring the unconfirmed pool to compete. But still, this wasn’t very helpful to most users who do not understand the exact inner workings of the blockchain.

While users like MAAC, who study the advanced features of the platform, provide immense contribution to Nxt, the realization was that the only way to prevent MAAC, and now also several others, from getting a head start, was to beat them in their own game by allowing anyone to front run the unconfirmed exchange transaction and thus equalize the playing field and make the process more similar to a random lottery.
Nothing like this has been attempted before, not in Nxt and perhaps not in any other blockchain protocol. The idea was to let users schedule transactions in advance, which their node will submit to the network immediately after seeing the Jelurida exchange offer. This had to be implemented in a way that will still reuse the existing user interface and not require users to re-learn the buying process or having to revert to command line tools or as such.

While most of the building blocks for this feature had already existed, the actual implementation, under tight schedule and extreme pressure from potential buyers, would prove daunting. Nevertheless, slightly more than 48 hours after the problem has surfaced, and less than 24 hours after coding began, a solution was implemented and released as official version of Nxt 1.11.7
Users had to frantically upgrade their software and those who did not rely on full blockchain nodes had to set up ones. Some documentation and FAQ pages were hastily prepared and some minor bugs had to be reproduced and documented. However, for the 6th batch by Monday evening, the scheduled transaction mechanism was successfully deployed. Still, only 15 users would actually buy the IGNIS marker token (named JLRDA). The demand outpaced supply by at least 20x. Still, the process itself became random enough in order not to obviously favor any given account.
Six more batches were sold over the next few days. Some heuristics were developed in order to improve the buying chances like trying to target the buy transactions at the next block forger, but overall, the process has become fairer.

Moreover, the immense knowledge gained during this exercise has made Nxt a robust solution for crowd funding platform. The built-in features of Nxt provides tight control over the ability to spend the funds raised and the new transaction scheduler makes a stampede on the blockchain a much more egalitarian process which no longer favors geeks and whales.
Would Nxt now become a popular choice for future crowd funding campaigns? Time will tell. What is sure, is that the Nxt legacy will proceed with a vengeance with 4 more crowd funding cycles on the way and while looking forward for the launch of Ardor, the ultimate solution to the blockchain bloat problem.

Nxt General Discussion / Scam Alert
« on: August 10, 2017, 05:58:21 am »
Do not buy the JLRDA asset id 15532970377128624482 issued by account NXT-GWBT-Q7M8-B7HE-BGS79
This is a SCAM asset which is unrelated to the IGNIS crowd sale which uses the monetary system

Small bug in 1.11.7 that I want users to be aware of.

Under the following conditions clicking the calculate fee button will schedule an unwanted currency buy transaction:
1. Connect to a localhost node or a desktop wallet (workaround: remote nodes are not affected or you can even connected to your local node by ip to workaround this)
2. Login in with passphrase and "remember me" checked or fill the passphrase field
3. Click the "Calculate Fee" button on the currency buy modal (workaround: don't click the calculate fee button, you'll use the default fee of 1 nxt or type the fee manually)

To check if you are already affected by this problem connect to http://localhost:6876/nxt?=%2Fnxt&requestType=getScheduledTransactions&account=xxx&adminPassword=yyy and look which transactions are scheduled.

To delete wrongly scheduled transactions, restart your node.

Nxt General Discussion / NXT 1.11.7 Q&A
« on: August 07, 2017, 01:46:12 pm »
Q&A about the newly introduced "Scheduled Transactions" feature to prevent front running the unconfirmed transactions pool.
See also https://nxtforum.org/general-discussion/the-story-of-the-ignis-crowd-sale-(first-round) which explains the motivation for this feature.

Q: what's the priority to execute these buy orders, when they will hit blockchain? Same as usual?
A: As soon as the node scheduler storing the scheduled transactions sees the exchange offer as an unconfirmed transaction, it will immediately broadcast your currency buy transactions.
And they will compete with the rest of the transaction for inclusion in the next block, according to the usual transaction priority.

Q: So, if I understand correctly, this new stuff is for users to make buy transaction in advance, instead of lurking near PC and try to be fast?
A: Exactly

Q: And if my advanced buy order is not filled, I need to repeat the same before the next batch? Am I right, this new stuff do not solve MAAC problem?
A: It does solve it, since MAAC found a way to submit his transaction while the Jelurida exchange offer was still unconfirmed and invisible to the UI.
With 1.11.7, every scheduled transaction will do exactly that.

Q: When Jelurida exchange offer becomes valid? Only when approved or broadcasted?
A: When the Jelurida exchange offer is still unconfirmed the scheduler will submit the buy orders

Q: will not wait for approval of it?
A: They will all approve in the same block, the exchange offer will have the earliest arrival time so the currency buy transactions will match it in the same block just like MAAC did it manually

Q: But looking at history, approval account approves exchange offer few block later. I feel some confusion here. Always thought, that without approval any transaction is not "valid".
A: The exchange offer will no longer be phased, just regular transaction

Q: And if my scheduled buy order is not filled, I need to repeat the same order before the next batch?
A: Yes, as usual, however you'll compete on level terms with everyone else

Q: What do I need in order to submit a scheduled transaction?
A: You'll need a full node running on localhost, or a remote full node to which you have the admin password. As usual your passphrase is never submitted to the remote node

Q: Where can I see my scheduled transactions?
A: Use the getScheduledTransactions API

Q: What if restarted my node?
A: You'll need to resubmit the scheduled transactions

Q: What is the maximum number of transactions I can schedule?
A: 100 per node

Q: How do I delete scheduled transactions?
A: From the "Scheduled Transactions" page in the wallet.

Q: Can I use the jelurida.com public node to post scheduled transactions?
A: No, since we do not reveal the admin password for our public node

Q: Do I see my scheduled transaction as unconfirmed or somewhere in the wallet?
A: You see it in the "Scheduled Transactions" page in the wallet.

Q: Can I schedule a phased currency buy transaction?
A: No

Q: If I am running a full Nxt node on a vps which I have control in but don't fully trust, so I don't want to expose my passphrase to it. How should I submit a scheduled transaction on the vps safely?
A: When you submit scheduled transactions to a remote node, your passphrase is not submitted to the remote node. You do need specify the admin password of the remote node in the account settings of your wallet.

Q: How do I know that my scheduled transactions were indeed submitted?
A: If your transactions were submitted you will see them in your wallet dashboard and you can follow your balance changes in the account ledger page as usual.

Nxt General Discussion / Ignis Token Sale Progress
« on: August 05, 2017, 01:12:26 pm »
Dear NXT community members, we have analysed the first buy in the IGNIS ICO earlier and we want to report our findings to you.
We believe he had a bot which listens to unconfirmed transactions, so when the buyer saw our approval transaction to our phased offer he quickly approved his phased buy either manually or automatically.
Since the matching of the offer and the buy occurred in the same block, users using the wallet UI did not even get a chance to see the offer.
There is no way we can block accounts from doing this. Buyers can distribute their funds to other accounts, or already have them set up, as well as other users who have already planned this and don't have their accounts known.
We understand that this is upsetting to users, and it is one reason why we have multiple rounds; we cannot control this in a decentralized ecosystem. The IGNIS sold this morning represents 1% of all the funds available in the Token Sale.
Until August 10th UTC, there will be 11 more opportunities to buy at the price of 0.4 NXT and starting from August 26th, 80 M will be available, though at the price of 0.55 NXT.
After these rounds are completed, still less than a third of all IGNIS to be sold will have been sold.

I'm here to answer any questions, but please keep on topic and try to stick to the facts.

Nxt Helpdesk / Small UI issues in the IGNIS Token sale page
« on: August 04, 2017, 08:08:43 am »
When using the new "IGNIS Token sale" page in the NXT 1.11.6 wallet there are small UI glitches that may confuse users:

Problem #1:
Connect to a remote node, using passphrase and "remember me" checked. When you buy JLRDA and on the confirmation modal, click "calculate fee", you will see a modal with transaction data instead of seeing the calculated fee.

Workaround #1:
If you are using the login method above, don't click the "calculate fee" button. Simply leave the fee box empty so you will pay 1 NXT fee.

Problem #2:
The "Units" field in the "Buy JLRDA" section of the page is not initialized to "0" by default. This causes a misleading behavior for example, type 100 in the field, click "Buy" then "Cancel", you will still see "100" in the units field but the "Buy" button is now disabled.

Workaround #2:
Change the value of the "Units" field and move the focus away from it (with tab key or mouse click) to enable the "Buy" button.

Problem #3:
The "JLRDA Exchange History" table has no paging buttons. This means, it will only show the last 15 exchanges of all accounts.

Workaround #3:
You can see your exchanges in the "Exchange History" page of the "Monetary System"

These (minor) UI issues will be fixed in release 1.11.7, however we don't like to issue a release just now a day before the start of the ICO.
So please understand these problems and use the workarounds.

In addition, you need to be aware that after buying JLRDA you won't immediately see your unconfirmed transaction in the exchange table, it will only display there once a new block is loaded by the wallet.
The page will refresh automatically. You can still see your unconfirmed transaction on the wallet desktop as usual.

Nxt General Discussion / Quotes from community memebers
« on: July 23, 2017, 11:01:20 am »
Folks, to help us with marketing, we would like to community members to answer the following questions:
How long have you been a member of the Nxt community?
What do you like about Nxt?
What are you excited about Ardor?

We may incorporate some of the nicer answers in some of our marketing materials.

The purpose of this task is to implement an expected next block counter.
Currently we have the generators page which displays the expected next forger and expected forging time.
You will need to implement a next block count down label based on this data in the left pane next to the block height.
Clicking this widget will open the existing generators page.
The code has to be clean and the widget has to look elegant and integrate well with the existing UI layout.

We would like to offer a 5K bounty for this task.

Currently when connecting to a remote node for the first time, it's not uncommon to see a Blue screen displayed for 10-20 seconds while the client fetches the necessary resources.
The purpose of the task is to display a moving progress bar when loading the client until the lock screen is displayed.

There is no simple solution for this because of the way the client resources are loaded synchronously using the nrs.sitebuild.js script.
This synchronous loading is necessary in order to initialize the handle bars components and the localization resources.
The solution can utilize any wide spread web development technique, but not rely on any plugin, and has to work both in browser and in the mobile browser and not break the desktop wallet (which is less affected by this problem).

We would like to offer a 20K NXT bounty for this task.

Regarding users who sent by mistake Ardor assets and NXT to the Ardor asset issuer account NXT-FQ28-G9SQ-BG8M-6V6QH see https://nxt.org/buy-ardor-asset/
As already discussed this account is under account control by the Genesis account which has minus balance and is therefore locked for outgoing transactions. Therefore we cannot currently release these funds.

On the next hard fork, scheduled for the time of the Ardor distribution, we will implement the following changes to release these funds:
1. For Ardor assets - we will revert all incoming Ardor asset transfer transactions so that these assets will be returned to the sender. In most cases the sender is an exchange account, users will have to make sure the exchange from which they sent the transaction will reimburse their account.

2. For locked NXT - we will remove the account control from this account and manually reimburse NXT locked in it, users who sent these transactions from exchanges should provide convincing evidence that they are indeed the original owners of the locked NXT.

Nxt General Discussion / Ardor testnet reset
« on: June 28, 2017, 02:30:56 pm »

Just a warning for now, at the next release of Ardor 2.0.4e, we will reset the Ardor testnet to a new Genesis block which will include a snapshot of the NXT testnet aliases, currency names and account properties and also enable the new features like smart phasing and asset increase.
Not sure yet about schedule, just wanted developers to be aware of that.

Nxt General Discussion / Passphrase Recovery tool - coming soon
« on: June 25, 2017, 06:55:41 am »
For users who has a typo in their passphrase or run into some encoding issue, we will be providing a simple command line utility which can be used to quickly scan for many passphrase combinations.
Here is how it works:

Define your best guess passphrase in nxt.properties:
Code: [Select]
Specify which positions you are not sure about:
Code: [Select]
Define the list of characters to try or choose an existing dictionary
Code: [Select]
Code: [Select]
recoveryDictionary=2,3,\u2019(where \u2019 represents a Unicode character http://www.fileformat.info/info/unicode/char/2019/index.htm which can be easily confused with a similar ascii character)

Invoke passphraseRecovery.bat / passphraseRecovery.sh and let it do its magic:
Code: [Select]
Loaded 184855 public keys
recoveryWildcard = "1**4"
wildcard=1**4, wildcard chars=[49, 42, 42, 52]
recoveryPositions = "2,3"
Recovering chars: * *
recoveryDictionary = "ascii"
Wildcard 1**4 positions [1, 2] dictionary [ , !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ;, <, =, >, ?, @, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, {, |, }, ~, ]
Scanning 9216.0 permutations
task 1 / 96 is done
task 15 / 96 is done
Solution{passphrase=1234, passphraseChars=[49, 50, 51, 52], publicKey=fddcda69eeca58e5d783ad1032d080d2758a4e427881b6a4a6fe43d9e7f4ac34, accountId=-2868754528991055020, rsAccount=NXT-5WUN-YL5V-K29F-F43EJ}

Under the hoods, the utility loads all existing public keys and attempts to map a passphrase to one of the public keys by changing the characters in the search positions based on characters from the defined dictionary until finding a passphrase which passphrase maps to an existing public key (if any)

Nxt General Discussion / Introduction to Smart Phasing
« on: June 25, 2017, 05:35:50 am »
As explained in the nxt wiki https://nxtwiki.org/wiki/Phasing , Phasing is about deferring the execution of a transaction until certain conditions are met.
Currently, phasing approval models and minimum balance models allows flexible definition of approval rules for a transaction (a.k.a “Smart Transactions”), however, they cannot be mixed and matched to provide more functional approval modals.

Smart Phasing
To support more advanced phasing logic, we now added to Ardor the ability to create "Composite" voting models.
A composite model defines the voting models building blocks and the logic to bind them into an "Approve" or "Reject" decision.
The composite model supports the AND (&), OR (|) and NOT (!) logical operators and defines an expression which applies these operators on a combination of simple voting models.

Using a NOT operator, allows you to setup a "dead man switch" so that funds are transferred to another account only in case an account did not approve this transaction until a certain height i.e. the account owner is assumed dead.

Using a NOT and AND operators, you can define that a transaction is approved at certain height only if none of the accounts in the whitelist has voted against it.

You can also define more complex conditions like approve a transaction only in case an account from a whitelist (i.e. a regulator, manager, judge etc) has approved it OR an account holding a certain number of tokens approved it i.e a user a stake holder etc.

User interface:

New page to define approval models:

Define the logical expressioin for the composite model by referring to other voting models:

View the row approval model JSON data:

Reference the approval model when submitting a transaction:

Setting up your own evaluation blockchain kit based on NXT is a relatively simple process.
Here is a procedure how to set this up which should work on any Linux VPS from any cloud provider.
This is not a procedure for setting up a public NXT node

Install Oracle Java
Version 1.8.0_131 is assumed. For a different version update the download link and all other references.
Code: [Select]
wget --no-cookies --no-check-certificate --header "Cookie:gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
Code: [Select]
gunzip jdk-8u131-linux-x64.tar.gz
Code: [Select]
tar -xvf jdk-8u131-linux-x64.tar

Install the NXT Evaluation kit
Version 1.11.5 is assumed, update the download link to use a different version
Code: [Select]
wget https://bitbucket.org/Jelurida/nxt-evaluation/downloads/nxt-eval-client-1.11.5.shFollow the installation instructions
Code: [Select]
./jdk1.8.0_131/bin/java -jar nxt-eval-client-1.11.5.shCopy the JRE under the NXT folder so that you don't need to modify run.sh
Code: [Select]
cp -r jdk1.8.0_131/jre NXT-EVAL/jre
Code: [Select]
Run the NXT evaluation kit
Run in the console
Code: [Select]
./run.sh to
Run in the background
Code: [Select]
nohup ./run.sh &

Additional configurations
To access the API port 6876 from a remote browser and to be able to manage your node, add the following settings to conf/nxt.properties
Code: [Select]

Open inbound port 6876 (API port) and 5874 (Peer port) in the cloud provider firewall.

Connect to your node from any browser using http://<node.address>:6876
There 10 accounts each funded with 100 Million evaluation NXT available with passphrases 0, 1, ... , 9 - connect to any of these accounts and start forging

To setup a network of nodes for your evaluation blockchain, add the IP addresses of all your blockchain peers to the nxt.defaultTestnetPeers setting in nxt.properties as a semicolon separated list.
The same procedure can be used to setup an NXT public node and connect to the production blockchain. You'll need to download the official release instead of the evaluation kit.

As you know, just funding your NXT account with tokens does not yet initialize your account.
This means that until you issue an outgoing transaction from your account, it is only protected by your 64 bit NXT address which is somewhat insecure and not by a 256 public key which is fully secure.

Luckily there is a way to secure your new account without requiring you to issue an outgoing transaction and without requiring you to download the Blockchain.
The procedure works as follows:
1. Install NXT on an offline computer
2. Start your node and connect to it using the desktop wallet or web wallet (http://localhost:7876)
3. Create an account to generate a new passphrase and store it in a safe place
4. Login using your newly created passphrase
5. From the dashboard locate your public key displayed below the "Dashboard" header or click the "More Info" link on the "Account Balance" tile and on the resulting "Account Details" modal locate the "Public Key" field and copy the 64 characters value
7. Provide your newly created NXT address and your 64 characters public key to an account owner who already poses NXT and has a fully synchronized blockchain, some exchanges also support this process
8. The online account owner should now click on the "Send NXT" button in his wallet (or the Ardor equivalent) and specify your account address in the Recipient field. The dialog will display in response the "Recipient Public Key" field below. Enter the 64 chars public key into this field. Complete the rest of the data and submit the transaction.
9. Once the incoming transaction is confirmed, your account is funded and secured by a 256 public key

Nxt Helpdesk / How to properly shutdown your NXT node
« on: April 18, 2017, 11:47:01 am »
The NXT node uses a Java mechanism called "Shutdown Hook" to close the database and perform necessary cleanup before shutting down the Java process.
Killing the Java process without letting the shutdown hook execute may result in database corruption.

Therefore, when shutting down the NXT node, always use one of the following methods:
1. On GUI environment, use the "Shutdown" menu item from the system tray icon.
2. From the command line use the
Code: [Select]
kill <pid> command.

If possible, never use the following methods for shutting down the node:
Code: [Select]
kill -9 <pid>or kill the process from the Windows task manager or using Mac OS/X similar function.

Pages: [1] 2 3