1 2017-07-31 05:01:35 0|bryyan|if Bitcoin core is written in C++, why not support any kind of native interface directly (numbers as represented in memory going over tcp sockets as an RPC opposed to the serialised JSON RPC) ?
2 2017-07-31 05:02:56 0|gmaxwell|because either it exposes internal datastructures which are unstable and change from version to version to outside applications; or it has to specify yet another encoding.
3 2017-07-31 05:03:14 0|gmaxwell|and we do already have a binary encoding for most thigns: use the p2p protocol.
4 2017-07-31 05:04:23 0|bryyan|I mean't like json but in a C struct
5 2017-07-31 05:04:45 0|bryyan|and not a char* but between applications you would include a .h file containing the structs
6 2017-07-31 05:07:08 0|sipa|structs don't have a well-defined serialization to bytes
7 2017-07-31 05:07:20 0|bryyan|on the same architecture they do
8 2017-07-31 05:07:23 0|sipa|different architectures store them differently in memory
9 2017-07-31 05:07:33 0|sipa|just a different compilation option may change them
10 2017-07-31 05:07:47 0|bryyan|yes, but why write bitcoin core in c++, a platform dependent language under many circumstances?
11 2017-07-31 05:08:32 0|bryyan|additionally its often feasible to have multiple AMD64 machines which use the same format for C variables
12 2017-07-31 05:08:51 0|sipa|efficiency, tight control over resource usage, high-level
13 2017-07-31 05:09:09 0|bryyan|JSON is kind of cpu intensive to cast back and forth between native types you know
14 2017-07-31 05:09:21 0|bryyan|directly copying 4 bytes of memory is far cheaper
15 2017-07-31 05:09:21 0|sipa|you can use REST
16 2017-07-31 05:09:33 0|bryyan|what is REST?
17 2017-07-31 05:09:43 0|sipa|for some data with well-defined serialization, Bitcoin Core has a REST interface
18 2017-07-31 05:09:59 0|sipa|you can fetch full blocks and transactions directly in binary network format over it
19 2017-07-31 05:10:13 0|bryyan|without having to send a bunch of ascii json around?
20 2017-07-31 05:10:16 0|sipa|to avoid the JSON encoding/decoding overhead
21 2017-07-31 05:10:16 0|sipa|yes
22 2017-07-31 05:10:39 0|sipa|but you still need a serialization/deserialization layer... it's not just a struct that gets sent over the network
23 2017-07-31 05:10:52 0|bryyan|yes, but I'm looking for just that
24 2017-07-31 05:11:24 0|bryyan|I assume I have 2 machines of identical architecture and the fastest means of transfering data is in native format
25 2017-07-31 05:11:34 0|sipa|https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md
26 2017-07-31 05:11:43 0|sipa|there is no 'native' format
27 2017-07-31 05:11:59 0|bryyan|a C int type is native by my definition
28 2017-07-31 05:12:13 0|bryyan|will look identical on 2 AMD64 machines
29 2017-07-31 05:12:17 0|sipa|what's the native representation for a transaction?
30 2017-07-31 05:12:35 0|sipa|it has a number of nested data structure of variable size
31 2017-07-31 05:12:40 0|gmaxwell|none of the interesting data in bitcoin is just an int or a simple arrays of them.
32 2017-07-31 05:13:02 0|gmaxwell|and as I said above, we do have a binary seralization of data: the p2p format.
33 2017-07-31 05:13:05 0|bryyan|if you query for your balance, a float or double could work as a returned native type
34 2017-07-31 05:13:08 0|gmaxwell|all ready for anyone to use.
35 2017-07-31 05:13:19 0|gmaxwell|oh jesus bitcoin amounts aren't natively floating point.
36 2017-07-31 05:13:30 0|gmaxwell|one should generally not use floating point when dealing with money.
37 2017-07-31 05:13:57 0|sipa|bryyan: the cost of computing the balance is orders of magnitude larger than running a json deserializers
38 2017-07-31 05:13:59 0|bryyan|you know, floating point has a certain number of digits of accuracy, just don't go too far
39 2017-07-31 05:14:24 0|bryyan|I don't think we're talking about the same thing
40 2017-07-31 05:14:33 0|sipa|fine
41 2017-07-31 05:15:04 0|bryyan|in a native binary (such as bitcoind) certain instructions are applied to do math with integers and floating point types, the format of those values in memory are the native types
42 2017-07-31 05:16:32 0|bryyan|pretty printed json is like 64 bytes to represent a 4-byte int
43 2017-07-31 05:16:35 0|bryyan|very slow
44 2017-07-31 05:17:50 0|bryyan|additional information is transfered over the network when keeping a header file with bitcoind and with the RPC client containing C macros which resolve to short 2-byte sequences for calls, and structs for reciving will take up far less thoroughput
45 2017-07-31 05:18:08 0|bryyan|and after the word network there should be a comma I meant to put
46 2017-07-31 05:18:53 0|bryyan|if you've written programs in C you would know what I'm talking about
47 2017-07-31 05:25:37 0|praxeology|bryyan: how about create software and find the RPC api as a bottleneck before you look to optimize it
48 2017-07-31 05:26:22 0|bryyan|for one thing, C doesn't handle JSON very well
49 2017-07-31 05:26:31 0|bryyan|although thats more of a side problem
50 2017-07-31 05:28:41 0|phantomcircuit|bryyan, the question you want to be asking yourself right now is
51 2017-07-31 05:28:43 0|phantomcircuit|BUT WHY
52 2017-07-31 05:30:02 0|bryyan|largely because I plan to make an operating system, and JSON puts in wayyy to much computational overhead compared to even a native-type conversion service
53 2017-07-31 05:30:44 0|bryyan|you can convert endianness, format, and signing polarity far quicker then serialising and de-serialising some json
54 2017-07-31 05:31:50 0|gmaxwell|Go away earlygrey.
55 2017-07-31 05:35:12 0|bryyan|you could probably process 10s of requests in native format by the time a single JSON request completes
56 2017-07-31 05:35:28 0|bryyan|maybe even 100s with a well-optimized binary
57 2017-07-31 06:26:01 0|luke-jr|bryyan: jansson handles JSON good enough
58 2017-07-31 06:52:59 0|praxeology|luke-jr: did you see he is making an operating system?
59 2017-07-31 06:53:01 0|bitcoin-git|[13bitcoin] 15sipa opened pull request #10958: Update to latest Bitcoin patches for LevelDB (06master...0620170731_leveldb) 02https://github.com/bitcoin/bitcoin/pull/10958
60 2017-07-31 07:33:29 0|MarcoFalke|jnewbery: The issue is that the last commit of #10853 conflicts with other pulls tagged for 0.15
61 2017-07-31 07:33:30 0|gribble|https://github.com/bitcoin/bitcoin/issues/10853 | [tests] Fix RPC failure testing (again) by jnewbery ÷ Pull Request #10853 ÷ bitcoin/bitcoin ÷ GitHub
62 2017-07-31 07:33:45 0|MarcoFalke|At this point I'd prefer if we didn't force a rebase on tagged pulls
63 2017-07-31 07:40:17 0|jnewbery|MarcoFalke: I'm happy for 10853 to wait until after rc1
64 2017-07-31 07:40:28 0|jnewbery|Unless you want it before, in which case I'll split it
65 2017-07-31 07:43:51 0|MarcoFalke|Fine, let's defer it for now.
66 2017-07-31 07:44:04 0|Oscillate|Hi,
67 2017-07-31 07:45:45 0|Oscillate|New to bitcoin here, can somebody tell me if the split is neccecary fot bitcoin hardfork ??
68 2017-07-31 07:45:56 0|sipa|Oscillate: #bitcoin
69 2017-07-31 07:46:00 0|Oscillate|for*
70 2017-07-31 07:46:07 0|Oscillate|thank you sipa
71 2017-07-31 07:57:27 0|luke-jr|wumpus: can I get access to bitcoin-devwiki? seems github is picky about pushing changes via git/ssh :/
72 2017-07-31 08:12:42 0|luke-jr|copypa;ted for no,
73 2017-07-31 08:45:42 0|jnewbery|Hmmm, https://botbot.me/freenode/bitcoin-core-dev/ seems to have a gap between https://botbot.me/freenode/bitcoin-core-dev/2017-07-28/?msg=89162968&page=1 and https://botbot.me/freenode/bitcoin-core-dev/2017-07-31/?msg=89185019&page=1 . Are there any other public archives?
74 2017-07-31 08:46:37 0|jnewbery|(I have my own logs, but it's useful to be able to send a URL)
75 2017-07-31 08:47:14 0|bitcoin-git|13bitcoin/06master 149a8b054 15Gregory Maxwell: Update defaultAssumeValid according to release-process.md....
76 2017-07-31 08:47:14 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/70888a39c43a...2a50b11586a2
77 2017-07-31 08:47:15 0|bitcoin-git|13bitcoin/06master 142a50b11 15Wladimir J. van der Laan: Merge #10945: Update defaultAssumeValid according to release-process.md....
78 2017-07-31 08:47:54 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10945: Update defaultAssumeValid according to release-process.md. (06master...06201707-update-assumevalid) 02https://github.com/bitcoin/bitcoin/pull/10945
79 2017-07-31 09:35:35 0|bitcoin-git|13bitcoin/06master 14f0acedd 15Wladimir J. van der Laan: p2p: Hardcoded seeds update pre-0.15 branch
80 2017-07-31 09:35:35 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/2a50b11586a2...df3a6f4ee4e2
81 2017-07-31 09:35:36 0|bitcoin-git|13bitcoin/06master 14df3a6f4 15Wladimir J. van der Laan: Merge #10948: p2p: Hardcoded seeds update pre-0.15 branch...
82 2017-07-31 09:36:15 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10948: p2p: Hardcoded seeds update pre-0.15 branch (06master...062017_07_seeds_update) 02https://github.com/bitcoin/bitcoin/pull/10948
83 2017-07-31 10:03:57 0|bitcoin-git|13bitcoin/06master 14bdd5543 15Alex Morcos: Clarify help message for -discardfee
84 2017-07-31 10:03:57 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/df3a6f4ee4e2...af563971fcbe
85 2017-07-31 10:03:58 0|bitcoin-git|13bitcoin/06master 14af56397 15Wladimir J. van der Laan: Merge #10949: Clarify help message for -discardfee...
86 2017-07-31 10:04:30 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10949: Clarify help message for -discardfee (06master...06betterhelp) 02https://github.com/bitcoin/bitcoin/pull/10949
87 2017-07-31 10:25:26 0|bitcoin-git|13bitcoin/06master 1442307c4 15Wladimir J. van der Laan: qt: Periodic translations update...
88 2017-07-31 10:25:26 0|bitcoin-git|[13bitcoin] 15laanwj pushed 1 new commit to 06master: 02https://github.com/bitcoin/bitcoin/commit/42307c4bf363d695c68a65ba7cbf8d6790079abf
89 2017-07-31 10:32:20 0|bitcoin-git|[13bitcoin] 15practicalswift opened pull request #10961: Improve readability of DecodeBase58Check(...) (06master...06DecodeBase58Check-cleanup) 02https://github.com/bitcoin/bitcoin/pull/10961
90 2017-07-31 15:05:28 0|bitcoin-git|[13bitcoin] 15practicalswift opened pull request #10963: [bench] Restore format state of cout after printing with std::fixed/setprecision (06master...06restore-format-state-of-cout) 02https://github.com/bitcoin/bitcoin/pull/10963
91 2017-07-31 15:25:00 0|bitcoin-git|[13bitcoin] 15practicalswift opened pull request #10964: Pass SendCoinsRecipient (208 bytes) and CConnman::Options (168 bytes) by reference (06master...06pass-big-parameters-by-reference) 02https://github.com/bitcoin/bitcoin/pull/10964
92 2017-07-31 16:05:16 0|BlueMatt|#8330 could get a merge, tbh, its a free few-10s-of-k memory win
93 2017-07-31 16:05:18 0|gribble|https://github.com/bitcoin/bitcoin/issues/8330 | Structure Packing Optimizations in C{,Mutable}Transaction by JeremyRubin ÷ Pull Request #8330 ÷ bitcoin/bitcoin ÷ GitHub
94 2017-07-31 17:51:25 0|bitcoin-git|[13bitcoin] 15practicalswift opened pull request #10965: Use the noexcept specifier (C++11) instead of deprecated throw() (06master...06noexcept) 02https://github.com/bitcoin/bitcoin/pull/10965
95 2017-07-31 18:50:38 0|achow101|whoever runs the doxygen site at dev.visucore.com needs to update their ssl cert. it expired this morning and I can't access it
96 2017-07-31 18:51:55 0|MarcoFalke|wumpus: ^
97 2017-07-31 18:53:28 0|MarcoFalke|It is issued by let's encrypt... I thought the point of that CA was that such updates are automatically done
98 2017-07-31 19:19:45 0|sipa|MarcoFalke: they have automated the procedure for renewal to almost nothing, but there is stipl some script you need to run (potentially in a cronjob)
99 2017-07-31 19:19:53 0|sipa|wumpus: ^
100 2017-07-31 21:40:09 0|bitcoin-git|[13bitcoin] 15promag opened pull request #10966: Add walletnotify functional test (06master...062017-07-walletnotify-functional-test) 02https://github.com/bitcoin/bitcoin/pull/10966