-
ooo123ooo1234[m]
<ooo123ooo1234[m]> "And are there any other reason..." <- here we go:
repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/319
-
ooo123ooo1234[m]
as expected
-
ooo123ooo1234[m]
"... simple mode" by implementing a trusted community node system" incompetent to solve problem with proper code -> add trusted nodes
-
ooo123ooo1234[m]
bs
-
ooo123ooo1234[m]
"Create a more thorough UI for warning users of GUI mode of high fees" instead of removing fee prediction unsuitable for decentralized untrusted env, bs
-
ooo123ooo1234[m]
"Draft a formal Levin/Cryptonote protocol specification" it's impossible without code reading which is already hard for some reason, unreachable goal
-
ooo123ooo1234[m]
"Continue to remove dead code" start to read not dead code would be better, but it's hard for some reason; bs
-
ooo123ooo1234[m]
"Misc developing / reviews" without code reading ? how is it possible ?
-
ooo123ooo1234[m]
bs
-
ooo123ooo1234[m]
"Unclear protocols cause bugs and choke out emerging projects which wish to incorporate into the ecosystem. " code written by people who don't read code leads such bugs
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
Users suffer from incompetent developers and they are using it as a leverage to do more bs work:
monero-project/monero #8298
-
ooo123ooo1234[m]
facepalm
-
ooo123ooo1234[m]
"All of these points do not directly affect the end-user experience but will ultimately improve the developer experience, reducing friction in the future, contributing to the long-term health of the codebase." incompetent developer is going to improve long-term health of the codebase without reading it; and state explicitly that end-user isn't the target
-
ooo123ooo1234[m]
facepalm
-
ooo123ooo1234[m]
"It's always a nice thing to have your code compile on all your targets." warnings != can't compile, the code can be compiled; as soon it can't be someone would just submit minimum patch to fix it
-
ooo123ooo1234[m]
instead of doing all that noise just for the case of work simulation
-
ooo123ooo1234[m]
"
monero-project/monero #8307" this is a removal of something that is already implemented and could be used
-
ooo123ooo1234[m]
and it was merged already
-
ooo123ooo1234[m]
And thin here "
monero-project/monero #8335" you tried to remove create_ec_ssl_certificate
-
ooo123ooo1234[m]
which not only could be used, but it's even better than RSA in some performance benchmarks
-
ooo123ooo1234[m]
"
monero-project/monero #8335#issuecomment-1128071304" and this comment was about stopping you from removing arbitrary things left and right
-
ooo123ooo1234[m]
"... @hyc suggested the idea while I was working on moving certain parts of the codebase to OpenSSL 3.0" and you wrapped it into this
-
ooo123ooo1234[m]
So it shows neither you, neither your PR reviewers, neither code merger have any knowledege about code base
-
ooo123ooo1234[m]
full chain is compromised
-
ooo123ooo1234[m]
facepalm
-
ooo123ooo1234[m]
And these removal balanced with "more placebo test, more trivial docs, relocation of code into separate files"
-
ooo123ooo1234[m]
Do you really believe it helps ?
-
ooo123ooo1234[m]
And also people who don't write code like plowsof are calling this as "talented dev"
-
ooo123ooo1234[m]
double facepalm
-
ooo123ooo1234[m]
and then UkoeHB asks me to be decent and don't ask critical questions in such environment
-
ooo123ooo1234[m]
Are you really sure that I'm wrong ?
-
admin_
Is master supposed to build currently?
-
ooo123ooo1234[m]
<admin_> "Is master supposed to build..." <- yes unless you have unexpected environment setup, but in that case you can use docker with depends
-
moneromooo
Yes. If it doens't, paste the error on paste.debian.net and the URL here.
-
moneromooo
Sometimes, it doesn't due to several patches being merged in one session, and they conflict a bit. Typically very easy to fix.
-
admin_
-
moneromooo
Blocked by captcha, but I'm building here, and I'll see if I can fix once I get to the error.
-
ooo123ooo1234[m]
-
admin_
-
admin_
Deleting captcha infested account :(
-
moneromooo
Odd one. What OS ?
-
moneromooo
And I've just built levin_notify just fine, without that error.
-
admin_
OS: Slackware x64 14.2
-
admin_
v0.17.3.2 builds just fine.
-
admin_
$ ./usr/bin/monerod --version
-
admin_
Monero 'Oxygen Orion' (v0.17.3.2-release)
-
moneromooo
Good data point.
-
moneromooo
The relevant change I see if the switch from byte_slice.
-
moneromooo
Looks a bit annoying to cherry pick though.
-
admin_
I'll wait for a tag or branch for v0.18 :)
-
moneromooo
Sorry, no quick fix here then. We might have to wait for a coder who has the problem.
-
sech1
They key problem is in "no known conversion for argument 2 from ‘const __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >’ to ‘std::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >}’"
-
sech1
aka the compiler couldn't convert const char* to char*
-
moneromooo
Actually, try to revert 801568d0c6dadfcf4992eaf7ed5565e5682ad248
-
sech1
I would try to rewrite "m_cache.erase(m_cache.begin(), result[0].second);" as "m_cache.erase(0, result[0].second - m_cache.begin());" or something like that
-
moneromooo
That patch says it "refactors" but there's no factoring I can see. Sigh.
-
ooo123ooo1234[m]
sech1: I would try to firstly identify the source of problem instead of doing random bit flipping
-
admin_
I'm on gcc 5.5.0 if that means anything.
-
moneromooo
I hate how people use "refactor" for "rewrite how I like" nowadays. Factoring is taking various similar/identical bits of code and merging them.
-
ooo123ooo1234[m]
moneromooo: +1
-
sech1
ooo123ooo1234[m] Did you read what I wrote? I found the source of problem - const char* vs char* incompatibility
-
sech1
older compiler doesn't have enough definitions in headers probably
-
sech1
oh yes, 801568d0c6dadfcf4992eaf7ed5565e5682ad248 is the culprit
-
sech1
-
sech1
"However, this in not necessary as of C++11, so I removed the conversion
-
sech1
altogether."
-
sech1
I'm not an C++ expert, is it true? gcc 5.5.0 does support C++11 though
-
ooo123ooo1234[m]
sech1: Don't underestimate, you're pretty C++ expert in current environment
-
sech1
"iterator erase( const_iterator first, const_iterator last );" is available since C++11, the compiler should've used that instance
-
moneromooo
Various compilers have bugs and "missing bits" in their standards compliance, especially when they're building up support so it wold not be super surprising.
-
sech1
converting first argument from iterator to const_iterator should've been done implicitly by the compiler
-
sech1
so better advice to admin_ would be to update the compiler
-
admin_
gcc 5.5.0 is the latest on Slackware 14.2 - I'll try on Slackware 15.0 (gcc 11.2.0), as soon as I have made install packages for the dependencies not available standard.
-
TrasherDK
Building with gcc 11.2.0 is a lot more noisy than gcc 5.5.0 - The amount of warnings are scary.
-
TrasherDK
Building master on Slackware 15, gcc 11.2.0 was successful, with a lot less warnings, compared to building release-17.
-
TrasherDK
Only missing dependency was unbound.
-
TrasherDK
$ ./usr/bin/monerod --version
-
TrasherDK
Monero 'Oxygen Orion' (v0.17.0.0-6e60919e6)
-
ooo123ooo1234[m]
<TrasherDK> "Building master on Slackware 15,..." <- Do you still have access to that env with gcc5 ?
-
ooo123ooo1234[m]
<sech1> "so better advice to admin_ would..." <- Not better since it isn't related to compiler version
-
sech1
Proof?
-
ooo123ooo1234[m]
<sech1> "ooo123ooo1234 Did you read..." <- It isn't the source of problem
-
ooo123ooo1234[m]
sech1: I have, I have, wait a bit
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
"
gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html" info about gcc configuration for versions starting from 5.0
-
sech1
So it is about compiler version
-
ooo123ooo1234[m]
"--with-default-libstdcxx-abi=gcc4-compatible" this flag during gcc package combpilation adds macro -D_GLIBCXX_USE_CXX11_ABI=0 which disable some features of c++11
-
ooo123ooo1234[m]
"--enable-libstdcxx-dual-abi" but this flag is enabled too, so it's possible to set manually that macro to default value 1
-
ooo123ooo1234[m]
and everything will work as expected
-
ooo123ooo1234[m]
including -std=c++11
-
ooo123ooo1234[m]
Btw, that macro breaks build for even the latest gcc version
-
sech1
In essence it's about C++11 support
-
ooo123ooo1234[m]
sech1: So you are not right
-
ooo123ooo1234[m]
sech1: In essense it's about knowledge of your environment
-
sech1
The code that triggered the error is C++11 compliant, so no need to fix it
-
ooo123ooo1234[m]
sech1: yes, that code is compatible with c++11
-
moneromooo
If it's not hard to support more compilers, why not. As long as it's not MSVC :D
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
<sech1> "In essence it's about C++11..." <- If this would be a competition then I would won.
-
sech1
Who cares, I care about the code more. If it's standard-compliant, fixing of any compilation errors in exotic environments should be done outside the code - by whoever is compiling it.
-
sech1
Or we'll end up with a million more #ifdefs and macros
-
sech1
Plus, it's C++11 we're talking about. It's been 11 years, we can just ignore non-compliant environments
-
selsta
we moved to c++14
-
ooo123ooo1234[m]
sech1: Look I've already suggested compilation via docker in the fist step - initial approximation from me
-
ooo123ooo1234[m]
your suggestion to change that line or revert that patch - further approximation by you
-
ooo123ooo1234[m]
and just to add 1 macro which is absolutely safe in that environment - the next approximation from me
-
sech1
My suggestion was made before I learned that the code was in fact correct
-
ooo123ooo1234[m]
In this particular case even precision of initial approximation would be enough
-
ooo123ooo1234[m]
But in everything related to decentral protocol I want as detailed as possible, since it's very important
-
selsta
now that we updated the macOS SDK we could even move to C++17 without issues but that's something for the future
-
ooo123ooo1234[m]
And in cryptography the devil in details, it's also very important
-
sech1
This is why we do audits for all cryptography implementations
-
selsta
lol rip multisig
-
ooo123ooo1234[m]
sech1: No. You can't audit code without learning it. If you don't believe me then let's setup competition with auditors
-
ooo123ooo1234[m]
I'm ready
-
ooo123ooo1234[m]
hahahaha
-
ooo123ooo1234[m]
Did you remeber what auditors find in randomx ?
-
ooo123ooo1234[m]
nothing
-
sech1
What? Auditors _do_ learn everything about the code they audit
-
sech1
it's part of their job
-
sech1
plus they are selected so that they already have necessary background knowledge
-
ooo123ooo1234[m]
sech1: They can learn everything within limited scope
-
ooo123ooo1234[m]
But they will never have time for learning full graph of code without spending on par with people who developed it
-
sech1
Auditors did find a number of issues in randomx
-
ooo123ooo1234[m]
sech1: Call at least 1 which is critical
-
sech1
does every audit _have_ to find something critical?
-
sech1
-
ooo123ooo1234[m]
sech1: I've read it at that time, no need to repeat
-
ooo123ooo1234[m]
sech1: Critical for the goal of project. This is the only thing everyone should optimize code for
-
ooo123ooo1234[m]
And it's reasonable to check whether code achieve the goal
-
sech1
We've been checking it for 2.5 years so far (with RandomX)
-
ooo123ooo1234[m]
sech1: I mean if nothing critical is found then work is done properly. And the goal of auditors is to check it.
-
ooo123ooo1234[m]
sech1: If there are a lot of resources to check not critical things too, then great. But it's not necessary
-
-
spirobel[m]
I am on the latest version of monero-javascript. I get this error recently when trying to create transactions
-
spirobel[m]
anyone has an idea where I could look next to troubleshoot?
-
moneromooo
You did not paste the error. I assume some picture that got filtered. Setting log level to 2 might help.
-
spirobel[m]
Uncaught (in promise) RuntimeError: Aborted(Assertion failed: R == dbg_R, at: /Users/woodser/git/monero-javascript/external/monero-cpp/external/monero-project/src/crypto/crypto.cpp,450,generate_tx_proof). Build with -sASSERTIONS for more info.
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
it looks like wrong secret key
-
ooo123ooo1234[m]
was provided
-
moneromooo
That looks like passing a keypair that's not consistent. Is there a stack trace ?
-
spirobel[m]
I took a look at this but I have no idea what it means to be honest. I fed it the typical info: "{accountIndex: 0
-
spirobel[m]
address: "5F2AGUyXjR3bvX38GaAsARaQ1exeBCVkUbPTfGssBfXQ5VPor4eA144YpUE7FNg5bLcpEuehNne23MkG8ZMCkPEegmCBqDwCTM3QChKCmS"
-
spirobel[m]
amount: "250000000000"
-
spirobel[m]
relay: false}"
-
moneromooo
Also, is this a view only wallet ?
-
spirobel[m]
This should be a normal wallet similar to the one I created before. creating transactions and relaying them worked before but it stopped working now. There are many degrees of freedom to debugging this. Because monero-javascript versions changed in between and I worked on other parts of the app in between.
-
spirobel[m]
I have a javascript stacktrace but its probably not of much help
-
spirobel[m]
All I know is it fails somewhere after createTx(config) is called
-
selsta
try git bisect
-
selsta
(if you use git)
-
woodser[m]
are you able to confirm the previous version of monero-javascript works with your current setup, to isolate the issue to the last version?
-
woodser[m]
if you're able to run the code from the terminal, you'll usually get a more informative stacktrace than the browser
-
spirobel[m]
before that I was on v0.6.4 and it also didnt work. It was the same error. I thought the wallet might be corrupted so I made a new wallet and got new money from the stagenet faucet. Everything worked. The transactions arrived the balance got added to the wallet but I can still not createTx without issue. In the beginning I thought its because I pass the txconfig from parsepaymenturi to createTx but with the object like above it also does
-
spirobel[m]
not work. I dont think its coming from updates in monero-javascript.
-
spirobel[m]
I am just looking for some inspiration 🙂
-
ooo123ooo1234[m]
spirobel[m]: 1 detailed log would be better than 1000 of words
-
moneromooo
Well, the secret key does not match the public key AFAICT. You could log both, and call secret_key_to_public_key in a temp program to see if they match.
-
moneromooo
I *think* secret to public is just mul G...
-
spirobel[m]
the secret key should be in the keysData of the wallet file, right?
-
moneromooo
What's interesting is where this is called, which is some C++.
-
moneromooo
Dunno. That's what following the stack trace will tell you.
-
moneromooo
Probably, though. Unless it's deduced on the fly from kes in the wallet file.
-
spirobel[m]
the issue is that I dont really have the stack trace and it would take a lot of time to get it. I am just calling a javascript lib after all. My guess is that the spend key got corrupted. The view key is also in keysdata, right? so it seems like some part of it got corrupted and openwallet still worked ...
-
spirobel[m]
so probably the spend key just got lost somewhere
-
UkoeHB
selsta: c++17 isn't fully supported yet by even clang (exotic features like pmr are unsupported)
-
moneromooo
You are calling... a very high level function, right ? If so, there's a lot of call stack betewen that and generate_tx_proof.
-
spirobel[m]
-
moneromooo
If you can repro without javascript (ie, load that wallet with monero-wallet-cli) then you can use gdb to break on the assert, then see the stack.
-
sech1
UkoeHB according to
en.cppreference.com/w/cpp/compiler_support indeed clang doesn't fully support C++17, but GCC does
-
selsta
-
selsta
>Clang 5 and later implement all the features of the ISO C++ 2017 standard.
-
UkoeHB
selsta: not the C++17 STL though
-
UkoeHB
although the missing bits don't seem too important
-
ooo123ooo1234[m]
<spirobel[m]> "the issue is that I dont..." <- "the issue is that I dont really have the stack trace" it must be fixable somehow for web development, otherwise web dev is absolute nightmare
-
ooo123ooo1234[m]
<UkoeHB> "selsta: c++17 isn't fully..." <- Reduction of target platforms makes writing code easier, not upgrade to some c++ standard
-
ooo123ooo1234[m]
Which isn't compatible with goal of this project otherwise we're targeting linux users with rolling distro
-
UkoeHB
-
spirobel[m]
Okay I just did this: Window.wallets['monerochans stash'].isViewOnly().then((x)=> console.log(x)) and it returned false. so it seems like it is opened as a normal wallet.
-
woodser[m]
-
ooo123ooo1234[m]
UkoeHB: Current p2p network is very centralized. Logs can't be used as a justification for random bits flipping in protocol
-
ooo123ooo1234[m]
part of p2p network with mining nodes which are directly related to number of reorgs
-
ooo123ooo1234[m]
other nodes have almost 0 impact on mining
-
woodser[m]
-
sech1
ooo123ooo1234[m] 10 blocks lock time was randomly chosen to begin with
-
sech1
and reorgs can be seen by every node, so all logs are relevant
-
ooo123ooo1234[m]
sech1: I mean it would be better to do more analysis for the next change even if prev approximation (10 blocks) was not analysed properly
-
sech1
so we need logs to have data about historical reorgs
-
sech1
I definitely remember seeing reorgs bigger than 5 blocks some time in 2019 or 2020
-
ooo123ooo1234[m]
sech1: I mean logs reflect current p2p network of miners (minexmr 40%, ...) which is closer to not ideal state of network
-
sech1
minexmr runs many nodes in different parts of the world though, so it's multiple miners from network's perspective
-
sech1
same for other big pools
-
ooo123ooo1234[m]
And since the goal is to make it more decentralized synchronization latency will be bigger, not smaller
-
sech1
time to propagate a block is a measurable metric
-
ooo123ooo1234[m]
sech1: This network is controlled by single in which case it's reasonable to connect all owned nodes to each other for better connectivity
-
sech1
if we figure out that it takes < 10 seconds (for example), we can estimate the probability of network mining 5 blocks in those 10 seconds
-
ooo123ooo1234[m]
If the same nodes would be run by untrusted parties, situation would be worse
-
ooo123ooo1234[m]
sech1: Yes, I'm sure that proper measurements will prove my point
-
sech1
I was talking about block propagation (re minexmr as single/multiple miners)
-
sech1
what really matters is block propagation to big pools' nodes
-
spirobel[m]
-
moneromooo
alt chains won't get propagated, so you'll only get an alt chain if you're connected to a node for which that chain is currently the main chain.
-
moneromooo
So you probably do not have all the alt chains in your log range.
-
sech1
right, and alt chains get created because the rest of the network doesn't propagate their blocks quick enough
-
sech1
my node is well connected
-
ooo123ooo1234[m]
sech1: Yes, but I went further and there are some edge cases that could be abused in general case
-
moneromooo
10 blocks is also a protection against someonw who'd keep a local chain without propagating, if they have 50% or close.
-
ooo123ooo1234[m]
So it requires some modelling of network, choosing parameters, and proving that it's secure within it
-
moneromooo
I'm not clear when it's worth "starting over" while you have more than 1 and fewer than 10 on your way to a 10 though.
-
merope
iirc there's a paper that looks into this kind of "selfish mining"
-
moneromooo
So you would never see those "temporarily withheld" chains now because there's no point (assuming 10 blocks is enoiugh of a deterrent).
-
moneromooo
But if the lock goes low enough that some people think it's worth trying, then you'd likely get the attempts made, and thus have an inordinate number of chains of that length compared to what you saw before.
-
merope
basically it's about the odds of you finding a block with a higher pow value before the rest of the network can find the next block on top of the chain tip
-
ooo123ooo1234[m]
merope: There are many projects with different consensus protocol architecture which can be used for the sake of learning
-
ooo123ooo1234[m]
not only that paper which is very narrow scope
-
moneromooo
High hash rate miners currently don't try to build on their blocks, and will update to the current head, resetting their "local height".
-
TrasherDK
@ooo123ooo1234 - Slackware 15 comes with gcc 11.2.0 - Slackware 14.2 comes with gcc 5.5.0
-
ooo123ooo1234[m]
moneromooo: +1
-
merope
-
sech1
moneromooo I don't see the incentive for big miners to do reorgs specifically bigger than the lock time. They could just do a reorg of any size to orphan other blocks and get all rewards to themselves.
-
merope
(also available on moneroresearch.info
-
merope
)
-
merope
sech1 but that is effectively a 51% attack, no?
-
moneromooo
It allows them to render any tx spending early (right after 10 blocks) invalid. One of those txes might be one of theirs.
-
sech1
ah, so double spending
-
sech1
then we need to calculate probability that a 40% miner can build an N-block chain faster than the rest of the network
-
moneromooo
I suppose that should really be "more than the number of confirmations your recipient uses" though.
-
moneromooo
Which might not be 10.
-
sech1
Kraken has 15 confirmations for deposits
-
moneromooo
In any case, it allows for invalidating random txes which either spend asap or randomly use an extremely young 10 blck fake out. Less annoying though.
-
sech1
xmr.to accepted even 0-conf transactions up to 0.1 BTC equivalent
-
ooo123ooo1234[m]
<TrasherDK> "@ooo123ooo1234 - Slackware 15..." <- monero master should be compilable on slackware 14.2 with -DCMAKE_CXX_FLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"; if it still makes sense you can test
-
ooo123ooo1234[m]
sech1: Any such number has corresponding probability of double spending.
-
sech1
XMR merchants can set their own confirmation limits which can be higher (Kraken as example)
-
sech1
it's all about acceptable level of risk for each XMR recipient
-
ooo123ooo1234[m]
sech1: Yes, but higher confirmation limit means more troubles for users
-
ooo123ooo1234[m]
And the only way to allow safely small confirmation limit is to learn how to calculate risk proprely -> analyse protcol -> improve it -> objectively smaller risk in the worst case
-
TrasherDK
Both gcc 5.5.0 and 11.2.0 support c++ 11,14,17
-
ooo123ooo1234[m]
sech1: There are of course limitations added by hardware of network participants, but there is still huge room for protocol improvement
-
ooo123ooo1234[m]
TrasherDK: Did you check link about gcc dual-abi ?
-
gingeropolous
UkoeHB, noncesense lab folks should have info on altchains. ping neptune isthmus
-
TrasherDK
<ooo123ooo1234> Yes, adding the flag didn't help.
-
TrasherDK
cmake \
-
TrasherDK
-DBOOST_IGNORE_SYSTEM_PATHS=OFF \
-
TrasherDK
-DCMAKE_BUILD_TYPE=static \
-
TrasherDK
-DCMAKE_CXX_FLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
-
ooo123ooo1234[m]
TrasherDK: Oh, sorry. IT must be 1
-
TrasherDK
:)
-
ooo123ooo1234[m]
typo
-
-
selsta
HenryHollingwort: where did you download monero?
-
HenryHollingwort
hi everyone, i tried to compile master under mysys2 following the instructions and the build succeeded (seemingly) but when I go to run the binaries I receive the following error. Should that dependency have been statically linked?
-
-
HenryHollingwort
I cloned master directly from github
-
HenryHollingwort
(using git cli)
-
-
selsta
did you make sure to use the mingw64 msys2 shell?
-
selsta
don't use the git shell
-
-
selsta
what did you enter for make?
-
HenryHollingwort
that shell is opened with the following command: "C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64",
-
HenryHollingwort
make release-static-win64
-
-
HenryHollingwort
it seems to find the libunbound library :/
-
selsta
we removed the unbound submodule in master, might related
-
-
TrasherDK
<ooo123ooo1234 Okay, I survived the 74% crash from before, but got a new one
paste.debian.net/1241289
-
selsta
HenryHollingwort: did you start monerod from explorer or msys2?
-
HenryHollingwort
from explorer
-
selsta
check if starting from msys2 works
-
HenryHollingwort
yep that works
-
-
selsta
don't know a fix yet, have to try a bit around myself
-
HenryHollingwort
should it work from explorer? I assume that mysys2 adds some stuff to PATH and then the dll is dynamically linked so it works from there? idk i don't know much about c/c++ building and native stuff haha
-
selsta
it should work from explorer
-
selsta
at least when you do release-static
-
HenryHollingwort
yeah that makes sense
-
HenryHollingwort
maybe a dumb question, but should running the current release in --testnet work (well without me and whoever is running the old version 'forking off')? The reason I ask was because I was working on the monero bounties bot and all my transactions seemed to not go through and then I remembered reading a post of reddit about the testnet having forked to master to test the upcoming release. When I realised that I assumed it was
-
HenryHollingwort
probably why my daemon seemed to be acting funny
-
selsta
some cmake changes required probably, will take a look later
-
selsta
testnet requires master for now
-
selsta
release-0.17 will be on the wrong chain
-
HenryHollingwort
great thanks, I thought that was the case
-
TrasherDK
And my testnet daemon is down until I can build again :(
-
selsta
HenryHollingwort: can you tell me the path on Windows for monerod.exe?
-
HenryHollingwort
C:\msys64\home\Henry\monero\build\MINGW64_NT-10.0-22000\master\release\bin
-
selsta
ty
-
sech1
I remember having similar .dll issues when compiling on Windows, and I somehow fixed it. I'll check in the evening when I'm back home.
-
HenryHollingwort
I know nothing but just hand a little look around trying to see if anything obvious shows up and
-
HenryHollingwort
github.com/monero-project/monero/blob/master/CMakeLists.txt#L1049 thre is a "-static" flag which the comment says will make the build 'as close to fully-static as we get' which makes me think that the '-static' should show up in the command that ultimately gets executed? but I don't see it in the makefile under /release (the build dir)
-
HenryHollingwort
release-static-win64:
-
HenryHollingwort
mkdir -p $(builddir)/release
-
HenryHollingwort
cd $(builddir)/release && cmake -G "MSYS Makefiles" -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="win-x64" -D CMAKE_TOOLCHAIN_FILE=$(topdir)/cmake/64-bit-toolchain.cmake -D MSYS2_FOLDER=$(shell cd ${MINGW_PREFIX}/.. && pwd -W) $(topdir) && $(MAKE)
-
sech1
-D STATIC=ON should do the magic
-
HenryHollingwort
unless the -static was what caused STATIC=ON i dunno :\ like I said I really have no clue about this kind of stuff
-
selsta
the makefile calls cmake which again calls make
-
sech1
-
sech1
it sets "-static" there
-
HenryHollingwort
make first time creates that makefile in /release, that then calls make again but at that stage STATIC is set so it will add the -static flag during the actual compilation
-
HenryHollingwort
got it thanks
-
HenryHollingwort
i've got to head to bed, but let me know if I can help with anything later :) even if it's just testing it again locally
-
hyc
fyi, my linode monerod has ~5 years worth of logs, 1082 reorgs. all but 4 had size 2, those 4 had size 3.
-
selsta
libunbound-8.dll => /mingw64/bin/libunbound-8.dll (0x7ffba0860000)
-
ooo123ooo1234[m]
<TrasherDK> "<ooo123ooo1234 Okay, I survived..." <- "
ftpmirror.infania.net/slackware/sla…2/patches/source/gcc/gcc.SlackBuild", "# which will then require rebuilding all C++ libraries. That is, if there's any benefit." boost was compiled with old abi therefore linking failed. Then it's the case from the comment from slackware gcc package. Upgrade to slackware 15 is easier to do than recompiling all monero deps
-
ooo123ooo1234[m]
with new abi within 14.2. So that refactoring made incompatible your env with master.
-
hyc
Yet another reason C++ sucks, compiler-version-dependent ABI...
-
ooo123ooo1234[m]
hyc: yeah, yeah. I remember you were talking about it at least once here.
-
hyc
yeah, definitely not a new topic
-
sech1
-
hyc
meh. the arguments in that writeup are mostly immaterial, don't affect the majority of C or non-C progreammers
-
hyc
because in C only the language implementers need to know the fine details of the ABI
-
hyc
in C nobody else needs to be aware of them. in C++ most people don't know the details but they bump into the problems all the time.
-
hyc
he bitches about __int128 as an example. which is such an edge case on its own, nothing in reality uses inegers with 128 bits of dynamic range.
-
hyc
but mostly, "C ABI" is wrong perspective. The "ABI" is an assembly language calling convention. C was a user-friendly frontend to assembly language.
-
hyc
Language standards committees have lost sight of this fact.
-
hyc
his diatribe about parsing C header files is a misrepresentation, most of the complexity of definitions and includes is handled by the C preprocessor, not the compiler. the preprocessor isn't even a C-syntax-aware program. it's just a text processor like m4.\
-
sech1
__int128 is a popular GCC extension. Many scientific programs use it (those which don't need more than 128 bits). Even p2pool uses it for 128:64 division and 64x64->128 multiplication
-
hyc
those uses are self-contained tho, so you never bump into the ABI boundary
-
ooo123ooo1234[m]
sech1, did you check thesis of that author ?
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
I'm reading 4.2 Paranoia
-
ooo123ooo1234[m]
now
-
ooo123ooo1234[m]
"Paranoid solutions give the compiler and programmer rich information to optimize the program with. " hmm, rust lang is for paranoid solutions
-
ooo123ooo1234[m]
If I would have unhealthy paranoia then I would love probably. But It looks like a waste of time for me to add all those specifiers with the hope to avoid memory unsafety.
-
plowsof[m]
reg Jeffs ccs proposal - i have edited / disappeared into the hedge like homer'd my comment. We need actual developers to read it and offer opinions.. we also try to discuss ccs ideas in community meetings (not this sunday , but next) x
-
ooo123ooo1234[m]
"... Control is absolutely the greatest strength of naive interfaces. They empower excellent programmers to produce excellent code where it matters." it looks like exactly the case of lmdb or any other low level staff
-
ooo123ooo1234[m]
e.g. firmware
-
ooo123ooo1234[m]
s/staff/stuff/
-
r4v3r23[m]
is there a way to set a password for specific accounts within a wallet?
-
selsta
no
-
woodser[m]
<spirobel[m]> "> <@woodser:haveno.network..." <- spirobel:... (full message at
libera.ems.host/_matrix/media/r0/do…087c79decb82a704b2b24b368f43b7d10ac)
-
sech1
selsta Monero binaries compiled in mingw64 have dependency on libunbound-8.dll on my system too
-
selsta
yes, I reproduced it on CI, but didn't find a fix yet
-
sech1
As far as I can see, libunbound package in mingw installs only dll and headers
-
selsta
I saw .dll.a
-
hyc
that's what we get for preferring pre-installed libunbound to our vendored source
-
hyc
dll.a is just an import library for a dll
-
sech1
.dll.a is just declarations for dll functions
-
sech1
yes, import library
-
selsta
hyc: the vendored one was extremely outdated and full of (security) bugs
-
hyc
why didn't we just update it then?
-
sech1
I solved this problem by just adding the path to libunbound-8.dll to the system search path and successfully forgot about it :D
-
selsta
-
hyc
this is also the reason issue #8322 exists
-
sech1
gitian builds don't have this problem
-
hyc
so main problem is supporting autoconf from cmake?
-
sech1
(with the dll)
-
selsta
i mean the reason why we had a vendored unbound in the first place was because we applied our own security patches
-
hyc
gitian builds libunbound explicitly
-
selsta
but our own unbound become outdated and unmaintained
-
hyc
yeah. I recall we had that wonderful problem where unbound was writing errmsgs unconditionally to descripter 2 and overwriting the blockchain DB
-
selsta
and I tried autoconf from cmake, but it was a mess getting it supported for all OS and cross compiling
-
selsta
so I removed it completely, and everyone who wants to compile static bins without depends should deal with it themselves
-
hyc
heh, ok
-
hyc
I guess since we have depends working we can ignore it
-
selsta
manually compiling static unbound should be enough I think
-
hyc
yes
-
hyc
without any extra frills. like macosx's libunbound using libnghttp2
-
selsta
and setting UNBOUND_ROOT
-
selsta
sech1: do you know why some mingw packages contain static libs and some don't?
-
sech1
ask whoever made a specific package. I guess it's just how it is in open source
-
selsta
true :P
-
sech1
so the quick fix for me would be to compile latest static libunbound locally and make cmake find it?
-
hyc
yep
-
selsta
you might also have to compile expat, not sure
-
hyc
the lowest effort would prob be to cd contrib/depends; make HOST=x86_64-windows-pc (or whatever) unbound
-
hyc
then copy the resulting static libs to your windows box
-
selsta
-
selsta
which was copied from depends
-
hyc
HOSTS="i686-w64-mingw32 x86_64-w64-mingw32"
-
hyc
that would ensure you get one built correctly anyway
-
selsta
ooo123ooo1234[m]: can you help me with
paste.debian.net/hidden/29afb4ff ? I have this plus the binary, I want to find the code part where the segfault occurred. Do I have to use addr2line or something else?
-
selsta
it's the first segfault in many months so I'm curious
-
moneromooo
ip is the place you want. I expect the first number is the address, though from the wording I'd expect it to be ip.
-
moneromooo
addr2line should work from that ip if you're lucky.
-
moneromooo
(ie, if built with enough debug info)
-
moneromooo
ip/eip might point to the insn right after the one that borked, I can never remember.
-
moneromooo
If it doesn't work, you theoretically could rebuild with all debug info, without changing other flags, and grep the "Code" bitstring to find the new address the "f3" corresponds to. A bit of a pain in the arse though.
-
moneromooo
And that's assuming extra debug info doesn't change the emitted code.
-
moneromooo
You did check if there's a core ? It'd simplify a lot :D
-
selsta
ulimit was unfortunately set to 0
-
selsta
it did say core dumped but i did not find anything
-
ooo123ooo1234[m]
<selsta> "ooo123ooo1234: can you help me..." <- the binary is unavailale
-
selsta
-
jeffro256[m]
Anyone else getting "Exception: boost::wrapexcept<boost::bad_weak_ptr>" with the new testnet code ?
-
selsta
i didn't get it yet
-
selsta
full log?
-
jeffro256[m]
I'll post an issue on GH
-
jeffro256[m]
-
jeffro256[m]
Bad_weak_ptr sounds like it could be related to that segfault issue
-
selsta
my segfault wasn't testnet
-
selsta
these uncaught exceptions show up from time to time, don't know about that specific one
-
jeffro256[m]
Okay it's not just testnet, it shows up on all 3 networks for me
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
-
selsta
hmmmm thanks
-
selsta
also ping hyc ^
-
ooo123ooo1234[m]
found interesting repo dedicated to lmdb
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
probably all of them already fixed in upstream since 2019
-
ooo123ooo1234[m]
<jeffro256[m]> "Bad_weak_ptr sounds like it..." <- "
monero-project/monero #8341", "It occurs every ~15 seconds while running monerod, no matter the network:" Open debugger and check what's going on there
-
ooo123ooo1234[m]
if it's so easy to reproduce
-
ooo123ooo1234[m]
<jeffro256[m]> "Bad_weak_ptr sounds like it..." <- It isn't related
-
selsta
I checked my logs and didn't see it but I'm not sure if depends binaries even print stack traces to logs
-
selsta
-
selsta
ok, should print them
-
ooo123ooo1234[m]
<jeffro256[m]> "Anyone else getting "Exception..." <- Did you check history "
github.com/monero-project/monero/issues?q=is%3Aissue+bad_weak_ptr+" ?
-
selsta
-
jeffro256[m]
> > <@jeffro256:monero.social> Anyone else getting "Exception: boost::wrapexcept<boost::bad_weak_ptr>" with the new testnet code ?
-
jeffro256[m]
>
-
jeffro256[m]
-
jeffro256[m]
Only for open issues, will take a look
-
jeffro256[m]
Doesn't seem like they got too far
-
jeffro256[m]
There's a ton of boost::shared_ptr 's in the tcp server code so it could be a lot of things
-
selsta
monero-project/monero #6473 has some people reporting the same
-
selsta
but should be fine to keep your issue open jeffro256[m] as they are all closed
-
jeffro256[m]
moneromooo The first trace is not at all similar to my trace, so it's probably unrelated. The second trace looks a lot more similar but moneromooo says its fixed, which it appears not to be
-
jeffro256[m]
* @selsta
-
jeffro256[m]
It appears to originate from safe_shared_from_this() in abstract_tcp_server2.inl