elective-stereophonic
elective-stereophonic
NXTsubatomic - atomic crosschain exchange & NXTatomic - atomic NXT tx swap singapore
Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest Stable Nxt Client: Nxt 1.12.2

Pages: 1 ... 4 5 [6] 7  All

Author Topic: NXTsubatomic - atomic crosschain exchange & NXTatomic - atomic NXT tx swap  (Read 45448 times)

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

http://209.126.71.170/NXTsubatomic_v08.zip has a test version

So, for this one, anybody with a Mac can test. Just download the zip, run the executable inside and join the NXTsubatomic group and see if you are able to contact the other peers

James

Got it
Joined the channel
its working I think
trying to talk to someone called jl777 - maybe he's asleep :D

could be really cool built into the trade model...
as long as its not like the btc-e troll box
You need to type
/jl777

to establish contact. just being in the same group isnt enough
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

chanc3r

  • Hero Member
  • *****
  • Karma: +124/-50
  • Offline Offline
  • Posts: 1019
  • NXTInspect
    • View Profile

http://209.126.71.170/NXTsubatomic_v08.zip has a test version

So, for this one, anybody with a Mac can test. Just download the zip, run the executable inside and join the NXTsubatomic group and see if you are able to contact the other peers

James

Got it
Joined the channel
its working I think
trying to talk to someone called jl777 - maybe he's asleep :D

could be really cool built into the trade model...
as long as its not like the btc-e troll box
I sent some chat, did you get it?
Yeah sorry -replied - was on phone
My prompt looks like this

[jl777] chan3test/NXTsubatomic >>

so I assume I am connected to you.

-------------

Think there is a minor reconnection bug...
If I leave a group and then try to rejoin I get this

group name : NXTsubatomic
Connecting as 'chan3test' in group 'NXTsubatomic'
Server is at: 209.126.71.170:60218 (colo.hostirian.com)
server rejected user/group: group member with this name already exists

so it still thinks I'm connected after i've left..
might cause problems.

--------------

Question on the 'hole punch'

Read the doc you posted.

Have you implemented the one where the server helps two clients to establish a connection and then the server drops out of the conversation? OR does the server STAY IN the conversation...

IF not I am concerned about the risk of the server being able to 'change' the conversation between the two peers - a kind of spoofing of the trade... e.g. you think you are receiving person A's keys but the dest key has been swapped by Evil Bobs server for Bobs key so you  start sending to Evil Bob thinking its the nice person you started the trade with...

I think the TX logic will detect it but not sure it can then reverse/refund it if bob is clever about which subatomic components he spoofs... Need to look deeper - its the introduction of the server that has made me think about malleability of the direct conversation between the two peers.

EDIT: If we are super paranoid - sign all direct TX messages with senders private key, they can't then be changed and receiver can decode with public key just like other tokens, then it doesn't matter what path the communication flows.,,, Evil Bob can watch and howl in frustration because he can't change the packets...
« Last Edit: May 02, 2014, 06:50:50 am by ^[GS]^, Reason: No double-posts. Please use the modify-button. »
Logged
NXT: 29996814460165 (NXT-JTA7-B2QR-8BFC-2V222)
@imrimr @NXTinspect

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Question on the 'hole punch'

Read the doc you posted.

Have you implemented the one where the server helps two clients to establish a connection and then the server drops out of the conversation? OR does the server STAY IN the conversation...

IF not I am concerned about the risk of the server being able to 'change' the conversation between the two peers - a kind of spoofing of the trade... e.g. you think you are receiving person A's keys but the dest key has been swapped by Evil Bobs server for Bobs key so you  start sending to Evil Bob thinking its the nice person you started the trade with...

I think the TX logic will detect it but not sure it can then reverse/refund it if bob is clever about which subatomic components he spoofs... Need to look deeper - its the introduction of the server that has made me think about malleability of the direct conversation between the two peers.

EDIT: If we are super paranoid - sign all direct TX messages with senders private key, they can't then be changed and receiver can decode with public key just like other tokens, then it doesn't matter what path the communication flows.,,, Evil Bob can watch and howl in frustration because he can't change the packets...
it is just a directory service. One you get the info on the peers, it is all locally maintained. I will most definitely add the tokened security before launch, it is just a pain to have to generate a token for every request.

I pushed the source to a modified version of http://basyl.co.uk/code/punch/doc/files/Readme-txt.html
It was a guy's toy project, and had some bugs, but easy to fix and I was able to integrate it into the source base pretty quickly. Enhancement for binary message support is working. Packetization is still a bit buggy, but not surprising since I coded it during hours 12+ of my coding day. Stuff like that is better during the first hours

Since peer to peer comms are pretty central to crypto, I figure its worth a couple day delay to get all this sorted. With the chat service active, I hope once I add windows support, we will be able to get more testers

James

--------------------------

Think there is a minor reconnection bug...
If I leave a group and then try to rejoin I get this

group name : NXTsubatomic
Connecting as 'chan3test' in group 'NXTsubatomic'
Server is at: 209.126.71.170:60218 (colo.hostirian.com)
server rejected user/group: group member with this name already exists

so it still thinks I'm connected after i've left..
might cause problems.
I've destabilized it a bit with lots of code changes. The most important thing for me to know is if you are able to chat with Jay. If you can that means the "cant open connection" problem is fixed and there are no roadblocks

James

---------------

http://209.126.71.170/NXTsubatomic_v09.ubuntu.zip
http://209.126.71.170/NXTsubatomic_v09.mac.zip

I think I stabilized the chat, at least it seems to work for me. While I was fixing bugs, I added automatic authentication using NXT tokens.

When you login to the chat, you MUST use the "name" from the AccountInfo, otherwise you will get rejected. You also need to make sure your time is synced to ntp, or you will get rejected. In the description field of Accountinfo, you need to set "username":"<username on your PC>" so it can find the coin daemons. If you set a "group" field, it will automatically log into that chat group. "NXTsubatomic" is where the default group is for now

Oh, I made it open a new terminal window for Mac so the chat is totally separate from all the debug printouts.

Oh, yes, what took most of the time was making it encrypt every chat message using a session specific public/private key. I use nacl library http://cr.yp.to/highspeed/naclcrypto-20090310.pdf e Curve25519 elliptic-curve-Diffie Hellman function, the Salsa20 stream cipher, and the Poly1305 message-authentication code. A 24 byte high entropy nonce is used for every message.

Now that encryption is part of the dataflow, we are one step closer to NXTmixer!

When you are doing a chat,you can always agree to go to a private group as you need to specify the destination or it goes to everyone in the group.

It would really be nice if we can verify that multiple people can all do encrypted chat. The server is used as a directory, but all the chats are point to point UDP using the hole puncher.

James

P.S. The ubuntu version does not spawn a new window, but it should work fine.

Edit: I am seeing several attempts to login without a name set. You need to do a setAccountInfo command from http://127.0.0.1:6876/test and set the name field (first one). Without that it wont authenticate
« Last Edit: May 02, 2014, 06:52:01 am by ^[GS]^, Reason: No double-posts. Please use the modify-button. »
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

Daedelus

  • Hero Member
  • *****
  • Karma: +230/-12
  • Offline Offline
  • Posts: 3280
    • View Profile

Has your contract been renewed yet?  :D

If not, I feel a NIP coming on  ;D
Logged
NXT: NXT-4CS7-S4N5-PTH5-A8R2Q

Mistafreeze

  • Full Member
  • ***
  • Karma: +18/-3
  • Offline Offline
  • Posts: 199
  • I <3 Cheese
    • View Profile

Has your contract been renewed yet?  :D

If not, I feel a NIP coming on  ;D

+ eleventy billion
Logged
Donate to my Beerfund NXT-L4WV-ZF8P-8X54-D6XML

chanc3r

  • Hero Member
  • *****
  • Karma: +124/-50
  • Offline Offline
  • Posts: 1019
  • NXTInspect
    • View Profile

When you login to the chat, you MUST use the "name" from the AccountInfo, otherwise you will get rejected. You also need to make sure your time is synced to ntp, or you will get rejected. In the description field of Accountinfo, you need to set "username":"<username on your PC>" so it can find the coin daemons. If you set a "group" field, it will automatically log into that chat group. "NXTsubatomic" is where the default group is for now

http://127.0.0.1:6876/test and set the name field (first one). Without that it won't authenticate

Below is the section of that webpage you need to fill in... Needless to say you need a copy of NRS running with isTestNet=true in the config file....

An old reminder - ON TESTNET 'Don't use the same passphrase that you use on Main Net'

Where it says {"user":"chanc3r"} put in your own username

If you want to specify the default group I think its

{"user":"<your username>","group":"NXTsubatomic"}

You will also need a bit of test NXT, NQT amount is actually 1 NXT :)

It can take a bit of effort to get going but please join in....

Logged
NXT: 29996814460165 (NXT-JTA7-B2QR-8BFC-2V222)
@imrimr @NXTinspect

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

InstantDEX will be issued and distributed on launch day, however there will be no official or unofficial IPO. There never was a public investment window to make sure that we avoid any regulatory issues. That being said I cannot control what people do with the InstantDEX they have. I expect that some people might put some up for sale on the AE, especially if there are bids. The only price point for InstantDEX to date is 7.5 NXT per InstantDEX asset.

There will be 1,000,000 InstantDEX issued.
jl777 30%
wesleyh 30%
aldrin 20%
consultants and advisors 9% (Come-from-Beyond, AdamLevine, fanaticalfishing, chanc3r, joefox, NXTminnow, allwelder)
InstantDEX working capital 11%

InstantDEX will generate revenues by charging 0.1% to 0.2% of transactions. If it is 0.2% to each side of the trade, that is a total of 0.4% of all trade volume. If InstantDEX is able to sustain a daily trade volume of 250 BTC -> 1 BTC/day of revenues.

InstantDEX will launch by supporting trading in multigateway assets, but it is asset agnostic and can be used for trading any NXT asset. Due to the tech not being completed yet, there is no launch date for InstantDEX. The main tech components are a UDP hole punching peer to peer comm system that enables not only realtime trade matching, but off blockchain nearly atomic trade settlements. Due to the differences in bitcoind forks (NXTsubatomic) and NXT transactions (NXTatomic), it is not clear yet if there is a way to directly connect the two types of trades. In that event multigateway services might be required. Also due to transaction malleability issues, it is not clear how many confirmations will be needed to be able to safely finalize trades.

InstantDEX will let people change their bid/ask without fees and only charge when a trade happens. The goal of InstantDEX is to provide a fully decentralized peer-to-peer realtime trustless trading environment. There is no guarantee that this ideal goal will be 100% achieved, but I will continue to innovate and improve the tech to get as close as possible. I believe that it is important to provide the market what the market wants, instead of forcing something against what the market wants. To that end, InstantDEX will allow for trading of any NXT asset, NXT, bitcoind crypto against each other. I will also test market using ripple IOU's for USD and CNY to see if such a proxy of a proxy will be acceptable for traders. If it is, then it will be fully integrated into InstantDEX

Wesleyh will work hard to make InstantDEX as easy to use as possible. Since we wont have large server expenses no matter how many active traders there are, our overhead will be the lowest in the industry. This will allow InstantDEX to have lower fees initially to gain marketshare. Exact specifics on fees are subject to change, with reasonable notice given to the customers.

It is expected that half the revenues will be distributed to InstantDEX holders, but probably not until there is an easy to use dividend mechanism. Exact distribution amounts and timing are subject to change. InstantDEX currently has over 1.5 million NXT 4383817337783094122 and I do not expect that we will need any additional capital to fund continued operations.

NXTsubatomic and NXTatomic will be part of InstantDEX. I believe both have no fundamental security issues, but due to the cutting edge nature of their implementation, it is possible for there to be incidents. We will of course do our best to avoid any such incidents, just a risk factor to keep in mind. Also, in the event that I or anybody else solves the BTC <-> NXT direct atomic exchange, I will of course integrate that tech into InstantDEX.

I cant make any promises about availability of InstantDEX, but if people posted their interest, that could help some of the holders to decide to put some up for sale.

The following threads have info on the progress of the tech:
https://nxtforum.org/multigateway-jl777/nxtsubatomic-atomic-crosschain-exchange/ and https://nxtforum.org/multigateway-jl777/secret-project/

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

swartzfeger

  • Hero Member
  • *****
  • Karma: +50/-1
  • Offline Offline
  • Posts: 611
  • I bent my wookie
    • View Profile
    • https://www.instagram.com/swartzfeger/

James, chanc3r, whomever -- have we actually completed a subatomic trade yet, do we have a hole punch, etc?

I'm awake for another two hours if someone wants to test with me.
Logged

chanc3r

  • Hero Member
  • *****
  • Karma: +124/-50
  • Offline Offline
  • Posts: 1019
  • NXTInspect
    • View Profile

James,
will v09 likely work end 2 end for an actual TX or are you focussing on encrypted comms in that one.
I can try to set up a test again with Swartz(Jay) and see how far we get this time but only worth trying and debugging it if you feel the subatomic parts are sufficiently integrated.
Ian
Logged
NXT: 29996814460165 (NXT-JTA7-B2QR-8BFC-2V222)
@imrimr @NXTinspect

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

James,
will v09 likely work end 2 end for an actual TX or are you focussing on encrypted comms in that one.
I can try to set up a test again with Swartz(Jay) and see how far we get this time but only worth trying and debugging it if you feel the subatomic parts are sufficiently integrated.
Ian
After three consecutive all nighters, it seems I slept for a long time!
Wait for v10, that will integrate encrypted hole punch UDP and subatomic comms. I think I will generalize the encrypted UDP comms so any NXTprotocol handler can automatically establish encrypted links with any other NXT account. A bit of a delay for everything, but well worth the added functionality

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

Daedelus

  • Hero Member
  • *****
  • Karma: +230/-12
  • Offline Offline
  • Posts: 3280
    • View Profile

I'm still here too  ;D I think it's just the four of us...

If we were all together in the same place, I'd be the one making the tea  :D
Logged
NXT: NXT-4CS7-S4N5-PTH5-A8R2Q

swartzfeger

  • Hero Member
  • *****
  • Karma: +50/-1
  • Offline Offline
  • Posts: 611
  • I bent my wookie
    • View Profile
    • https://www.instagram.com/swartzfeger/

The next two days I work 24+ hours, then I'm off Mon/Tue/Wed. I can log a lot of test time starting early Monday morning.


Sent from my iPhone using Tapatalk
Logged

chanc3r

  • Hero Member
  • *****
  • Karma: +124/-50
  • Offline Offline
  • Posts: 1019
  • NXTInspect
    • View Profile

The next two days I work 24+ hours, then I'm off Mon/Tue/Wed. I can log a lot of test time starting early Monday morning.

Sent from my iPhone using Tapatalk

Jay/James - I'm flying to Africa all day tomorrow, then I'm GMT+3 Mon/Tues/Wed

Jay - will be looking out for you on Monday morning / Monday night for me..

James - its a long flight and will be reviewing NXTsubatomic v6 .h unless you send me an update :)

Ian
Logged
NXT: 29996814460165 (NXT-JTA7-B2QR-8BFC-2V222)
@imrimr @NXTinspect

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

The next two days I work 24+ hours, then I'm off Mon/Tue/Wed. I can log a lot of test time starting early Monday morning.

Sent from my iPhone using Tapatalk

Jay/James - I'm flying to Africa all day tomorrow, then I'm GMT+3 Mon/Tues/Wed

Jay - will be looking out for you on Monday morning / Monday night for me..

James - its a long flight and will be reviewing NXTsubatomic v6 .h unless you send me an update :)

Ian
I PM'ed you details. I am working on a really cool transport layer that I think will actually be an improvement over how everybody else is doing peer-to-peer comms. Of course, I do it the way everybody has to via sockets, but I hate sockets and I bet a lot of other coders do too.

So, I am making peer to peer comms interface that I wished was already there.

Details end of this weekend or even early next week. With this new API that I will use in the other projects, it will dramatically simplify things, especially multigateway and even NXTorrent.

James
« Last Edit: April 26, 2014, 11:13:24 pm by jl777 »
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

swartzfeger

  • Hero Member
  • *****
  • Karma: +50/-1
  • Offline Offline
  • Posts: 611
  • I bent my wookie
    • View Profile
    • https://www.instagram.com/swartzfeger/

James, I've lost track... what's the latest version, v9? Do you have an updated link so I can be ready to roll when Ian and I get our schedules synced?

Logged

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

James, I've lost track... what's the latest version, v9? Do you have an updated link so I can be ready to roll when Ian and I get our schedules synced?
UDP hole punching is no picnic. Been battling it all weekend, finally got file transfers to be somewhat reliable. Once that is done, then it will be much easier to get the rest done.

Aiming for release as soon as possible, but very difficult stuff. Everything is encrypted with session based keys and all file transfers require NXT token authorization. This prevents spoofing via man in the middle attacks.

I also got it so that the directory server can disappear and peer to peer comms continue. Of course making new peerto peer connections wont be possible until the server comes back, but I almost got a decentralized directory server to work, but it just wasnt cooperating and it was taking too long.

So, next version will be v10, but could be another day or two.

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

swartzfeger

  • Hero Member
  • *****
  • Karma: +50/-1
  • Offline Offline
  • Posts: 611
  • I bent my wookie
    • View Profile
    • https://www.instagram.com/swartzfeger/

James, I've lost track... what's the latest version, v9? Do you have an updated link so I can be ready to roll when Ian and I get our schedules synced?
UDP hole punching is no picnic. Been battling it all weekend, finally got file transfers to be somewhat reliable. Once that is done, then it will be much easier to get the rest done.

Aiming for release as soon as possible, but very difficult stuff. Everything is encrypted with session based keys and all file transfers require NXT token authorization. This prevents spoofing via man in the middle attacks.

I also got it so that the directory server can disappear and peer to peer comms continue. Of course making new peerto peer connections wont be possible until the server comes back, but I almost got a decentralized directory server to work, but it just wasnt cooperating and it was taking too long.

So, next version will be v10, but could be another day or two.

James


Taking a quick pulse check. How're things going, James?
Logged

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Finally got UDP hole punched peer to peer xfers somewhat stable
Still need to manually make sure the comms are getting through
Switching to sending files instead of debugging sharedmem for now
lost internet just as I was testing the pubkey swapping

pretty late for me, so no release till tomorrow, but I am debugging NXTsubatomic using NXTsync now, so pretty good bet a test release within 24 hours

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

allwelder

  • Hero Member
  • *****
  • Karma: +196/-13
  • Offline Offline
  • Posts: 1867
  • NxtChina.org
    • View Profile
    • NxtChina.org

Waiting for Windows test.
Logged
NxtChina |Weibo |Twitter Donation welcomed:NXT-APL9-66GU-K8LY-B3JJJ

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Almost had a subatomic transaction happen via NXTsync, but things werent quite in sync
After a week of UDP wonkiness, I figured Windows couldnt be as bad, so I started porting everything to Windows.
Down to just 12 compiler errors. Of course, need to make networking and timers and threads cross platform, plus all the other libraries, but not as bad as I feared

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer
Pages: 1 ... 4 5 [6] 7  All
 

elective-stereophonic
elective-stereophonic
assembly
assembly