[12:02:55 AM] kushti: Jean-Luc are you online ?
[12:03:08 AM] lyaffe: Is anyone else supposed to join ?
[12:04:00 AM] jonesnxt: looks like everyone that commented on the email thread is here currently
[12:04:34 AM] kushti: chuckone?
[12:05:05 AM] jeanlucpicard: I am here
[12:05:09 AM] jonesnxt: Didn't have any comment on the meeting
[12:05:29 AM] jonesnxt: he's the one that actually knows whats going on in all the branches though, haha
[12:06:02 AM] kushti: ok
[12:06:06 AM] kushti: so let's start ?
[12:06:25 AM] chuckone: Hi.
[12:06:29 AM] lyaffe: Welcome !
[12:06:34 AM] jonesnxt: hello
[12:06:39 AM] kushti: hi Chuck!
[12:06:52 AM] mess: hello chuck!
[12:08:05 AM] jonesnxt: alright, what do we have to talk about?
[12:08:27 AM] lyaffe: Plans for 2015 ?
[12:08:36 AM] kushti: yeah, plans
[12:08:45 AM] kushti: 1.4 / 2015
[12:08:55 AM] mess: Work, rest... more of the same :P
[12:09:17 AM] jonesnxt: where are all the branches at these days?
[12:09:23 AM] jeanlucpicard: we should finish 1.4 this year
[12:10:04 AM] jonesnxt: what will 1.4 include? its MS, right?
[12:10:25 AM] jeanlucpicard: MS, dividend payment
[12:10:30 AM] jeanlucpicard: alias deletion
[12:10:39 AM] jeanlucpicard: change in transaction ordering within a block
[12:11:00 AM] lyaffe: MS is waiting for the ui now. I emailed MrV if he would like to join but got no response
[12:11:04 AM] kushti: What do you guys think about Java8? I think it could reduce our codebase with closures, but seems it's still too early to adopt? after few months?
[12:11:41 AM] jeanlucpicard: it is early, also will force users to upgrade from java 7
[12:12:35 AM] kushti: so 1.4 = MS / dividends / alias deletion
[12:12:40 AM] lyaffe: I think 1.4.0e will be out in a couple of weeks, what's next ?
[12:12:45 AM] kushti: 1.5 = VS / 2-phased?
[12:13:02 AM] mess: I haven't used java 8 yet, but I think it will facilitate coding by a bit :)
[12:13:09 AM] jeanlucpicard: probably coin shuffling too in 1.5
[12:13:33 AM] kushti: jones made a half of VS ui, holger started 2-phased UI, I started to work on JLP
[12:13:37 AM] kushti: 's TODOs
[12:14:13 AM] jeanlucpicard: oh, and the installer, 1.5 more likely
[12:14:20 AM] kushti: cool
[12:14:25 AM] kushti: 1.5 = January?
[12:14:28 AM] jonesnxt: VS ui is nearly done, just ironing everything to work with Wesleys code
[12:14:30 AM] mess: I am going to start working on the accoutn ledger feature... will that be planned for 1.5?
[12:14:30 AM] kushti: estimately
[12:14:38 AM] jeanlucpicard: actually, installer doesn't require hard fork, we can release it when ready
[12:14:48 AM] kushti: mess, account ledger?
[12:15:24 AM] jonesnxt: account ledger will be very useful, the transactions page is fairly messy at the moment
[12:15:25 AM] mess: https://bitbucket.org/JeanLucPicard/nxt/issue/145/account-ledger
[12:15:48 AM] lyaffe: Did anyone look at the feature/installer branch ? I can use some feedback ...
[12:16:01 AM] jeanlucpicard: it also doesn't need a hard fork, as no other features or transaction types will depend on account ledger
[12:16:12 AM] jeanlucpicard: not yet
[12:16:29 AM] jonesnxt: How is the installer stuctured?
[12:16:44 AM] kushti: lyaffe is it Linux-friendly?
[12:16:50 AM] kushti: I can test on linux :)
[12:17:22 AM] jonesnxt: I can make an AUR package for archlinux, haha
[12:17:25 AM] lyaffe: Its pure Java, based on IzPack, Unix friendly and for Windows also has Exe support
[12:17:42 AM] kushti: and regarding Chuck letter on 2015 plans
[12:17:50 AM] kushti: havent' time yet to answer in details
[12:18:09 AM] kushti: but I don't like all 3 features to be in the core to say the truth
[12:18:23 AM] kushti: what the profit of rulesets?
[12:18:56 AM] chuckone: People can put their moral version of the world onto blockchain.
[12:19:00 AM] jonesnxt: what are the 3 features?
[12:19:14 AM] chuckone: 4 features
[12:19:15 AM] kushti: judgement system/credit system is about some trust behind, so it's better to be implemented as 3rd party services not into trustless blockchain
[12:19:51 AM] chuckone: There is no trust involved.
[12:20:22 AM] kushti: I think of Nxt as not of all-features-within but as of platform, much bold than Ethereum, so more powerful from one side and limited from another
[12:20:51 AM] kushti: so we need to choose features to build the Platform
[12:21:13 AM] kushti: I'm happy to see more apps on top of Nxt
[12:21:31 AM] kushti: e.g. October boost in number of txs thanks to Nxtty
[12:21:53 AM] chuckone: Please wait a second, kushti.
[12:22:05 AM] kushti: ok )
[12:22:06 AM] chuckone: I think many here simply do not know what you are talking about.
[12:22:12 AM] chuckone: I will outline the features.
[12:22:17 AM] chuckone: rulesets.
[12:22:32 AM] chuckone: people should be able to tell the world what are their standards
[12:22:49 AM] chuckone: that can be helpful for individuals, for cooperations
[12:22:59 AM] chuckone: A simple storage.
[12:23:07 AM] chuckone: Judgement System:
[12:23:34 AM] chuckone: People can ask judges to vote if account A adhered to rules of account B
[12:24:17 AM] chuckone: E.g. company can be certified by the rules of a CA.
[12:24:40 AM] chuckone: Again, only storage done via voting.
[12:24:46 AM] antanst: sorry for the interruption - this chat is private I assume?
[12:24:46 AM] chuckone: Rights Management:
[12:25:20 AM] chuckone: I do not know.
[12:25:34 AM] chuckone: Why do you ask?
[12:26:26 AM] antanst: to know whether to stay or leave :-)
[12:26:53 AM] antanst: I assume it is, I'm sorry for the interruption
[12:27:04 AM] chuckone: :D no problem, you can stay of course
[12:27:15 AM] chuckone: That is no magic place here.
[12:27:20 AM] chuckone: Okay.
[12:27:22 AM] jeanlucpicard: yes, we are just planning and discussing features
[12:27:30 AM] chuckone: Rights Management
[12:27:32 AM] kushti: so, Rights Management
[12:28:02 AM] chuckone: Account Ownership is a bit limited.
[12:28:37 AM] chuckone: So, a right is a triple (account, action, thing) that needs to be introduced.
[12:29:21 AM] chuckone: That is a preparatory step for Credit System:
[12:29:41 AM] chuckone: you lend A some money, A locks some collateral
[12:30:02 AM] chuckone: if A does not pay back accordingly, rights to collateral goes to you
[12:30:35 AM] chuckone: That is basically it.
[12:31:00 AM] kushti: and Knowledge Base is required for Rights Management I guess ? :)
[12:31:35 AM] chuckone: There are already use cases out of this description that can be solved by a clever combination of rulesets and judgement systems.
[12:31:52 AM] chuckone: Actually no.
[12:32:35 AM] kushti: uhm what's action and thing entities in case we haven't KB?
[12:32:57 AM] kushti: I guess KB needed first, kind of semantic database
[12:33:13 AM] chuckone: Assets, Aliasses
[12:33:29 AM] chuckone: action = ownership
[12:34:47 AM] jonesnxt: a lot of stuff in the pipeline
[12:34:57 AM] chuckone: Indeed.
[12:35:10 AM] kushti: and Account Control
[12:35:12 AM] chuckone: I estimated first half of 2015 for that.
[12:35:19 AM] chuckone: I am in touch with yustas.
[12:35:24 AM] kushti: the most important thing after 2-phased I guess
[12:35:27 AM] chuckone: He is working on it and he is well.
[12:35:32 AM] kushti: fine
[12:35:42 AM] jeanlucpicard: yeah, I think it is too early to plan those in details, well, account control is very related to phasing and needed for important use cases of phasing
[12:35:47 AM] kushti: and 2-phased limitations will be there?
[12:36:10 AM] kushti: I being asking about that often
[12:36:12 AM] chuckone: It needs to be as we have identified it.
[12:36:21 AM] jonesnxt: 2-phased + vs + account control brings up a large amount of use cases
[12:36:40 AM] kushti: yes
[12:36:44 AM] lyaffe: Can someone explain 2-phased in a nutshell is it like BTC multisig ?
[12:36:45 AM] chuckone: I will explicitly mail yustas on this.
[12:37:09 AM] kushti: lyaffe, there's spec in gitlab's wiki on 2-phased. Simply. yes
[12:37:28 AM] kushti: but you can vote on pending transaction with assets as well
[12:37:34 AM] kushti: and MS coins, in future )
[12:37:42 AM] lyaffe: Ok, thanks, I think I read it already.
[12:37:54 AM] holger.drewes: https://nxtforum.org/general/2-phased-transactions-post-implementation-specification/
[12:38:12 AM] kushti: and rulesets, why can't businesses just use Account Info / AMs for that?
[12:38:24 AM] kushti: It's question of industry standard right?
[12:39:20 AM] chuckone: AMs will be deleted if I am correctly.
[12:39:33 AM] jonesnxt: no more AMs?
[12:39:40 AM] kushti: ?
[12:39:42 AM] chuckone: after trimming. :D
[12:39:50 AM] chuckone: They are not meant to be persistent.
[12:40:03 AM] kushti: ah, but they are still in blockchain
[12:40:13 AM] kushti: could be extracted from tx
[12:40:20 AM] chuckone: Yes.
[12:40:29 AM] jeanlucpicard: I think you mean permanent trimming
[12:40:35 AM] chuckone: Yes.
[12:40:35 AM] kushti: pruning?
[12:40:40 AM] chuckone: Blockchain pruning, trimming.
[12:40:48 AM] jeanlucpicard: because even now AMs are only in the blockchain, they never get moved to separate tables
[12:40:55 AM] jeanlucpicard: yes, pruning
[12:40:56 AM] chuckone: We have a somewhat confusing terminology here.
[12:41:01 AM] mess: What is AM?
[12:41:08 AM] jonesnxt: Arbitrary message
[12:41:08 AM] kushti: arbitrary msg
[12:41:13 AM] mess: k, thanks
[12:41:21 AM] kushti: pruning is unclear thing for now
[12:41:27 AM] kushti: thought a lot about it
[12:41:41 AM] kushti: and btw every new feature makes it harder and harder )
[12:41:43 AM] chuckone: Rulesets can be a part of account info, why not.
[12:42:23 AM] chuckone: What I gathered was that in the end we will need new genesis blocks containing the derived properties.
[12:42:36 AM] chuckone: AMs will not be taken over into the next genesis.
[12:43:02 AM] kushti: uhm
[12:43:12 AM] jeanlucpicard: but those new genesis blocks will need to be more than blocks, they need to contain a lot of state from the database
[12:43:23 AM] kushti: yeah
[12:43:27 AM] jeanlucpicard: assets, MS amounts, open asset orders, published MS exchange offers...
[12:43:37 AM] jeanlucpicard: DGS goods still in stock...
[12:43:41 AM] kushti: for feature-rich coin like Nxt pruning is problem
[12:43:53 AM] kushti: for PoS it's also harder problem
[12:44:09 AM] kushti: as consensus in the beginning of time is not so strict right? )
[12:44:28 AM] kushti: at least I think so after some simulations
[12:44:33 AM] chuckone: What did we learn these days?
[12:44:43 AM] chuckone: weakly subjective consensus
[12:45:20 AM] kushti: )) also "Consensus in view" by andruiman
[12:46:11 AM] kushti: consensus is hard question for PoS to say the truth. And for first few hundreds blocks especially
[12:46:25 AM] kushti: JLP do you think so?
[12:46:43 AM] jeanlucpicard: yes, but I haven't though enough about that
[12:46:57 AM] chuckone: SC + AT is still the red rag.
[12:47:03 AM] jeanlucpicard: btw, kushti,
[12:47:13 AM] jeanlucpicard: what do you think about that problem that I tried to fix in 1.4,
[12:47:23 AM] jeanlucpicard: when a new node downloads the blockchain from scratch
[12:47:36 AM] jeanlucpicard: how to prevent it from getting stuck on a fake fork by a rogue peer
[12:47:52 AM] jeanlucpicard: this is related to consensus and finding the right chain
[12:48:25 AM] chuckone: That basically is the problem described by weakly subjective consensus by Vitalik.
[12:48:55 AM] chuckone: PoS has no SPV and that is the main problem here.
[12:49:11 AM] chuckone: The only sensible solution: ask a friend.
[12:49:21 AM] lyaffe: Why can't PoS has SPV ?
[12:49:23 AM] chuckone: At least that was the conclusion half a year ago.
[12:49:36 AM] jonesnxt: SPV?
[12:49:43 AM] chuckone: Simple Payment Verification.
[12:49:45 AM] jeanlucpicard: well, this is sort of what I tried to do in the code, ask 10 other peers and check their forks too
[12:50:22 AM] lyaffe: Folks, can we allocate some time for more basic questions ?
[12:50:38 AM] chuckone: Sure. Go ahead.
[12:51:10 AM] lyaffe: I'm concerned what happens next time there's a bug and the network forks. Do we have a plan ?
[12:51:18 AM] jeanlucpicard: sell!
[12:51:22 AM] chuckone: :D
[12:51:40 AM] kushti: jeanlucpicard, I have no good solution. 719 blocks bunch works but slow things down :(
[12:51:59 AM] chuckone: 720 was quite good last time.
[12:52:18 AM] chuckone: That is about a day.
[12:52:26 AM] jeanlucpicard: the slow down is because of having to ask other peers too
[12:52:35 AM] kushti: yeah I see
[12:52:51 AM] jeanlucpicard: we could reduce that number, I think default is 5 now
[12:53:10 AM] chuckone: Why reducing?
[12:53:24 AM] jeanlucpicard: but at least if it is a parameter that users can change, and we start seeing such an attack going on, we can tell people to increase it to fight against it
[12:54:04 AM] chuckone: Well, my initial thought on this was:
[12:54:07 AM] jeanlucpicard: the algorithm is that after downloading each batch of 719 blocks or less from a single peer,
[12:54:21 AM] chuckone: we were lucky that we had 720 blocks available to solve the problem.
[12:54:25 AM] kushti: and it works against 1 rogue peer. few tens nodes attack will make new nodes stuck again I guess
[12:54:30 AM] jeanlucpicard: you stop and ask n other peers about their forks, starting at the same common block as before you downloaded those blocks
[12:54:51 AM] jeanlucpicard: and if any of those peers has a chain with a better difficulty, after verifying that it is indeed better, you switch to it instead
[12:55:40 AM] jeanlucpicard: since you downloaded less than 720, you still have a chance to switch, it the first peer was rogue
[12:55:55 AM] chuckone: Why not decoupling that?
[12:56:03 AM] jeanlucpicard: like how
[12:56:05 AM] chuckone: If you are new, you are special.
[12:56:22 AM] chuckone: 720-rule does not necessarily work for you
[12:56:32 AM] jeanlucpicard: well, this logic kicks in only when you download more than 10 blocks at a time
[12:56:48 AM] jeanlucpicard: for peers that are up to date or almost, there will be no extra request
[12:57:00 AM] chuckone: We could increase that to 720.
[12:57:06 AM] jeanlucpicard: reasoning is that they will have plenty of chance to see other forks and switch to them
[12:58:16 AM] chuckone: Still, why should you stuck on a chain if you are new to the network?
[12:58:53 AM] jeanlucpicard: currently, you start downloading from a peer, and you can keep downloading up to 10*1440 blocks from the same peer before you try a new one
[12:59:30 AM] jeanlucpicard: if this leads you to an inferior fork, you don't have a chance to switch to the right one, once you are more than 720 blocks after the last common block with it
[12:59:43 AM] chuckone: That is what I am saying.
[01:00:04 AM] chuckone: If you download more than 720 blocks from a single peer, why should your node stuck?
[01:00:14 AM] chuckone: I mean why because of that?
[01:00:23 AM] jeanlucpicard: you are suggesting to allow rollbacks of more than 720 blocks?
[01:00:41 AM] chuckone: If you downloaded the last 720 blocks from the same peer.
[01:01:06 AM] kushti: now I'm working with forging simulations extracted from NRS code into Haskell model. I'm not happy with consensus in the model :( It works like testnet in summer :) clusters hardly going to a common chain :( seems in real network consensus exists because of "magic settings" like 720/1440 blocks rollback window, some extra checks etc. So my plan is to find better model first then incorporate findings back into NRS if possible
[01:01:51 AM] jeanlucpicard: yes, I am afraid of changing that, allowing more than 720 blocks rollbacks
[01:01:51 AM] chuckone: JL, did you follow so far?
[01:02:06 AM] chuckone: You mean for new nodes?
[01:02:22 AM] chuckone: Hmm, well existing nodes would not be affected, I guess.
[01:02:22 AM] jeanlucpicard: but in practice, we never see such large rollbacks, so I am not sure why 720 is a magic number if it never gets reached
[01:02:32 AM] kevinko: Omg programmers.
[01:02:35 AM] kushti: :)
[01:02:38 AM] jeanlucpicard: but how does a node know that it is new?
[01:02:46 AM] jeanlucpicard: when does a node decide it is no longer new
[01:02:54 AM] chuckone: Because it downloads a lot of blocks.
[01:03:05 AM] chuckone: And because of the timestamps.
[01:03:34 AM] jeanlucpicard: that would still rely on some more magic numbers
[01:03:43 AM] chuckone: Sure.
[01:03:53 AM] jeanlucpicard: like how many is a lot, and what timestamp is recent enough
[01:04:11 AM] chuckone: I did not say we cannot make it without.
[01:04:18 AM] chuckone: 10 peers is also a magic number.
[01:04:19 AM] jeanlucpicard: if you are 2 hours behind, are you really, or is it a very long block and you are in fact at the real end of the chain
[01:04:27 AM] chuckone: Could be a Sybil attack.
[01:04:31 AM] kevinko: Hi guys?
[01:04:39 AM] jeanlucpicard: who are u?
[01:04:39 AM] chuckone: Hi kevinko.
[01:05:22 AM] kevinko: One of jabber.ccc.de team member, checking out rooms. Because Arabs spamming us. (Kevins.me).
[01:05:37 AM] chuckone: We have TF. It will tell us if there need to be block or not.
[01:05:51 AM] chuckone: What can we do for you?
[01:06:10 AM] kevinko: Nothing much. Are you guys programmers? Seems so
[01:06:23 AM] jeanlucpicard: no, just ordinary terrorists
[01:06:53 AM] chuckone: JL is responsible for the jokes tonight.
[01:07:01 AM] kushti: UI guys, simple and maybe stupid question from me. we have 3 UI devs now + wesley's heritage. do we have UI styleguide? Can we have problem with dissonating parts of UI?
[01:07:05 AM] jeanlucpicard: just watched an action movie :)
[01:07:34 AM] chuckone: Okay, JL.
[01:07:37 AM] lyaffe: Folks, can we let the new guys ask some questions ? We can settle the 720 blocks later.
[01:07:40 AM] chuckone: Let us talk about this later.
[01:07:45 AM] chuckone: Yes.
[01:08:03 AM] lyaffe: Questions anyone ?
[01:08:08 AM] jonesnxt: ui style guide would be useful, or at least an introduction to how wesleys code works
[01:08:22 AM] jonesnxt: took me a while to find everything
[01:08:35 AM] chuckone: Did you find everything now?
[01:09:21 AM] kushti: mrv is the main UI dev now? or Holger?
[01:09:24 AM] jonesnxt: I can find everything fairly well at this point, for style I've basically been trying to just make all my code look like the surrounding stuff welsep put in
[01:09:29 AM] jonesnxt: *wesley
[01:09:36 AM] holger.drewes: Yes, me too
[01:09:48 AM] chuckone: So, what would you put into the styleguide?
[01:10:01 AM] jonesnxt: I could write something up if needed
[01:10:03 AM] chuckone: Would be great if the UI guys could put this into our new READMEs.
[01:10:07 AM] kushti: ok, so jones works on VS ui only, mrv & holger on all the stuff?
[01:10:21 AM] chuckone: That would be great.
[01:10:32 AM] holger.drewes: I worked on marketplace UI, now on 2-phased tx UI
[01:10:51 AM] chuckone: MrV is responsible for MS.
[01:11:28 AM] kushti: btw holger have you success with fake forging?
[01:11:30 AM] jonesnxt: I think it would be helpful to take the 6000+ line index.html and part it out into individal areas of the ui, but it would be a lot of work to load everything
[01:11:42 AM] holger.drewes: Didn't try yeet
[01:11:53 AM] lyaffe: UI team how can we make your life easier, should we invest in JavaDoc ? what else ?
[01:12:04 AM] kushti: ok ask me in case of any problems
[01:12:21 AM] jeanlucpicard: we could make another testnet for 1.4?
[01:12:28 AM] jonesnxt: I think /test has everything I need, but I usually just look around the java when needed
[01:12:55 AM] kushti: it's good if can look around the java )
[01:13:02 AM] chuckone: So, what I gathered right now is:
[01:13:11 AM] chuckone: a new dev finds his way around
[01:13:17 AM] chuckone: the code could be better anyway
[01:13:26 AM] chuckone: like index.html
[01:13:41 AM] chuckone: styleguide in README
[01:14:17 AM] chuckone: Something else?
[01:14:19 AM] holger.drewes: I think we have to find a good balance of working new stuff, but also refactoring the old one
[01:14:26 AM] jonesnxt: I still need to look into how that multilanguage plugin works, i15n I think it is
[01:14:51 AM] holger.drewes: We (UI guys) should also communicate closely so that we not all reinvent the wheel separately
[01:14:55 AM] chuckone: @Holger
[01:15:09 AM] chuckone: Would it be worth creating an issue on Bitbucket for the index.html?
[01:15:24 AM] chuckone: Or will this happen iteratively in the next few months?
[01:16:03 AM] holger.drewes: Maybe this can happen iteratively?
[01:16:10 AM] chuckone: Alright. :)
[01:16:18 AM] lyaffe: When can we upgrade testnet to 1.4 ? What about unit tests, should we continue testnxt or move to testing inside NRS ?
[01:16:54 AM] jeanlucpicard: if we upgrade testnet to 1.4, users without access to 1.4 code will not be able to use it
[01:17:24 AM] jeanlucpicard: and that demo testnet project, for nxt.org, we need a blockchain for it based on 1.3 testnet for the general public
[01:17:49 AM] lyaffe: Understood, can we setup 2 testnets ?
[01:18:26 AM] jeanlucpicard: we could, actually even if we do it on the same port like now, the different version nodes will just blacklist each other and there will be two forks
[01:18:26 AM] kushti: yeah and businesses uses testnet for their stuff
[01:18:42 AM] jeanlucpicard: look at it as experiment in fork resolution :)
[01:18:51 AM] kushti: :)
[01:19:04 AM] jeanlucpicard: but, somebody needs to be forging with enough balance on each fork
[01:19:24 AM] jeanlucpicard: right now it is mostly my node forging, if I switch that to 1.4, who will maintain 1.3 blockchain
[01:19:32 AM] chuckone: (I think kevinko still tries to figure out whether to sell or to buy :D )
[01:19:53 AM] lyaffe: I can setup a permanent VPS node for the testnet
[01:19:56 AM] kevinko: Well, I need programmers.
[01:20:04 AM] chuckone: No way.
[01:20:10 AM] chuckone: They are all busy, man.
[01:20:32 AM] holger.drewes: Is there already some kind of planned date for 1.4e release?
[01:20:36 AM] chuckone: But we have some open issues; we do not mind if you take some of them. ;)
[01:21:03 AM] chuckone: @Holger Unfortunately no.
[01:21:08 AM] jeanlucpicard: also, any low hanging fruit type bugs to make it into 1.3.5?
[01:21:21 AM] chuckone: I guessed last week but MrV needs more time.
[01:21:34 AM] jeanlucpicard: holger, more DGS search improvements?
[01:21:41 AM] jeanlucpicard: or how about the AE pagination
[01:22:26 AM] chuckone: https://nxtforum.org/nrs-releases/nrs-v1-3-4/msg134492/#msg134492
[01:22:26 AM] holger.drewes: Hmm, I have limited time, thought on concentrating on the 2-phased ui
[01:22:28 AM] kevinko: I was kidding. Have fun
[01:22:30 AM] kevinko: Byies
[01:22:35 AM] chuckone: Bye.
[01:22:56 AM] chuckone: @kushti
[01:23:03 AM] chuckone: that could be low-hanging
[01:23:06 AM] chuckone: @JL
[01:23:10 AM] chuckone: About testnet
[01:23:18 AM] jeanlucpicard: this looks like a db corruption after a java crash
[01:23:31 AM] chuckone: Wouldn't it be great to enable people on the testnet to create NXT?
[01:23:45 AM] chuckone: Just to have people that can forge.
[01:24:10 AM] holger.drewes: @kushti What time frame are you looking at for releasing test version of voting/2phased? January? February?
[01:24:32 AM] lyaffe: How about allowing different port per testnet ? port 6876 = current release port 6877 next release
[01:25:27 AM] jeanlucpicard: hm, yeah, maybe
[01:25:53 AM] jeanlucpicard: we still need forgers for each testnet, or maybe I upgrade my VPS and run two instances
[01:25:57 AM] kushti: @chuckone create nxt??
[01:26:30 AM] chuckone: @kushti Server side of VS and 2P is finished, right?
[01:26:36 AM] kushti: @holger you mean broader public testnet release?
[01:26:43 AM] jeanlucpicard: lets do 5874, 5875, 5876 for next release?
[01:26:46 AM] chuckone: @kushti sure I mean on the testnet.
[01:26:46 AM] jeanlucpicard: testnet
[01:26:50 AM] holger.drewes: @kushti yes
[01:27:42 AM] kushti: server-side is more or less finished, at least for interfaces. there are a lot of issues to be solved after review :) but interfaces are more or less stable
[01:27:56 AM] kushti: the only thing is MS support, but it's incremental thing
[01:28:27 AM] lyaffe: We need a 1.4 testnet quickly, for example MrV is now stuck because of a simple problem that I cannot reproduce.
[01:28:43 AM] jeanlucpicard: for MS, instead of adding currency as parameter, maybe better to change asset to "holding", and have a separate "holding_type" parameter?
[01:28:48 AM] kushti: I will work on TODOs from Jean-Luc for ,say, week, MS support week also for exampe, testing, thinking, fixing... let's say month for final polishing
[01:29:19 AM] kushti: holdingId + votingModel parameter already exists
[01:29:36 AM] kushti: byCoin in addition to byAsset
[01:29:51 AM] jeanlucpicard: oh, that is in the votingms branch?
[01:30:06 AM] kushti: not yet done (
[01:30:15 AM] kushti: but I thought about implementation
[01:30:23 AM] kushti: and it will be done this way I guess
[01:30:32 AM] jeanlucpicard: ok
[01:30:37 AM] kushti: and crucial problem
[01:30:50 AM] kushti: what do you think about recalc in 2-phased?
[01:31:11 AM] jeanlucpicard: I didn't like it, and I think we should do only counting at the finish height
[01:31:15 AM] kushti: is it too heavy so should be done on certain height in case of by-asset / by-coin voting?
[01:31:37 AM] kushti: ok, but there's no overhead for by-account(classic multisig)
[01:31:41 AM] jeanlucpicard: another reason is that voters will not know in advance at what height their votes will be counted
[01:31:45 AM] kushti: so different releasing models?
[01:32:03 AM] jeanlucpicard: no, always do it at finish height, this is what I would suggest
[01:32:10 AM] kushti: uhm
[01:32:18 AM] jeanlucpicard: otherwise voters will need to keep their funds or assets in the account, until voting is over
[01:32:48 AM] jeanlucpicard: if they know at what height it matters, they are free to trade or move them, as long as at that moment they are in the account
[01:32:54 AM] kushti: in case of classic multisig(by-account) I think it's better to release immediately, think of trustless escrows etc
[01:33:28 AM] jeanlucpicard: still, the performance hit and the code complication
[01:34:23 AM] jeanlucpicard: oh, by account, when balance doesn't matter?
[01:34:23 AM] kushti: there's no overhead in case of by-account voting, no rechecking needed
[01:34:28 AM] kushti: yeah
[01:34:39 AM] jeanlucpicard: hm, ok
[01:35:01 AM] chuckone: @kushti If the server side is finished in the end of December that is okay. After December MS will have left his infancy, so we can go public with VS and 2P.
[01:35:13 AM] chuckone: Although I would prefer two releases for them.
[01:35:15 AM] chuckone: First VS.
[01:35:16 AM] kushti: so we'll have 2 releasing models in this case. bit tricky but that's another side of power :)
[01:35:18 AM] chuckone: Then 2P.
[01:35:35 AM] kushti: ok,I can split branches again )
[01:35:40 AM] kushti: no big problem here
[01:35:52 AM] chuckone: That should also address lyaffe's concern.
[01:36:00 AM] jeanlucpicard: wait, we have a bit too many voting branches already
[01:36:25 AM] kushti: I've deleted _ms, and old separate
[01:36:37 AM] chuckone: Why do we not have VS and 2P?
[01:36:37 AM] kushti: so now the only branch exists :)
[01:36:41 AM] jeanlucpicard: ok
[01:36:48 AM] chuckone: I see.
[01:37:13 AM] chuckone: Alright.
[01:37:20 AM] chuckone: Anything else?
[01:37:22 AM] kushti: I had two separate branches, but then I started code merging and made one branch to ensure that
[01:38:07 AM] kushti: now I can split again, I clearly see common points and they will be untouched guess so
[01:38:09 AM] jonesnxt: It is important to keep different ui programmers on different branches, because index.html would have to be merged in weird ways too much
[01:38:20 AM] kushti: yeah
[01:38:35 AM] kushti: I can imagine what the hell is it :)
[01:38:43 AM] kushti: 6K lines of shared code
[01:38:56 AM] jonesnxt: I'm getting really good at using git, haha
[01:39:05 AM] chuckone: :D
[01:39:40 AM] chuckone: @kushti about splitting:
[01:40:17 AM] chuckone: If you simply keep changes to the VS into the VS branch an remerge them into the 2P branch regularly as JL does with the develop branch that should work, right?
[01:40:26 AM] kushti: right
[01:40:33 AM] chuckone: Understood
[01:40:52 AM] kushti: so will do splitting tomorrow
[01:40:57 AM] chuckone: Further questions?
[01:41:58 AM] lyaffe: Good night it was a pleasure.
[01:42:12 AM] chuckone: Have a good night as well.
[01:42:14 AM] jeanlucpicard: good night, I am also getting too tired to think more
[01:42:21 AM] holger.drewes: Good night everyone
[01:42:29 AM] kushti: Jean-Luc
[01:42:43 AM] jonesnxt: goodnight/afternoon/morning, depending on where you are
[01:42:47 AM] kushti: do you use profiler I guess?
[01:42:50 AM] mess: good night!
[01:42:55 AM] kushti: some insights you can shere?
[01:43:17 AM] chuckone: Cya, folks.
[01:43:49 AM] jeanlucpicard: I use yjp, but mostly on production code
[01:44:07 AM] kushti: what's the bottleneck now?
[01:44:07 AM] jeanlucpicard: like, loading the blockchain from scratch, or a full rescan
[01:45:03 AM] jeanlucpicard: not sure, db access and peer networking is what takes most
[01:45:28 AM] kushti: ok
[01:45:46 AM] kushti: wanna play a bit also after VS/2PT done
[01:45:51 AM] jeanlucpicard: and I have done some optimizations based on profiler results, like I noticed the listeners after block apply were taking more than the block apply itself
[01:46:07 AM] jeanlucpicard: I fixed some problems in account leasing listener, now it is better
[01:46:08 AM] kushti: uhm )
[01:46:13 AM] kushti: fine
[01:46:19 AM] kushti: have a good night guys!
[01:46:43 AM] jeanlucpicard: but, to run such tests need to have some real data, it works on main net now but can't do it for MS or VS where we have no volume of test transactions
[01:47:09 AM] jeanlucpicard: once we put it on testnet, and have people play with it, and even submit test transactions with scripts, we will have a blockchain to use for profiling testing
[01:47:44 AM] kushti: transactions could be generated over local chain as well
[01:48:00 AM] kushti: peer networking is out of scope for sure in case of local chain
[01:48:38 AM] jeanlucpicard: well, that json parsing and generating is not very efficient, in the peer communications
[01:48:58 AM] jeanlucpicard: I noticed that from the beginning, the 0.4 releases
[01:49:35 AM] jeanlucpicard: at that time I was even caching the json in a soft reference, to avoid constructing it again and again
[01:49:37 AM] kushti: json-simple?
[01:49:49 AM] jeanlucpicard: yes
[01:50:11 AM] kushti: and http layer is also less performant than e.g. protocol buffers I guess
[01:50:21 AM] jeanlucpicard: but I wouldn't call it a bottleneck now, it is good enough
[01:50:50 AM] kushti: btw have you estimations for max h2 db size possible?
[01:51:11 AM] jeanlucpicard: I think in the very beginning there was a binary protocol, but CfB replaced that with http, before I even got to look at the code
[01:51:13 AM] kushti: in october we had 10+ K txs one day
[01:51:34 AM] jeanlucpicard: don't know about max size
[01:51:38 AM] kushti: number of txs is growing
[01:51:46 AM] kushti: and I don't sure about H2 limits
[01:52:18 AM] jeanlucpicard: we will upgrade to H2 1.4 version, but it is still in beta, Ron was having some problems with it
[01:52:28 AM] mess: http://h2database.com/html/advanced.html#limits_limitations
[01:53:11 AM] mess: haven't gone through that link yet
[01:53:33 AM] jeanlucpicard: well, seems only on FAT db size is limited to 4 GB
[01:54:27 AM] jeanlucpicard: and then there is a workaround which we can do for old windows users still on FAT when we approach such sizes
[01:56:26 AM] mess: The maximum number of rows per table is 2^64.
[01:57:01 AM] mess: ok thats a lot
[01:57:02 AM] mess: :P
[01:58:22 AM] jeanlucpicard: ok, don't think H2 limitations are a issue yet
[01:59:17 AM] mess: I got one question that I forgot to ask... any thoughts in using a build tool (e.g. maven)?
[01:59:55 AM] jeanlucpicard: I don't like maven, and for another tool, what would it do that we can't do now?
[02:00:30 AM] jeanlucpicard: as far as building a package for distribution, the installer project will take care of that part
[02:01:04 AM] jeanlucpicard: we don't really need to build multiple artefacts with dependencies that need to be managed
[02:01:31 AM] jeanlucpicard: we even got rid of the nxt.jar and keep it at classes level now
[02:01:57 AM] kushti: businesses around would find nxt-as-artifact helpful
[02:02:13 AM] jeanlucpicard: and I prefer to keep library jars in the source control repository, not download them from maven repositories
[02:02:43 AM] mess: thats the main reason why I thought something like maven would not be desireable
[02:02:51 AM] mess: but in general I think it makes dev a bit easier
[02:03:15 AM] mess: run tests, modularize the project (e.g. having a nxt-core and a nxt-http)
[02:03:15 AM] jeanlucpicard: well, not for me at least
[02:03:19 AM] kushti: yeah especially in multi-deps projects
[02:04:22 AM] mess: I see.. .yep, I think its relative. It is likely that I use it every day that it is easy for me to use
[02:04:28 AM] mess: so got used to it
[02:05:12 AM] mess: but I am not against the current status quo, I just wanted to hear the thoughts
[02:05:38 AM] kushti: mess what's ur plan after 1.4?
[02:06:16 AM] mess: I want to get the account ledger out as soon as I can... since I don't think the dividend payment feature will not be convenient to use until we get the account ledger
[02:06:49 AM] jeanlucpicard: btw, about modularizing the project, I am thinking of some refactoring and making more packages like nxt.api, nxt.core, and an nxt.package for each feature like dgs, ae, etc, but this have to wait until after 1.5 probably
[02:07:46 AM] kushti: sounds cool
[02:07:48 AM] kushti: (y)
[02:07:48 AM] mess: that sounds like a good idea jeanluc
[02:08:37 AM] jeanlucpicard: but that will add more classes and complexity, like instead of Account we will have Account (interface), AccountImpl, and Accounts (static methods)
[02:09:34 AM] jeanlucpicard: and something like that is useful mainly if nxt starts to be used like a java library, the way Offspring was using it
[02:10:01 AM] jeanlucpicard: if it is used by the http interface mostly, a well defined nxt.api java api is not that important
[02:11:02 AM] kushti: some projects use java api
[02:11:10 AM] kushti: e.g. secureae
[02:11:34 AM] kushti: and smartcontract.com
[02:11:44 AM] jeanlucpicard: ok, that's good to know
[02:12:07 AM] jeanlucpicard: so we need to be careful about changing the java api for backwards compatibility too
[02:12:16 AM] kushti: helped both of them
[02:12:23 AM] kushti: to integrate nrs
[02:12:49 AM] mess: Thinking in that same line... an useful pattern that is used in the industry is to have model classes which store the data retrieved from the database (e.g. Account, Asset), and a DAO layer that fetches the data and makes the data available as models to the higher layers
[02:13:19 AM] kushti: as http api is limited in some cases (and was much more limited in 1.2.x, secure ae still on 1.2.9)
[02:13:44 AM] jeanlucpicard: hm, secure ae need to make sure to upgrade before 1.4, the hard fork
[02:13:56 AM] jeanlucpicard: yes, I have used the DAO model before
[02:14:32 AM] jeanlucpicard: adding a new column to the db needed changing like 5 classes until you can get it to the http layer
[02:14:42 AM] jeanlucpicard: there is a cost in complexity
[02:14:57 AM] jonesnxt: Thanks guys, good meeting, I'm going to go buy a pretzel (:
[02:16:02 AM] jeanlucpicard: ok, I am falling asleep soon
[02:16:16 AM] mess: better go to sleep then :P
[02:16:40 AM] mess: I am going away too now... thanks for the interesting discussions folks!
[02:16:44 AM] jeanlucpicard: good night all
[02:16:48 AM] mess: good night
[02:21:01 AM] kushti: buy guys
[02:21:05 AM] kushti: bye ))
[02:21:05 AM] kushti: bye ))