domob wrote:Update: It seems to work now when I explicitly addnode my server (I removed its maxconnections restriction). I can download the blockchain just fine but stay at one connection. So possibly there are some problems with peer discovery. Also, it doesn't work with "--verify FULL --validate FULL" so far (I get a segfault), and I presume that we want these options for a full node (although I have no idea what the details are behind other settings here).
Same behavior: addnode seems to behave like --connect (limit to 1 connection, for now), but after a restart, still with addnode, I now have several connections.
"--validate FULL" segfault for all chains I tested (and I don't know how to enable symbols in the binaries with ./configure & make to find more details with gdb except that it segfaults in BlockChain::validation_depth).
domob wrote:EDIT: Now it seems to work just fine without addnode and I get other connections as well. Maybe because already discovered peers (from my addnode attempt) are cached and now tried right away? At least it seems as if I got a running node now. Also, it creates a SQLite3 database of the blockchain that also includes what looks like a name_history table. I feel fairly confident that it would be a simple matter to implement name_list, name_history and name_show based on that if it is not yet available inside libcoin already.
Yes, those 3 rpc commands should be easy to add (name_filter too, if sqlite supports regexps).
name_list will require to search in the wallet.
name_new, name_firstupdate and name_update will require a bit more work and integration with libcoin code to create custom tx.
domob wrote:Maybe I'll try to set up a wallet and transfer coins to it and back later to check out whether that works fully or not. getwork also yields some results (but I have no idea whether they are as they should be), and according to a statement from Michael, getauxwork would not be too hard to add.
Should we start a new testnet and work on this new chain ?
domob wrote:I'm not sure what the "rebase" then actually would be ... just extending libcoin itself so that libcoind can be used as a full namecoin replacement (or such that only a trivial main program can replace namecoind but everything happens inside of libcoin already), or using libcoin as-is and adding the missing features (name querying?) in a (still presumably relatively simple and small) main program? Anything else I'm missing at the moment?
I guess it would be more easy to integrate name_new/update_list, etc in libcoind than having an external software.
For name_scan/filter, the requests can be done externally, on the DB. But having them integrated would simplify usage too, and not add a lot of complex code.
In any case, it will allow lighter block explorer (most data will be in the existing sqlite DB. You can also enable the search by address with --searchable=1, even less job for the explorer)
There will be some work to :
- manage name tx (edit: it seems name values are already decoded and stored, maybe less work required than I initially thought)
- not count locked coins in all balances and rpc calls related to amounts (or to avoid modifying a lot of code, maybe add a getlockedcoins rpc call and leave other rpc calls as they are). But, in all cases, when creating a normal tx, locked coins should not be used (this must be checked).
- implement getauxwork
- find bitcoin features & patches that should not be used in namecoin
- add support for namecoin testnet blockchain
domob wrote:When I've done a few more tests, I'll try to contact Michael about specific things to get his opinion and decide how to go further.