Programming the Nxt Blockchain for fun and profit

Blockchains can be useful in various applications, facing global audience and supporting company internal infrastructure. A blockchain is a distributed database, a copy of the blockchain is stored on each node in a peer-to-peer network. This extreme redundancy can be duely considered inefficient, but please stay with me for a couple of minutes of blockchain theory.

As each node validates all transactions recorded into the blockchain and as past transactions cannot be rolled back or tampered with like in traditional RDBMS, this redundancy makes the blockchain *immutable*, and that is a very important value proposition of blockchains. Immutability of data is something traditional databases cannot provide. You may or may not need immutability of data and trust-free confirmation that data hasn’t been altered.

In this tutorial I assume you do need this.

One of the most versatile and flexible blockchains is the Nxt Blockchain (https://nxt.org). It has over a hundred API calls https://nxtwiki.org/wiki/The_Nxt_API.

Today you will learn basics of programming the Nxt blockchain. I will use only two API calls in this tutorial. With over a hundred API calls opportunities for programmers are limitless.

Application logic

A customer of a company or an employee in an organization uploads a file through a web form.
The file is renamed to a unique name and is saved in some location on the server.

A year later the customer / employee needs to verify, using the Nxt Blockchain, that the file hadn’t been altered. For instance, this may be required for legal purposes. It doesn’t have to be files. Internal company memos can be hashed and stored in the database, to be verified in a future audit.

Nxt allows us to send and record arbitrary messages (AM) into its blockchain.

Every transaction on the blockchain comes at a fee. If the transaction size is large, it can be expensive; fortunately Nxt has a subtype of AM called prunable messages. These are pruned after 90 days which make them cheap, they are available for retrieval from archival nodes after 90 days.

The maximum size of an arbitrary message in the Nxt blockchain is approx. 42 KB, the size of one block. A prunable message of 1 KB costs 1 NXT ($0.03). 1 KB is enough to store a hash of a file and this is our final cost to permanently record one hash in the immutable distributed Nxt blockchain.

As the customer uploads a file I create a SHA256 hash of the file and store the hash in the database in the organization’s server. For simplicity I’ve chosen SQlite, but you can use Mysql, Postgresql, Oracle. I will use PDO to access SQlite database in PHP.

When we do not use the immutable database (blockchain), the file can be modified, the new hash of the modified file saved in the database, making it hard to prove the file was like this from the beginning.

Blockchain comes to the rescue

Every prunable message can be retrieved from archival nodes. Every record in the blockchain is immutable. You can be sure the hash of the file you uploaded a year ago, when it is retrieved from the blockchain, is the same hash. All you need now is compare it with the hash in the organization’s internal RDBMS.

Pre-requisites:
PHP with curl, json and some db extension (I use sqlite3). A web server is optional, you can use php-cli. Java 8 (Oracle or OpenJDK to run Nxt). Nxt reference software: https://nxtforum.org/nrs-releases/nrs-v1-10-1/.

Install the NRS (Nxt Reference Software (depending on the context interchangeably called Nxt Client or Nxt Server)) and create an account. Fund it with a few coins. You can exchange Bitcoin to NXT at an exchange service like https://shapeshift.io or exchange with someone at https://nxtforum.org. It is also possible to “mine” some free NXT as reward for running a node; http://test.nxter.org/the-forging-bounty-lottery-campaign-will-pay-5-million-in-rewards-to-forgers-and-nxt-nodes/.

First we create a simple database table for our application, nothing fancy, you can add more column types if you must store more information. I like to use DB Browser for SQLite of http://sqlitebrowser.org.

Let’s make an empty database ‘files.db’ and save it in /home/lurker10/phptutorial/files.db

Using DB Browser for SQLite create the following table.

CREATE TABLE "files" (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`txid` TEXT,
`hash` TEXT,
`uploadtime` TEXT,
`filename` TEXT
)

‘txid’ is the field for storing the id of a transaction we receive from Nxt when the transaction is accepted. It is unique. ‘hash’ is the sha256 hash of the file.

In this tutorial I skip the file upload part of code to keep it concise.

Let’s assume the file is already uploaded and stored on the web server. We define the file location variable in the code.

$uploadDir = "/home/lurker10/phptutorial/tmp/";
$fileName = "copy12345.tar";

By default the Nxt Server listens for API requests on port 7876. If you run it on the same machine as your php code, your code must send queries to http://127.0.0.1:7876/nxt

The other important variables are the passphrase of the Nxt account you’ve created and funded and the recipient’s account.

You can send the message to yourself, recipient can be your own account.

$host = "http://127.0.0.1:7876/nxt";
$secretPhrase = "your passphrase";
$recipientID = "NXT-XXXX-XXXX-XXXX-XXXXX";

The next part of code is the function that submits query using curl in a POST request.

To make a query we must define $payload and $payload_string variables and feed them to sendRequest(). It is possible to run the Nxt Server over HTTPS and use curl to verify the SSL certificate, but for this simple app we have disabled SSL verification in the curl connection.

Another point of interest is the $errorDescription, json-decoded from server response.

If there is a problem with the query (“Not enough funds” in your account when your balance is zero),
you must add error handling routine. I omit this too. For this app I assume the server responded properly, and return the response into the app for further processing.

function sendRequest($host, $payload, $payload_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 10000);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 10000);
curl_setopt($ch, CURLOPT_POST, count($payload));
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload_string);
$output = curl_exec($ch);
$curl_error = curl_error($ch);
curl_close($ch);
$errorDescription = trim(@json_decode($output)->errorDescription);
if ($errorDescription != "") { // perform error handling; return false; }
return $output;
}

As the file is uploaded already, I create a sha256 hash of the file and timestamp.

$fileHash = hash_file("sha256", $uploadDir.$fileName);
$txTime = time();

I will use PDO to work with the database.

Open the db and insert a new record.

We don’t know the txid until we talk to the Nxt Server that can give it to us when transaction is accepted on the NXT network, so for now I’ll insert null for txid.

$pdo = new PDO('sqlite:/home/lurker10/phptutorial/files.db');
$sql = "INSERT INTO files (txid, hash, uploadtime, filename)
VALUES (null, '$fileHash', '$txTime', '$fileName')";
$result = $pdo->exec($sql);

Next we create a query to send to the NXT server.

This particular query is “sendMessage”, you can find a whole lot more queries to interact with the blockchain and their mandatory and optional parameters at https://nxtwiki.org/wiki/The_Nxt_API.

As I said earlier the fee to transact is 1 NXT. 1 NXT = 100,000,000 NQT (nanoquants).
1 NQT is the smallest unit of denomination in NXT same as 1 satoshi in Bitcoin.
The Nxt Server accepts the fee in NQT, so we pay exactly 100 million NQT ($0.03)

The “broadcast” parameter can be changed to false, in this case you will receive ‘transactionBytes’ in the response, which can be broadcast to the network later using the ‘broadcastTransaction’ request. But today I have set it to ‘true’ to broadcast the transaction instantly.

Remember to urlencode() the message. I insert the filename separated from the hash with a colon into the message.

$payload = array(
"requestType" => "sendMessage",
"recipient" => $recipientID,
"secretPhrase" => urlencode($secretPhrase),
"feeNQT" => 100000000,
"deadline" => 1440,
"broadcast" => "true",
"message" => urlencode($fileName . ":" . $fileHash),
"messageIsPrunable" => "true"
);
$payload_string = "";
foreach ($payload as $key => $value) {
$payload_string .= $key . "=" . $value . "&";
}
rtrim($payload_string, "&");

Send the query to NXT server using sendRequest() function:

$output = sendRequest($host, $payload, $payload_string);

and decode the JSON response from the server to get the transaction id:

if ($output != false) {
$txId = json_decode($output)->transaction;
}

Now that there is a positive response on the accepted transaction and its ID is known, let’s update the record in the in-house db.

$lastId = $pdo->lastInsertId();
$sql = "UPDATE files SET txid = '$txId' where id = '$lastId'";
$result = $pdo->exec($sql);

We can optionally provide these links to the customer for future reference and to prove that the hash was uploaded:

echo "NXT Transaction ID: " . $txId . ",
JSON response";
echo "

Use these links to verify Sha256 hash of your file saved in our internal database against the permanent record in the NXT blockchain:

" . $fileHash;

Optionally email the customer the $txId that they can later use to verify hash or somehow else give them basic information on retrieval of the hash from in-house db and comparing it to blockchain stored hash in the future, by timestamp or other criteria.

This app doesn’t include user authentication. Normally the customer or user of an intranet service would be able to see their files after having authenticated to the site.

This app also assumes that the verification app is out of reach of the in-house database maintainer to prevent faking verification outcome.

Now the record is saved in the company’s database. Show the db record to confirm it’s there.

$sth = $pdo->prepare("SELECT id, txid, hash, uploadtime, filename FROM files ORDER BY id DESC");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_OBJ);
if ($result != false) {
var_dump($result);
}

The verification app

To use the hash verification app the customer must have the transaction ID in the NXT blockchain
passed to them when the transaction was submitted to the Nxt Blockchain.

Suppose the customer does have it, saved in the mail archive or retrieved by other means.
Here it is.

$txId = "111111111111111111";

Let us see what our in-house database has for the hash of the file. Fetch and save it in $hashInDb.

$pdo = new PDO('sqlite:/home/lurker10/phptutorial/files.db');
$sth = $pdo->prepare("SELECT hash FROM files where txid = '$txId'");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_OBJ);
if ($result != false) {
$hashInDb = $result->hash;
}

Send a request to the NXT server and fetch all information stored in the NXT blockchain for transaction with the given ID.

$payload = array (
"requestType" => "getTransaction",
"transaction" => $txId
);
$payload_string = "";
foreach ($payload as $key => $value) {
$payload_string .= $key . "=" . $value . "&";
}
rtrim($payload_string, "&");

$output = sendRequest($host, $payload, $payload_string);

Decode the JSON response and extract the attachment field where the hash is stored.

In the first part of the app we recorded the filename separated from the hash with a colon.
Now we extract just the hash portion of the arbitrary message.

$attachmentPlainData = json_decode($output)->attachment->message;
$hashInBlockchain = explode(":", $attachmentPlainData)[1];

And compare what we have in the company’s database with what was recorded 1 year ago into the Nxt Blockchain.

if ($hashInDb == $hashInBlockchain)
echo "Hashes are identical";
else
echo "Hashes are not identical";

Next part of this series: Lottery on the Nxt Blockchain in Golang (and PHP)

NXT-crypto-developer

NXT Newsletter #4

NXT NxtCoin 2. generation cryptocurrency news

Welcome NXTers, newcomers and long time community members.

Nxt is now open source. And on Cryptsy. New businesses are being built. A bunch of good people up for VOTE for the Nxt Funding Committees, and a large stakeholder has offered a 3M-5M Nxt bounty. Dig in. Join the movement.

NXT_newsletter

This week’s topics:

  • Full source code is released
  • Voting
  • Exchanges
  • Such automated cryptos
  • 1 Million Nxt donation
  • Announcements
  • Clients
  • Conferences
  • Misc.
  • IDEAS
  • PROPOSALS
  • Quote of the week
  • Words of wisdom of the week

Full source code is released

ip.bitcointalk.org

The original release date was set to be the 3rd of April.
So what happened? Take the tour of what lead to our early release HERE.

Jean-Luc on March 01:

I have made the current source code repository public:

https://bitbucket.org/JeanLucPicard/nxt/

Master branch is still 0.7.6, develop is 0.8.3 plus latest unreleased changes.

Read what Jean-Luc is planning next:
https://bitcointalk.org/index.php?topic=345619.msg5449690#msg5449690

VOTING

On March 7 committees members will be elected!
Nominees has now had a week for campaigning, and voting is open.

Live voting results are found here:
https://www.electionbuddy.com/elections/12343/results/t34ayqhm2

Nominee Statements / campaigning is found here:
https://bitcointalk.org/index.php?topic=479167.new#new

So if you are a Nxter and you haven’t voted yet – go let your voice count.

Rickyjames:

If you  want to vote, send me a PM with just the word VOTE in the title.  I will respond with your password and the voting site URL.  I will know who voted but I will not know who you voted for.

PM rickyjames here:
https://bitcointalk.org/index.php?action=profile;u=193080

Exchanges

Mintpal

couldn’t implement Nxt, they say.
Money paid by certain Nxt Community members will be returned to them.

Cryptsy

DGEX

DGEX newsletter announces three developments:

1. DGEX fees back to 0% for NXT withdrawals, 0.15% for trades
2. DGEX Initial Public Virtual Offering still available
3. Offspring NXT client updated http://offspring.dgex.com

Such automated cryptos

nxt_asset_exchange
DOGE is tested in the automated NXT Asset Exchange gateway.

Source for alpha release is here:
https://github.com/jl777/multigateway

Schwartzfeger:

Guys, please test this. It’s like magic (except that it’s science + hard work).

Jl777:

NXT AE will have direct links to dozens of crypto wallets. All these cryptos will trade against NXT, making NXT the standard that the other coins are valued.

I will be authorizing NXTcommunityfunds to ensure that we can all benefit from a non-profit gateway for all the popular cryptos into NXT AE.

I will also be adding NXTcash support to the gateway and we dont have to wait for external releases. As soon as it tests out, we can go live.

I will be setting aside 100000 NXT for a NDIC (nxt deposit insurance) fund, 10000 NXT per person and 100K max, for any gateway caused losses.

 

Please help us put some distance between us and the clones! Volunteers are most welcomed, but if you need some NXT to motivate you to participate, PM me and I will see what I can work out.

Here is what help is needed:
https://bitcointalk.org/index.php?topic=345619.msg5434195#msg5434195

1 million Nxt donation

Nxt_brain

Klee has donated 1 Million NxtCoins to Brain Preservation Foundation!

Q:

So you hope that they will preserve your brain when you die?

Klee:

It will be a battle between cryonics and plastination – every technology has advantages and disadvantages. I hope my donation will help to solve some open issues (ie if the connectome is preserved with cryopreservation as in plastination and if any of the two methods preserves microtubules).

The full press release can be found here:
http://brainpreservation.org/sites/default/files/PressRelease_OneMillionNXTCoinDonationToBPF.pdf

Klee (Androklis Polymenis) is a 37-year-old digital currency entrepreneur, who has committed his full attention to cryptocurrencies and his own startup company UbiCrypt, with the goal of providing innovative solutions for NXT.

Announcements

Nxtty

nxtty

Nxt Mobile App Company

Early Nxtty Messenger Demo
http://www.youtube.com/watch?v=Gj0CRqoNsYc

Link to the full Prospectus/Business Plan (25 pages)
https://mega.co.nz/#!KdITnBIB!PW_sWdyNi7IGWC_VYSSO9Ki8ja6RC2YTpW20VrEshh4

landomata:

We will sell 25 million shares on Nxt Asset Exchange launch day. The price will be 0.01 Nxt per. share. The NMAC private placement was closed to new entries on Saturday, March 1st as we are over subscribed.

Comment on the plan on both Nextcoin & nxtcrypto forums:
https://nextcoin.org/index.php/topic,3313.msg31709.html#msg31709  &

coinmarketcap_22092014

DGEX Public Virtual Offering

dgex_slider

The DGEX Initial Public Virtual Offering has started.
Share price is 125 NXT each. 31397 shares available (out of 108900 public shares, total 330000 shares). Public trading will begin later in March. You can access the share purchase page from your DGEX member account main screen (green colored box mid-page).
Download the prospectus from https://dgex.com/pvo/dgex-prospectus-v2.pdf

Direct any questions and updates to this thread:
https://nextcoin.org/index.php/topic,4276.0.html

NxtCash

marcus03 got zeronet up and running!

NxtCash is being tested.
For those ignorant enough to forget: NxtCash will add complete anonymity to Nxt transfers.

jl777:

I have made an internal proposal to the NXTcash team using the latest source code that will allow us to make a release that can be considered for mainnet use. Not sure how long it will take as I will need to start and finish Nodecoin 2.0 to fully implement the proposed NXTcash solution, not to mention a fair amount of work in the client code.

 

Before you say, “but we can’t store the giant zeroknowledge proofs in the NXT blockchain!”, let me say that the method I am proposing does not need to store the big proof in the blockchain, just the NXTcash minting and spending events. Still working out all the kinks, but I am optimistic.

<shameless plug>
Show your support for NXTcash, donate to completion bounty fund 13313092584524529006
</shameless plug>

Clients

NRS

Remember always to STAY UPDATED.

Release 0.8.3: https://bitcointalk.org/index.php?topic=345619.msg5391927#msg5391927
Relase 0.8.4e: https://bitcointalk.org/index.php?topic=345619.msg5491698#msg5491698
Release 0.8.5: https://bitcointalk.org/index.php?topic=345619.msg5502897#msg5502897

 

Nxs

Version 0.3.6 is released.

Github:
https://github.com/Regulus343/Nxs
Full Changelog:
https://github.com/Regulus343/Nxs/blob/master/docs/change-log.md

Regulus:

I should also add that, as a non-believer in the concept of intellectual property, I welcome anyone to use any of the code in your own projects with or without credit. My goal is not one of recognition, but rather to improve the software we have available to us in the Nxt community.

 

Solaris 2.1

Version 2.1 of the Windows NXT client
https://bitcointalk.org/index.php?topic=345619.msg5450049#msg5450049

Wesley

New version of the Nxt client online at http://nxtra.org/nxt-client/

https://bitcointalk.org/index.php?topic=345619.msg5429918#msg5429918

Conferences

Coming up:
Texas Bitcoin Conference.

Final version of rickyjames’ brochure:
http://nxt.sx/images/resources/NXT-Brochure-4.pdf

See the list of Bitcoin / NXT conferences here:
https://bitcointalk.org/index.php?topic=345619.msg5235235#msg5235235

Misc.

Chat

Join us in the #nxtalk channel:

freenode

Those who don’t have an IRC program:

Join here:
http://webchat.freenode.net/?channels=%23nxtalk%20
Or download for
Windows / Linux: http://hexchat.github.io/downloads.html. Mac: http://colloquy.info/downloads.html

NXT introduction video

A new video was made by d13id.


Donations: 8987437801852093688

Go watch more videos about Nxt @ http://test.nxter.org/nxt-media-tutorials-podcast-interviews/

Forging

Top generators
http://blocks.nxtcrypto.org/nxt/nxt.cgi?action=35

Nxt – 90% attack proof

CIYAM Open and CfB  has figured out how to get it implemented.

BCT threads

Damelon made a page for the BCT threads:
http://www.nxtcoins.nl/bitcointalk-threads/

And don’t forget to follow his Daily Summaries of the BCT thread HERE.

New thread about NxtApps

https://bitcointalk.org/index.php?topic=488417.msg5381040#msg5381040

PeerExplorer awarding NODES

https://www.peerexplorer.com

dave5555

I would like to remind you all that PeerExplorer.com runs a great program to award nodes and makes it an incentive to run public nodes.
The system will soon run low on caches (accounts with NXT in them) to award nodes with. If a big stakeholder is out there reading this, a donation to the person running Peer Explorer would be great so he can add to the cache system of rewards.

Register a account @ peerexplorer.com. Create a new cache. (click small seet near “Created caches”). You can fill in a sponsor message if you like (url, advertise etc…). Now transfer to the NXT account the amount you like  (min. 2 NXT). Cache should be automatic activated in 5-30 mins. Now you can enjoy how someone is earning your reward.

mynxt.org

The website has been updated.

Free VPS

Nxt-kit can hallmark OpenShift. With port forwarding, you’ll get working FREE VPS (hosts @ amazon).

IDEAS

yoda

Nxt for copyright

https://bitcointalk.org/index.php?topic=345619.msg5348947#msg5348947

Nxt for Insurance

https://nextcoin.org/index.php/topic,4186.0.html

NxtBet

https://bitcointalk.org/index.php?topic=345619.msg5398366#msg5398366

Proof of existence

Pouncer

Can someone develop an Nxt equivalent of Proof of Existence so that NMAC (and other Virtual Corporations) can register itself like this companydid on the Bitcoin blockchain? This well written prospectus can also be registered and published using the same method, making it official and “legal”. It gives a greater sense of legitimacy and serves as a show case of how the Nxt ecosystem can provide similar or better safeguards for investors normally enforced through government or centralized means.

https://bitcointalk.org/index.php?topic=345619.msg5381532#msg5381532

PROPOSALS

Suggested NIP

(Nxt Improvement Proposal)

Adding “meta information” to Arbitrary Messages:
https://bitcointalk.org/index.php?topic=345619.msg5457241#msg5457241

Atomic cross chain transactions

4747…88:

3M NXT (up to 5M for additional features) for atomic cross chain transactions.
Conditions:
a) working client for average user;
b) official approve of all three NXT Funding Committees;
c) fully working asset exchange;
d) working transparent forging in the part marked bold:

NB: The only penalty is inability to mine blocks within some period of time. They still can decide not to bother with mining, but their “hashing” power will be distributed to those who do protect the network.

Last two conditions are my conditions to stop holding investment in 50M NXT.

The offer is legit: https://bitcointalk.org/index.php?topic=345619.msg5465466#msg5465466

Nxt Incubator/Scholarship Promotion

lyynx:

The purpose of this project is to foster Innovation and Promotion from participants. The basic concept is participants must develop some type of innovation that adds real value to the Nxt Economy. (…)we are looking for a multi-faceted approach to innovating Nxt and encouraging those not necessarily aware of Nxt to participate in a scholarly and social manner. (…)I will personally donate 25,000 Nxt towards this venture when it becomes a reality.

Interested? Read more here:
https://bitcointalk.org/index.php?topic=345619.msg5369175#msg5369175

LocalNxt

Xio is creating a person-to-person exchange for NXT, similar to the functionality of LocalBitcoins.com.

Xio:

I’m currently working hard on the site and although I cannot give an exact estimate yet, I hope to have it ready within the first half of this month. (…)

 

I’d like to invite anyone willing to trade NXT locally or interested in a beta invitation to please PM me.

https://bitcointalk.org/index.php?topic=345619.msg5260556#msg5260556
https://bitcointalk.org/index.php?topic=345619.msg5447524#msg5447524

Quote of the week

CIYAM Open:

We need to adapt ourselves to work with the kind of future that we want.

 

Words of wisdom of the week

Salsacz:

BCNext gave us only a source code. We needed to build websites, create wiki, build whitepaper. Then we started to write articles because only with some proof you can show how cool Nxt is. Now we finally finished some cool papers so we can deliver them to the developers and university guys to look at them and join us. After weeks of asking we finally have also a letter for university guys, so I can send it to them without grammar errors. Then devs can come here, build their apps on top of the Nxt network and then we can start to focus on mainstream etc. But right now we need to get attention of the devs, that’s why we go to the conferences and publish scientific papers.

Get your message through to the newsletter, contact: http://test.nxter.org/contact.
Any feedback about the newsletter is welcome too. Donations? Ok, 196910366798475802. Thanks.

Lost a newsletter? 
Find it in the archive @ nxter.org. Sign up: http://eepurl.com/M2KnL

Didn’t understand a thing? 
Go to nxtcrypto.orgwiki.nxtcrypto.orgnextcoin.org or nxter.org to find out more about NXT.

Why Nxt source code was released earlier than planned

nxt_source

The original release date for the full Nxt source code was planned to be the 3rd of April. But a month before this, core developer Jean-Luc took the Nxt community by surprise, posting these 3 lines of text in the official Nxt BCT forum thread:

Jean-Luc on March 01, 2014, 03:04:45 PM:

I have made the current source code repository public:
https://bitbucket.org/JeanLucPicard/nxt/
Master branch is still 0.7.6, develop is 0.8.3 plus latest unreleased changes.

 

What lead to this?

You got to understand how the main Nxt BCT forum thread works.
Eventually noone  does. All we know is, 2100 pages has been made, and it’s living a life of it’s own.

CfB on February 06, 2014, 12:09:54 PM:

(…) he [BCNext] is upset that community doesn’t wish to review and develop his ideas. Anon136 is the only one who does. (…) Start with Transparent mining, or What makes Nxt a 2nd generation currency and extend it or find flaws and fix them.

Jean-Luc on February 22, 2014, 12:18:24 PM:

What do the Nxt stakeholders think about releasing the current source code earlier than April 1st?

We discussed this with CfB some time ago, as a way to get more developers involved and make it easier for client developers, not having to rely on decompiled code to see the Nxt internals. The copycats are already decompiling the Nxt classes, so there aren’t any hidden secrets. I thought I would at least wait until I finish the 0.8.0 refactoring, but now that this is also released, it may be a good time to think about making the source open earlier, say March 1st?

 

BitcoinForumator on February 22, 2014, 12:25:20 PM:

Release the Kraken.

bitcoinpaul on February 22, 2014, 12:25:46 PM:

Well, what about BCNext’s 3rd plan – would an earlier release of the source code change anything?

MarvellousMutant on February 22, 2014, 01:08:51 PM:

release_the_hounds

The discussion went silent for some days – which, in the Nxt timeframe, is like a month.

Then CIYAM Open posted this:

CIYAM Open on February 24, 2014, 04:47:54 AM:

In regards to forging we actually have a dilemma. Current approach of PoS with “pools” will lead to exactly the same situation as Bitcoin (a few pools controlling the entire network).

 

This is okay from a performance perspective (you’d expect them to be running great hardware) but it is not okay from the perspective of decentralization. If governments decide to seize the servers of the pools then Nxt could literally disappear.

Nxters have been guessing, guessing, guessing and guessing, what BCNext plans for Nxt. Some have been shouting in frustration, others have laughed, calling Nxt more of a social experiment than a crypto. And CfB has repeatedly said, that BCNext is not some Santa. Community has to take responsibility of Nxt. But how to do that?

pandaisftw on February 24, 2014, 07:37:39 AM

There will be supernodes (service providers) that are basically be high-bandwidth pools people can lend their stake to. This won’t be a problem of centralization, because NXT is resistant even against 90% attacks. So unless 1 single pool gets that much forging power, we will be fine. These high-bandwidth pools can support 1000+ TPS easily.

CIYAM Open on February 24, 2014, 07:44:47 AM

So the problem is that if those pools are suddenly shut down (due to court order lets say) then the transaction confirmation rate is going to slow down *dramatically*.

Cfb on February 24, 2014, 08:22:56 AM:

I see no problem here. If a part of the stake becomes seized then the network will start forging with another part.

CIYAM Open on February 24, 2014, 08:25:41 AM

The question is “forging with what”?

 

If let’s say 100 powerful machines are shut down by an authority and the majority of stake holders are “rich old men” who aren’t that technically savvy then you are now running a network of maybe a few thousand desktop computers (or even less powerful devices) that are run by hobbyists and that is not going to do 1000+ TPS.

I am not saying the network would *die* but that it would be *seriously damaged* in terms of the TPS it could process and that in itself could cause *panic*.

CfB on February 24, 2014, 08:36:23 AM

1000 tps processing requires mid-level hosting hardware. Still see no problem.

 

CfB on February 24, 2014, 08:47:43 AM

After discussing this issue with CIYAM Open I got that we indeed have a problem here. If users will just lease their power and forget then one day Nxt network may die.

Sorry for my previous mistake, my English is not good enough to get some ideas clearly.

bitcoinpaul on February 27, 2014, 07:58:48 AM:

Is TF fully implemented?

CfB on February 27, 2014, 08:34:24 AM:

It’s not. And won’t be implemented by April, so u should do something if u don’t want to live with half-implemented TF.

2Kool4skewl on February 27, 2014, 08:36:26 AM:

I thought TF would be fully implemented by April.  What should we do to help?

CfB on February 27, 2014, 08:40:43 AM:

Start with the analysis of the code that we already have and do some improvements to forging. For example, try to get how 90% defence would work (if it works at all).

bitcoinpaul on February 27, 2014, 08:46:13 AM:

wtf. you talk like we do and try nothing here

CfB on February 27, 2014, 08:49:29 AM:

I see u do something but this is not enough. At least the outcome is miserable.

CIYAM Open on February 27, 2014, 08:49:45 AM:

Basically if we limit the effective forging *power* of any pool or individual to a maximum allowable percentage (regardless of actual NXT balance) then we will force people to split up their hoards into small chunks managed by separate pools.

CfB on February 27, 2014, 08:56:04 AM:

2nd part of the plan contains a hint. Read about transparency.

2Kool4skewl on February 27, 2014, 09:57:14 AM:

Maybe, BCNext is intentionally being vague, because he wants us to be independent and think for ourselves. Maybe, the “fatal flaw” is our reliance on him.

Damelon on February 27, 2014, 09:59:03 AM:

It wouldn’t surprise me in the least. For a “decentralised” project to depend on a central figure and even create some kind of “myth” around him is not needed.

Joefox on February 27, 2014, 12:31:30 AM:

Three months in and we have no Whitepaper, no documentation of algorithms, and no modelling or statistical analysis.

 

The greatest irony of the great decentralized Nxt Ecosystem is that its core is centralized in an opaque, anonymous identity who only communicates to the world through a Belarusan Java programmer on contract.

 

One day soon, Nxt will be called out for this. It is Nxt’s biggest flaw.

Jl777

In the meantime, we build tools to help people offer NXT services. (…)

Anybody that wants to offer a NXT service, will have to run a node.

 

As NXT gets more and more features, it will attract more and more

businesses that utilize these features. (…)

 

I am designing a NXTcoin development kit that builds on top of NXT for our mining friends. They will need to run NXT in order to mine the NXTcoins. If we get just a single successful NXTcoin the network will have thousands of nodes.

bitcoinpaul on March 01, 2014, 08:05:37 AM:

CfB, is Nxt 90% attack-proof?

CfB on March 01, 2014, 08:19:37 AM

Current implementation not.

2Kool4Skewl on March 01, 2014, 08:28:41 AM:

Is BCNext planning on changing TF to make it ninety percent attack proof?

The quotes above are only fragments of the discussion. To get the whole picture, visit the thread.

CIYAM Open on February 24, 2014, 09:13:58 AM:

To paraphrase something that CfB said to me: “BCNext gave us a knife – it’s up to us not to accidentally cut ourselves”.

JackNeedles:

Anybody interested in understanding the motivations and rationale of BCNext, please become familiar with posts and threads:
https://bitcointalk.org/index.php?action=profile;u=152600;sa=showPosts

Also don’t forget BCNext’s plan:

1: Transparent mining, or What makes Nxt a 2nd generation currency
2: Transparent mining 2, or What part of Legacy should be left behind

Part 3 is still to come…

Oh, btw:

jl777 on March 01, 2014, 08:41:24 AM:

Ciyam and CfB just figured out how to get it [ninety percent attack proof] implemented. It will be one of the first two NIP (NXT improvement Proposals).

bitcoinpaul on March 01, 2014, 09:16:19 AM:

Biggest news since hours.

 

Yessir

 

NXT Myths #1

This is the first part of the NxtMyths SERIES
Written by Salsacz, released Jan. 16, 2014. (Nxt acc. 15003961341330858247)

Nxt is not a scam

  • Nxt was invented by anonymous programmer.
  • Nxt’s source code is being reviewed by known developers.
  • New code implementations will be approved by democratic voting.
Nxt was invented by BCNext, who is a programmer at the age of 35+, who lives in Europe.[1]
He is a veteran member of Bitcointalk forum, but he stays anonymous like Satoshi Nakamoto.[2]
He can still reveal his identity, as he promised.[3] BCNext prefers to work on creating the project alone. He paid a team of core developers to help him with the client and create some functionalities like decentralized exchanges.

 

One member of the core development team Come-from-Beyond was paid by BCNext to work on Nxt from October 2013 till April 2014.[4] Come-from-Beyond is a 34 years old programmer from Minsk in Belarus.[5]

 

On January 2014 joined Jean-Luc a core team as a non-paid programmer.[6] He has a Phd, probably comes from Switzerland (or France) and already celebrated his 30th birthday.[7] Jean-Luc’s duty is to work on the code. Jean owns nice amount of NXT, that’s why he is programming for free, for the benefit of his own investment. BCNext was only an inventor, others will continue on his legacy and rewrite his ideas into a better looking Java codes.

 

After the release of the source code started many developers with code corrections. A few Greek IT experts from Thessaloniki and Athens are being paid for reviewing the code by the original stakeholder Klee who is managing them.[8] Klee spent a huge part of his Nxt on donations, bounties and giveaways.[9] He doesn’t hide his real identity, so he is moderating Facebook group Ubiquitous Cryptocurrencies under his real name.[10] The names of his team were also revealed. There were only 8 original stakeholders who paid 1 Bitcoin during open IPO.[11] Each of them got 50 million NXT, Klee is one of them. In January 2014 only 4 of these 8 original stakeholders own more than 30 million NXT.[12]

 

There are at least seven developers who are working on the Nxt’s applications fulltime: Abuelau, ferment, nexern, NxtChg and Graviton with his assistant, who helps him with the biggest Nxt exchange. This list isn’t finite, there are many new Nxt developers, like Marcus03 or wesleyh with their fantastic apps. There are tenths of helpers, translators, authors of articles, but people who said that they “work” for Nxt fulltime or at least halftime are: Joefox, Opticalcarrier, Pinarello and Salsacz.

 

500 different people had already been discussing at the main Nxt thread in Bitcointalk.[13]Once there were 93 active nicks in last 3 days. In the middle of January they reached 20.000 posts at the page of 1000. The statistic from the end of 2013 shows the biggest spammers of the Bitcointalk topic: Come-from-Beyond (2005), laowai80 (460), klee (324), smaragda (304) and opticalcarrier (211). 15.000 people own Nxt account, this number rises by 200-400 every day.[14] 500 users own more than 100.000 NXT, 2.000 stakeholders own more than 1000 NXT.[15]

 

Nxt network of peers has got members from all over the world. Most people come from the United States, but there is also a big community in Germany, Hong Kong, Russia, United Kingdom, Japan and Netherlands. There is one user from Iceland, Jamaica, Panama, Ethiopia or Israel.[16] Some of the Nxt Wiki pages have already been translated into 11 languages.[17]

 

Nxt is still a small group of individuals who have no centralized place. Nxt is a decentralized currency, that’s why there are more Nxt forums, exchanges, sites, social media profiles and also marketing groups. There will never be any main leader. All decisions in Nxt will be based on democratic voting.
 

 

Questions for BCNext

January 2014:

 

Q:  Why was the initial funding cancelled suddenly with few people?
A:  I wanted Nxt to be launched by the community, not by a single person.  Success of Nxt is supposed to be achieved by work of a LOT of PEOPLE.
Q:  How would you solve problem with scam accusations according to “unfair” distribution Nxt to 73 big stakeholders?
A:  This problem can not be solved.  Even if we had a million stakeholders the rest seven billion people would call this unfair.  A world with the money can not be perfect.
Q:  What are the most important 5 things the community should do, in order to properly support Nxt in the next 6 months?
A:  Review all my ideas, they might be flawed.  Avoid centralization.  Do not pay much attention to the price of 1 NXT measured in fiat money.  Remember that half-measures is a way to nowhere.  Do not trust strangers on the Internet, especially if their nickname is “BCNext”.

 

November 2013:

 

Q: how many bitcoins are you going to contribute? (are you going to keep the coins you contributed yourself?  or you will take a creator cut (certain %)
A: I don’t know how much I will contribute.  This depends on the price of Bitcoin and some other factors.  These bitcoins, like the others, will be used to pay bounties for development.  No creator cut.
BCNext’s citations:
A lot of time was spent on talking, the outcome did not satisfied me.  That is why now I am working alone.  The things are implemented much faster this way.[18]

 

What others said about BCNext


Come-from-Beyond:
 „I don’t think BCNext is interested in money. He spent more than he raised funds.“[19]
„With all my respect to BCNext, he is too paranoic about FBI/aliens/illuminati, they r not interested in kidnapping of yet-another-cryptocoin creator. I believe that was (unsuccessful) PR attempt. Fortunatelly, we don’t need him after the launch.“[20]

 

What is BCNext?
Next is next.
Salsa also thinks that „BC“ comes from the Proof of Stake article and referrs to „Beyond Cryptocurrency“.

 

What else do we know about BCNext?
He often uses special phrase „can not”. He is a genius who doesn’t care about money or glory.

 

BCNexts likes symbols:
Now we know about 3 symbolic numbers hidden in the world of Nxt:
–       3 January – the release of Nxt happened 5 years after the release of Bitcoin.
–       21 Bitcoins – The IPO was stopped in the time when were gathered 21 Bitcoins, i tis 1/1000.000 of the all existing Bitcoins from now on.
–       Anonymous BCNext – BCNext plays the same role as Satoshi Nakamoto. We don’t know who they are.

 


[1] This guess is based on assembler style in the code (Come-from-Beyond: „I noticed the same things, the code is written in back-to-90s style. The author definitely used to code in Assembler.http://www.reddit.com/r/nxtcoin/comments/1toz2d/warning_nxt_source_code_is_very_low_quality/ceafrr3) and the statistics of the posts of BCNext: https://bitcointalk.org/index.php?action=profile;u=152600;sa=statPanel.
[4]„I’m that guy who is developing the client, so I will publish updates until BCNext is back. If I disappear one of the 2 remaining guys will continue the work until Nxt is released as planned.“https://bitcointalk.org/index.php?topic=303898.msg3520138#msg3520138 „One of my employe is developing Nxt client.“ https://bitcointalk.org/index.php?topic=303898.msg3580883#msg3580883.
[5] https://bitcointalk.org/index.php?topic=113906.msg1230551#msg1230551. On the Chess site he also filled a Birthday, but since i tis January 1, it is probably fake due to the quick registration process http://www.chess.com/members/view/Come-from-Beyond.
[7] Some people say Jean-Luc uses french accent in his english, someone saw a new client in the peer list from the Switzerland, he used a CET in his signature. CET referrs to the timezone in the central Europe – from Spain to Slovakia. He also used a russian email, but they don’t use CET in Russia or Belarus.The information about Phd and age got author of this text by personal message from Jean-Luc.
[11] The list of original stakeholders is hardcoded to the sourcecode. More in the chapter 3 or: Salsacz, Where is Nxt from Original Stakeholders?, in: http://nxtcoin.blogspot.cz/2014/01/where-is-nxt-from-original-stakeholders.html.
[12] Ibidem.
[13] https://bitcointalk.org/index.php?topic=345619.msg4200359#msg4200359. The statistics from the next lines are based on this citation created by newcn.
[15] Originally based on the numbers from marcus03’s client https://bitcointalk.org/index.php?topic=414965.msg4508988#msg4508988.
[16] Bulgaria(1), Canada(2), China(2), Czech Republic(4), France(6), Germany(22), Hong Kong(20), Hungary(1), Iceland(1), Israel(1), Japan(12), Latvia(1), Lithuania(3), Luxembourg(1), Netherlands(7), Norway(3), Poland(1), Russia(21), Slovak Republic(1), Slovenia(1), Spain(2), Switzerland(2), Ukraine(5), United Kingdom(18), United States(177), http://peerexplorer.com/. Map:https://mapsengine.google.com/map/u/0/edit?mid=zDbwNrja6dlY.kwTCMrAWqtAQ
[18] https://109.201.133.195/index.php?topic=303898.360