log☇︎
228600+ entries in 0.131s
davout: the "let program select outputs to spend" half works half of the time, like you said "knapsack problem"
davout: in the same way a gun is usable "naked", just don't point it to your face!
asciilifeform: in favour of something yet to be written.
asciilifeform: unless i misunderstand, you suggested removing functionality that ~was~ there in 2009
mod6: <+davout> mod6: i think it would actually be the least painful part to test << anyway, i hope so. im sure there will be more discussion in coming months.
asciilifeform: before. several times.
asciilifeform: we had this 'lose the wallet!' thread.
mod6: <+jurov> http://btc.yt/lxr/satoshi/source/src?v=makefiles << mod6 asciilifeform ben_vulpes << cool! thanks
asciilifeform: if trb is not usable NAKED, it ain't trb !
davout: i didn't say it had to come *with* trb
asciilifeform: so, now what, the thing drags perl along with it into eternity? python ?
davout: script it on top of trb, don't integrate it directly in there is what I think is the correct solution
asciilifeform: and error in ~fired~ tx is intolerable.
asciilifeform: if i have to do that.
asciilifeform: but there is no reason i ought to have to enter 8 decimal points BY FUCKING HAND 10,001 times to make a tx.
davout: i content that these should be the ~only~ knobs at trb level
davout: asciilifeform: my opinion is that the system doesn't even have any business *attempting* to select which outputs should be spent, let the user plug whichever system he wants on top of the low level "raw tx from arbitrary inputs" tool set
mod6: i read 'errors are tolerated'. and freaked.
asciilifeform: but the probability of 'txtron suggests 'send all money to karpeles' or 'send a million btc as fee' ought to be 0.
asciilifeform: mod6: 'create a tx' is np-complete (knapsack problem) so you can potentially end up with strange solutions. user MUST approve before firing.
davout: asciilifeform: i'm simply after the functionality of crafting raw txes from an arbitrary of outputs that *I* select, not wallet functionality in the sense of letting the system work out the details of "send X bitcoin to Y address"
mod6: <+asciilifeform> mod6: error can be tolerated in ~autopilot that user can disable at all times~, i.e. it ~recommends~ a tx, user can review before firing << umm, i dunno about this.
mod6: anyway, im just working through the beginning stages here. so im certainly not an expert on rawtxns
asciilifeform: mod6: what means, in this case, 'create' ?
ben_vulpes: asciilifeform: he's still digesting "how to cut the wallet", let him ask for the things for which he's going to ask
mod6: and some other tools like 'listunspent' etc.
mod6: im not fixing the wallet, in this case, ftr. i'm just putting in the ability to create and send a raw tx.
asciilifeform: ben_vulpes: as i understand, davout was asking for sane-wallet, rather than merely raw-tx-hopper
asciilifeform: mod6: error can be tolerated in ~autopilot that user can disable at all times~, i.e. it ~recommends~ a tx, user can review before firing
mod6: we'll be discussing more in the near future i do suspect, Sir.
mod6: anyway! glad to have the help, and the experience from someone who uses this end of bitcoin quite a bit.
mod6: no room for error here, lest someone sends all their coins out as a large fee, or some crazyness.
asciilifeform: instead of the 'accounts' and 'wallets' idiocy
asciilifeform: as in, y'know, the thing that wallet ~ought to have done from day 1~
ben_vulpes: davout's a rubyist, don't expect rigor in terminology from him mod6 :P
mod6: i think over all it's a decent approach. have some pre-crafted transactions, and see how it goes. this is minimum. i wanna make sure we don't just capture "happy-path" but, all edge cases too.
asciilifeform: ben_vulpes: this won't , as i understand, help him, he wants to ~craft~ tx, not merely broadcast-raw
mod6: those are not really unit tests, those are functional tests. but yeah.
asciilifeform: http://btcbase.org/log/2016-12-30#1593869 << pretty neat, ty jurov . ☝︎
davout: yeah, that's something that seems to me pretty easily testable in a "isolated unit tests" way
ben_vulpes: create and sign at least may be testable via the boost testing framework that's already in place
davout: try to craft a bunch of transactions, sign them, it either works or doesn't work, testing this functionality doesn't seem to depend on a lot of external, hard to reproduce, state
ben_vulpes: mod6: "test[ing] this" is actually how i got on the alpha centauri miner quest
mod6: really? why do you think so?
davout: mod6: i think it would actually be the least painful part to test
mod6: and am going to try to build tools, if needed, to help test this.
mod6: well, ... feel free. but i think the coding part aside, which isn't going to be horribru, since a lot of it is backport anyway. but the testing is gonna be gnarly.
davout: pretty much the only thing i personally need to be able to rm -rf all traces of prb from my boxen
davout: yeah, ben_vulpes told me in your very chan, if i can help it i'd be happy to, it does sound like a pretty good starting point for me to hack on trb
mod6: well, was, anyway. once the new changes for V are complete/tested/released, will be back on it.
davout: hence my previous questions about the state of this particular functionality in trb
davout: what do you mean? i create transactions from arbitrary unspent outputs, sign them, and broadcast them
davout: ok, ~/blox/ass_to_mouth.rb is working, we'll see how that goes
asciilifeform: but i saw no reason not to give it a red flip cover.
asciilifeform: eatblock is a specialist tool
davout: asciilifeform: you mean it files rough edges off every single time?
a111: Logged on 2016-12-30 19:04 davout: asciilifeform: why is there a specific -caneat flag? is there something specifically dangerous about eating blocks?
asciilifeform: http://btcbase.org/log/2016-12-30#1593841 << it's part of the not-being-prb business, not to foist changes that have ~any~ potential sharp edges on operator ☝︎
ben_vulpes: because it has to keep track of the inputs for all of the addresses it made ten minutes ago
davout: also i'm getting a "Flushing wallet.dat" after each eatblock, eats ~50ms each time
jurov: i see, ty
mod6: jurov: in that howto, you'll find a series of both offline steps, and online steps. you can choose your own adventure.
ben_vulpes: jurov: have you run msft updater today? :P
davout: asciilifeform: why is there a specific -caneat flag? is there something specifically dangerous about eating blocks? ☟︎
jurov: ok, i'll rather start again from the beginning. what's the newest v.pl version?
jurov: ben_vulpes et al.: how you want to present this in lxr? or are there more steps?
a111: Logged on 2016-12-29 22:54 ben_vulpes: jurov: would you be so kind as to update the lxr with makefiles.vpatch ?
jurov: http://btcbase.org/log/2016-12-29#1592846 << I have synced and pressed makefiles.vpatch, but there's no C code, only makefiles ☝︎
mircea_popescu: trinque the idea isn't without merit.
mircea_popescu: well, dunno about "than anyone else" in that very general form, but certainly more than you'd expect or he'd have hoped.
phf: for the republic, not for hitler. he lacks that certain "good german" spirit, ja
mircea_popescu: he's written more webfacing stuff than ~everyone else. he has teh red army spirit.
phf: true, but alf also "won't touch the web"
mircea_popescu: that's what the web is for.
trinque: and forgo the transactional write of the form
mircea_popescu: of course random dorks go on about how no such labs will go out of business through the unlikely avenue of delivering what is clearing 1mn/year worth of services out of <1k/month, but hey.
trinque: then from there you can optimize and say "I don't care if one guy gets stale form, need moar speed"
mircea_popescu: phf yes, but a fine approach to answering "what is the basis of alf's value as an engineer" is pointing out that he runs phuctor on the phuctor box, which fails to cost 5k/mo.
trinque: consider the case where a form is generated based on db state, and the validity of that form depends on db state
trinque: the reason I flip the process and say that db writes static www, rather than www reads db, is that the write of www matter can be transactional with db state update.
mircea_popescu: jurov trilema db never crashed, in 9+ years and however many quintillion queries.
mircea_popescu: im not sure i follow this one ?
phf: well, it's also reason why the kind of stuff you could run on a beefy dreamhost now requires $5k/mo amazon rds instance
mircea_popescu: to go into trinque 's mullings about the meaning of things and items.
mircea_popescu: which is just about what the web MEANS. www = "that data exploration mechanism which ocasionally puts out old data, of an unspecified age but younger than x".
a111: Logged on 2016-12-30 17:56 mircea_popescu: jurov no ; but i am fine with wwwtron ocasionally reading a field that has meanwhile been updated, and giving old, of an unspecified age but less than x time.
mircea_popescu: there's a reason mysql owns the web, and that has to do with this very specific www-powered profile described above, http://btcbase.org/log/2016-12-30#1593729 ☝︎
phf: dirty read would definitely solve me a lot of headache now, though not enough motivation to switch to mysql. not so much when i worked on oracle for a g-sib where you want acid, so instead "avoid bad writes"
mircea_popescu: anyway. this has been, at least to me, an informative excursion.
asciilifeform: well yes, you get cut open by the butcher you have, not the surgeon you wish you had
mircea_popescu: you get what there is.
trinque: sure, but the tool for vast piles of relational time series data looks very much like relational database, but not for idiots.
asciilifeform: sql is exactly the infamous vice-grip: 'the wrong tool for every job'
asciilifeform: i pissed on 'db' concept as a student, and i piss today: custom data structure for each job! the year ~is~ 1972.
mircea_popescu: this point has some merit, but we're reading "arbitrary" stuff not arbitrary stuff, it's addressed to the db abstraction which is allowed to handle it, not directly to pointers.
asciilifeform: hence the slow methodical spray of petrol
jurov: my point is, if you want to read arbitrary stuff at arbitrary time, you must *carefully design* for it. you don;t get it for free on c machine
jurov: because the db was in the middle of balancing some datastructure?
mircea_popescu: dude the fact that every other girl in your class is a slut isn't going to feed you or your baby.
a111: Logged on 2016-12-30 17:49 jurov: mircea_popescu: you would trade speed for occassionally getting garbage when you call read()?