Git Product home page Git Product logo

namecoin-legacy's Introduction

Namecoin

Namecoin is a decentralized key/value registration and transfer system based on Bitcoin technology (a decentralized cryptocurrency).

It can be used for multiple purposes, for example a secure and censorship resistant replacement for DNS.

Ownership of a name is based on ownership of a coin, which is in turn based on public key cryptography. The namecoin network reaches consensus every few minutes as to which names have been reserved or updated.

There is a FAQ.md to answer some general questions.

See http://namecoin.info or http://dot-bit.org for more information.

Technical

The Bitcoin protocol is augmented with namecoin operations, to reserve, register and update names. In addition to DNS like entries, arbitrary name/value pairs are allowed and multiple namespaces will be available. This will include a personal handle namespace mapping handles to public keys and personal address data.

The protocol differences from bitcoin include:

  • Different blockchain, port, IRC bootstrap and message header
  • New transaction types: new, first-update, update
  • Validation on the new transaction types
  • RPC calls for managing names
  • Network fees to slow down the initial rush

Please read DESIGN-namecoind.md for details.

BUILDING

Building is supported on Linux, Windows and Mac. For building on windows you can use the scripts in ./contrib/easywinbuilder. Find build instructions on https://wiki.namecoin.info/index.php?title=Build_Namecoin_From_Source.

namecoin-legacy's People

Contributors

coblee avatar codler avatar cryptopartyfr avatar digital-dreamer avatar domob1812 avatar dooglus avatar doublec avatar ericj2190 avatar gavinandresen avatar itoffshore avatar jordanlewis avatar jrmithdobbs avatar khalahan avatar laanwj avatar maxpwr avatar mgiuca avatar mhanne avatar namecoin-qt avatar namecoinq avatar nelisky avatar non-github-bitcoin avatar olgasanko avatar phelixbtc avatar phelixnmc avatar ryancdotorg avatar shea256 avatar sipa avatar taoeffect avatar vinced avatar wizeman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

namecoin-legacy's Issues

Namecoind web-GUI

Hi,

Namecoind already provides a HTTP(S)-based RPC interface. To simplify maintanance and usage I suggest to add some HTML5/Javascript code for a web interface directly served by namecoind via HTTPS.

Post OS X builds

I believe that Cassini has working binaries of namecoind and Namecoin-QT that are compatible with the latest hard-fork.

I believe that all we need to do is have him sign off on the binaries/hash of the binaries using his PGP key.

After that, do we post a "new" release on Github or should I just move this ticket to namecoin.org?

Compiling on OS X using brew

I am trying to compile namecoind on OS X 10.9 and I get the following error:

$ make -f makefile.mingw 
g++ -c  -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter  -D_MT -DNOPCH -DFOURWAYSSE2 -DUSE_SSL  -DBOOST_THREAD_USE_LIB -D__NO_SYSTEM_INCLUDES -D__WXMSW__ -I../libs/openssl-1.0.1e/include -I../libs/db-4.7.25.NC/build_unix -I../libs/boost_1_50_0 -o obj/nogui/auxpow.o auxpow.cpp
In file included from auxpow.cpp:4:
./headers.h:47:10: fatal error: 'db_cxx.h' file not found
#include <db_cxx.h>
         ^
1 error generated.
make: *** [obj/nogui/auxpow.o] Error 1

I installed the dependencies like so:
brew install autoconf automake berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt

The install for berkley DB gave me this warning:

==> ../dist/configure --disable-debug --prefix=/usr/local/Cellar/berkeley-db4/4.
==> make install
==> Caveats
This formula is keg-only, so it was not symlinked into /usr/local.

BDB 4.8.30 is provided for software that doesn't compile against newer versions.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/berkeley-db4/lib
    CPPFLAGS: -I/usr/local/opt/berkeley-db4/include

==> Summary
/usr/local/Cellar/berkeley-db4/4.8.30: 4591 files, 88M, built in 105 seconds

So I tried exporting those as environment variables beforehand like so:

$ export LDFLAGS="-L/usr/local/opt/berkeley-db4/lib"
$ export CPPFLAGS="-I/usr/local/opt/berkeley-db4/include"

Any ideas what is going wrong?

RFE integrated .bit dns server

The client needs to have the ability to enable a .bit dns server by enabling a feature, either in a config file or a command line/rpc request.

Plugin interface

A plugin interface allows to extend the functionality of namecoind by other developers with native speed and without an exploding code base. Examples are web-interfaces, DNS resolvers or SIP registrars for VoIP. So I suggest to add a plugin interface to namecoind which plugins can use to access the blockchain and run operations on the blockchain (e.g. name update). To ensure safety all plugins should be able to request information from the blockchain but there should be a rights management for all actions like update, renew, ...

Rename Master Branch To L

...to legacy or master_legacy. I don't see any advantage to it any more and it is confusing that the master branch is completely outdated.

Migrate Wiki

https://github.com/namecoin/wiki/wiki

Here is the situation: The wiki was overflowing with spam and Khal moved it to Github. I created a list of the top articles and Ademan used that list as a seed to spider the old wiki and then pushed it to github.com/namecoin/wiki/. Sadly, the Github wiki does not allow for per-page permission settings, meaning that we can't (for example) lock down pages which link to binary downloads or NMC/BTC donation addresses. So we will have to push things out to a new Mediawiki install after we get the Namecoin hosting sorted out (~1-2 weeks).

However, the wiki needed an overhaul anyway. There were many old TODO pages, forgotten proposals and outdated lists, 90% of which has been deleted. The last remaining items needing to be cleaned, sorted and merged are:

Standard access
How To Browse .bit Domains
HowToBrowseBitDomainsAdvanced
Hold until new wiki.

Alternatives
How To Configure Dns Suffix
DNS Translation and Proxy Software
List Of Web Proxies

List of software, grouped by category.
How To Create A Dns
Namecoin-GUI-Info
Namecoin WUI
Any other page that simply lists software.

TLD for phone numbers

Please add a TLD "e164" with 12-digit numeric subdomains to map phone numbers to IP-addresses. That way users can register numeric phone numbers in the namecoin namespace and map them to the IPs of their SIP phones. This would be an alternative for Telephone number mapping which is suppressed by big Telcos. Phone numbers can have up to 15 digits which allows to request a 3-digit international dialing prefix from the ITU for PSTN-to-SIP-gateways.

Compile statically linked fails => dynamically?

Hi,

when compiling make -f makefile.unix on sabayon linux the following entry in the make files causes some confusion of the linker (since the required libs are not available as static libs) and in the end ld is not able to finde the libs that are specified useing -l *:

[...] -Wl,-Bstatic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l ssl -l crypto -Wl,-Bdynamic -l gthread-2.0 -l z -l dl -l pthread
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost_system
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost_filesystem
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost_program_options
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost_thread
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lssl
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
make: *** [namecoind] Error 1

The removal of the -Wl,-Bstatic option, so that everything compiles dynamically linked, resolves the problem:

diff --git a/src/makefile.unix b/src/makefile.unix
index ecaaef4..573ed12 100644
--- a/src/makefile.unix
+++ b/src/makefile.unix
@@ -12,7 +12,6 @@ DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL

 # for boost 1.37, add -mt to the boost libraries
 LIBS= \
- -Wl,-Bstatic \
    -l boost_system \
    -l boost_filesystem \
    -l boost_program_options \
@@ -34,7 +33,6 @@ bitcoind: USE_UPNP:=0
        endif

 LIBS+= \
- -Wl,-Bdynamic \
    -l gthread-2.0 \
    -l z \
    -l dl \

Is there any particular reason why you wanted to compile it with -static?

Some system info:

$ ld --version
GNU ld (GNU Binutils) 2.23.1
$ gcc --version
gcc (Gentoo Hardened 4.7.3 p1.0, pie-0.5.5) 4.7.3
$ uname -s -r -m 
Linux 3.12.0-sabayon x86_64

Namecoin Enhancement Proposal Proposal

The idea of a more formal Namecoin Enhancement Proposal process (similar to Bitcoin, Python, et. al) has been kicked around for a while but no action taken on it.

Usually, these documents are static, with the commenting mostly happening in a mailing list somewhere. This way of doing things misses out on an important opportunity to capture institutional knowledge along with the proposal.

So, instead of a separate website, what if we just create a label (like NEP) for Github issue/ticket system and put them there? We can label it as draft/rejected/accepted as well and when an idea is implemented it can be attached to the correct milestone.

I've created a dummy version of this in a repo I own, if you want to see what it would look like.

Create Debian packaging repository

There is a namecoin LaunchPad team at https://launchpad.net/~namecoin, but no NC project.
As per Debian policies, packaging directory files should be not in the main source tree.
However, if a namecoin-debian repository was available, I would be able to create a LP project page and configure the LP buildbot to automatically import NC sources and set up a daily builds repo using LaunchPad's PPA features.

Compilation Error in Fedora 17

I have successfully compiled bitcoin, litecoin, and ppcoin on my Fedora installation. However, I get the following error with namecoin:

g++ -c -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -DNOPCH -DFOURWAYSSE2 -DUSE_SSL -o obj/nogui/util.o util.cpp
In file included from util.cpp:6:0:
/usr/include/boost/program_options/detail/config_file.hpp: In instantiation of ‘bool boost::program_options::detail::basic_config_file_iterator<charT>::getline(std::string&) [with charT = char; std::string = std::basic_string<char>]’:
util.cpp:906:1:   required from here
/usr/include/boost/program_options/detail/config_file.hpp:163:13: error: ‘to_internal’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /usr/include/boost/program_options/detail/parsers.hpp:9:0,
             from /usr/include/boost/program_options/parsers.hpp:265,
             from util.cpp:7:
/usr/include/boost/program_options/detail/convert.hpp:75:34: note: ‘template<class T> std::vector<std::basic_string<char> > boost::program_options::to_internal(const std::vector<T>&)’ declared here, later in the translation unit
make: *** [obj/nogui/util.o] Error 1

Any help to get this working please?

Contact

Please, add a contact address

client looks to ~/.bitcoin instead of ~/.namecoin on Linux

$ namecoin/src/namecoind getinfo
error: couldn't connect to server

strace shows:

fstat(3, {st_mode=S_IFREG|0644, st_size=26066, ...}) = 0
mmap(NULL, 26066, PROT_READ, MAP_SHARED, 3, 0) = 0x7fef86a42000
close(3) = 0
futex(0x7fef8584bf80, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mkdir("/home/username/.bitcoin", 0777) = -1 EEXIST (File exists)
stat("/home/username/.bitcoin", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
open("/home/username/.bitcoin/bitcoin.conf", O_RDONLY) = 3
read(3, "rpcuser=username\nrpcpassword=1234"..., 8191) = 79
read(3, "", 8191) = 0
close(3) = 0

version (displayed correctly if I am use -datadir option):

$ namecoin/src/namecoind -datadir=.namecoin getinfo
{
"version" : 32466,
...

can't build namecoind , warning about namecoin.conf

Warning: To use namecoind, you must set rpcpassword=
in the configuration file: /root/.namecoin/namecoin.conf
If the file does not exist, create it with owner-readable-only file permissions.

have tried many times to set permissions and password and I did not succeed to install it. Using Backtrack5r3. Thank you in advance.

Changes to name filter

Name filter is the only "bulk" retrieval method for records and it leaves much to be desired in terms of bulk exporting of information. I'm requesting two minor changes or perhaps a name_export method call:

  1. expires_in -> expire_block: This is a very low-information field because it requires being in constant contact with the client, which isn't what you need if you are exporting documents in bulk. It would appear to be trivial to fix this by simply grabbing the current block count and then subtracting from it but this leads to race conditions.
  2. name_show mode: includes all of the information present in name_show. This is mainly for backwards compatibility.

in RPC API, "name not found" shouldn't be reported as server error 500

When you make a "name_show" request for a name that does not exist:

curl --basic --user :<hidden> --data-ascii '{"method":"name_show","params":["nonexistent"],"id":1}:' --url http://localhost:8336/ -v

the result is

< HTTP/1.1 500 Internal Server Error
< Date: Thu, 27 Mar 2014 09:42:22 +0000
< Connection: close
< Content-Length: 83
< Content-Type: application/json
* Server bitcoin-json-rpc/0.3.51 is not blacklisted
< Server: bitcoin-json-rpc/0.3.51
< 
{"result":null,"error":{"code":-4,"message":"failed to read from name DB"},"id":1}

I believe that in such case (as in any case when a complete json reponse was produced), HTTP response code should be 200 because the RPC request was successfully processed. jsonrpc error notification is correct here, but the http code is not. The client library may assume that when the http code is 5xx, there is no point in analysing the body of the response, making it difficult for the caller to discern the reason of the failure.

Japanese Translation

I'd like to translate Namecoin into Japanese. What steps do I need to take? Thanks.

CLI parameters parsing error

$ namecoin/src/namecoind -datadir=.namecoin getinfo
{
"version" : 32466,
"balance" : 0.00000000,
"blocks" : 180272,
"connections" : 8,
"proxy" : "",
"generate" : false,
"genproclimit" : 3,
"difficulty" : 1733207.51384839,
"hashespersec" : 0,
"testnet" : false,
"keypoololdest" : 1307601253,
"paytxfee" : 0.00000000,
"mininput" : 0.00010000,
"errors" : "URGENT: upgrade required, see http://bitcoin.org/dos for details"
}

but:

$ namecoin/src/namecoind -datadir=.namecoin name_list
error: {"code":-32601,"message":"Method not found"}

could not sign name coin output

Domain d/pent was registered with command

[pentarh@penbook ~]$ bin/namecoind name_new d/pent

Then it was updated few hours later

[pentarh@penbook ~]$ bin/namecoind name_firstupdate d/pent random_key_here '{ "ip" : "192.168.1.1", "ip6" : "2001:4860:0:1001::68", "i2p": { "destination": "s2bzxafMCmDEujaZF44c558MBqYKC95YvoTqNaqMVGIoV68BUlCQu4Z6pjmuxSptHWo38LPx55nEqLLaKFljX7yr30o-iRBwsIev5M1HeX62YVJYxTP5acUxTKaG15dLwKLXRsqeHES8g21vwbz9LsHYsDR9IOYaJFnsBIOfLK4H5GYgcdogazZcuSvVrvX7jdpleGI7g6I81vzuGD0X0NZ~tpj~gypQsomwIZUYknTiaZ37X9TV7DpRbeYkevX7qnSX3odnk007Lhgrt2vN07-DpUHQLmTgr-GbYUVT0Xq-PB5Q2Oi5Rfl1MKQGQ7WXQyVW7MwmQpwgFMMqzQM8SDHqpqrxpsv3VHZ~GIkcKU4rlPazOzxan6PLmvaPigtbKJ0MCHUwD~zHAU~26DuSkRLvquCtxKqfOWE5z8JyaN~zxHivj7X8J7YpibXJdD53RcQ7ozsz9bvOTi0kQItuLR9ROlrxEfReUmWr0VKaCgmV4OvLfyi8~034nj7NAdKeAAAA", "name" : "example.i2p", "b32" : "b4szsgxsqgzqg76y3gcxolir54pwjokjjkbane645myukzqrbyoq.b32.i2p" }, "map" : { "www": { "ip" : "192.168.1.2", "ip6" : "2001:4860:0:1001::69", "i2p": { "name" : "example.i2p", "b32" : "b4szsgxsqgzqg76y3gcxolir54pwjokjjkbane645myukzqrbyoq.b32.i2p" } } } }'

Then after a week i decided to change its value and get error

[pentarh@penbook ~]$ bin/namecoind name_update d/pent '{"i2p": { "destination": "SN8pNsF~NHZek2NRUootxO465FnrcpZcdcRzQXGvjmwXER7HQKw5j~S4mEZuFEFMWTDXI3MTACJfN9y87sLBPHnJA0CEXjYKf2hM4YNJ2fLUXCZi0uLDaW-rUz4vEpUJF1-rcE~D4tiFO-2MKVNJLoGKvO87808XL0ejtdNCE-apxOWsGNBmxDdOM6dPx~F6tzmA-m8EeAzXvE-ZD8Q5yQX2dIiDXTFRTgfKQG0acyuNwBOWxRb2MvyoyxiKQFhcn2V~jR0Ub4~1eHNMq-308j1d1nZNPEPxnQPcMYY22lU427GASGYMOpngFH-Z8l1cKpiBAYCvDR1kvUASctLfBIE9U3IWRsYhQHhMPi5ZPuWNkM5U5oH4DXPctDmDsiIAtB-l4vUWTTkxmwU0~65URyb4EDFEVzcfmZuD0xMCq8Me9q1OgkhfIjdoCC-35D8cKPygCMdfZh4ZOHg932NmNLT5fTaKIiri~MSl4GwQPdC27iV7DRDZJV0YrjhIYJccAAAA" } }'

error: {"code":-1,"message":"could not sign name coin output"}

Version 0.3.24.66 (linux x86)

Namecoin daemon installation

Currently am trying to implement namecoin daemon, followed standard daemon installation steps. For "make -f makefile.unix" command it showed error as
compilation terminated.
make[1]: *** [util/env_win.o] Error 1
make[1]: Leaving directory `/home/xen/namecoin/src/leveldb'
make: *** [leveldb/libleveldb.a] Error 2.
What is that i should do to make it work ? Is there any other procedure for namecoin on daemon installation ?

Go language

Could be used Go instead of C++:

  • The code would compile in the main systems (linux, os x, windows, freebsd) and architectures (x86, x86-64, arm) without any change
  • It has a great library whose API has been frozen for Go 1
    http://weekly.golang.org/pkg/
  • Google is placing trust in Go by adding it to App Engine, Google Code search, and open-sourcing vitess, which it's the core of YouTube's new MySQL serving infrastructure.
    http://code.google.com/p/vitess/

Bug? pool is empty

namecoind walletpassphrase "fancy pass phrase" 0

namecoind getinfo
error: {"code":-1,"message":"ReserveKeyFromKeyPool() : pool is empty"}

namecoind walletpassphrase "fancy pass phrase" 9999

namecoind getinfo
{
"version" : 37400,
...
"errors" : ""
}

edit: just realized I had actually generated a 100 keys in the meantime. Is it possible the keypool does not refill with a walletpassphrase timeout of "0"?

name_new does not check availability

What I expected:

running 'name_new' on an already active domain should return an appropriate message (e.g. 'name already taken') and NOT waste my NMC

What happend:

'name_new' spends my NMC and returns with a new key which is useless as the name is already active

What I suggest:

check availability first when running 'name_new'

namecoind unresponsive and slow to pick up

I am trying to run this version:

    commit c4e0e82ffc1b24f0bd5450f47bd6055256ae75e7
    Merge: 7bdfe14 89a09d7
    Author: khalahan <[email protected]>
    Date:   Thu Oct 31 13:58:26 2013 +0100

on ubuntu saucy 64bit.

It starts to pick up on the chain, but after about 45000 blocks becomes very slow to pick up, like one block per minute. At the same time it becames very slow to respond to getinfo - about 20 seconds or more. There are no signs of excessive use CPU or other resources. I noticed other things that look weird:

  • negative lastseen and lasttry in the debug log:
IRC got join
AddAddress(100.2.103.115:8334)
IRC got new address: 100.2.103.115:8334
connection timeout
trying connection 120.147.81.79:8334 lastseen=-0.9hrs lasttry=-385568.2hrs
connected 120.147.81.79:8334
sending: version (85 bytes) 
trying connection 24.126.240.124:8334 lastseen=-0.9hrs lasttry=-385568.2hrs
connect() failed after select(): Connection refused
trying connection 174.57.19.253:8334 lastseen=-0.9hrs lasttry=-385568.2hrs
accepted connection 207.118.70.253:57035
connected 174.57.19.253:8334
  • most interesting, according to strace, there is a ready socket that is not read/written after select():
[pid 10724] nanosleep({0, 9998571}, NULL) = 0
[pid 10724] select(32, [6 20 23 25 26 27 28 29 31], [], [20 23 25 26 27 28 29 31], {0, 50000}) = 1 (in [28], left {0, 49996})
[pid 10724] nanosleep({0, 9998657}, NULL) = 0
[pid 10724] select(32, [6 20 23 25 26 27 28 29 31], [], [20 23 25 26 27 28 29 31], {0, 50000}) = 1 (in [28], left {0, 49996})
[pid 10724] nanosleep({0, 9998907}, NULL) = 0

You can see that select() returns one ready file descriptor, but there is no subsequent read or write operation. I thought that the program might be losing track of the file descriptor, which could potentially cause the trouble that I observe.

Recently-expired names can't be re-registered

Even though they are reported as expired, it looks like the calculation as to whether to allow expired domains to be re-registered uses the current best-height block and not the origin block.. so domains that are reported as expired hundreds of blocks ago (even if you account for the fact the GetDisplay*() call doesn't calculate it the same way) can't be registered currently.

I suspect the fix is to correct the problem in GetTxOfName and feed the GetExpirationDepth() call the nHeight and not the pindexBest->nHeight, otherwise a whole pile of "expired" names are going into un-re-registerable limbo until we come out of the incremental per-block expiration increase at 24000+12000..

However, I don't know if this was intentional. Nor so I know whether fixing this in my own code will make me generate illegal blocks, so.. meh.

Wrong command name in the FAQ

FAQ.md says:

**wait 12 blocks**, then:

`namecoind first_update <name> <random> <value>`

But is is actually name_firstupdate

Dependency issue

While building namecoind from source, on Ubuntu 13.04, I'm getting an error:

ld: cannot find -lgthread-2.0

I believe that it is only needed for namecoin-qt. So, if libgtk2.0-dev is only needed for QT than it should not fail when running

make -f makefile.unix namecoind 

does not compile

Can`t compile on 32bit linux ubuntu"

g++ -O3 -march=native -Wno-invalid-offsetof -Wformat  -DNOPCH -DFOURWAYSSE2 -DUSE_SSL -o bitcoind obj/nogui/auxpow.o obj/nogui/util.o obj/nogui/script.o obj/nogui/key.o obj/nogui/db.o obj/nogui/net.o obj/nogui/irc.o obj/nogui/keystore.o obj/nogui/main.o obj/nogui/wallet.o obj/nogui/rpc.o obj/nogui/init.o cryptopp/obj/sha.o cryptopp/obj/cpu.o obj/nogui/hook.o -Wl,-Bstatic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l ssl -l crypto -Wl,-Bdynamic -l gthread-2.0 -l z -l dl -l pthread
obj/nogui/init.o: In function `AppInit2(int, char**)':
init.cpp:(.text+0x2cab): undefined reference to `rescanfornames()'
collect2: error: ld returned 1 exit status
make: *** [bitcoind] Error 1

Determine Block Height from Block Hash

Is it possible to use namecoind to determine the block number from a block hash?
going the other way is easy:

namecoind getblockhash <index>

but getting the height from the hash appears to be impossible...

Height is not an attribute on each block and no method appears to return it.

The closest two are:

namecoind getblockcount
which:
"Returns the number of blocks in the longest block chain."
and
namecoind getblocknumber
which:
"Returns the block number of the latest block in the longest block chain."

So there are two methods which do the same thing and no methods that take a block hash and return that block's height, nor is block height a block attribute.

Is there something I'm missing here? Other coins do not appear to lack this basic functionality.

Subscribe to changes function

Right now, I have to scrape the database every 10 minutes, however, I would like to be able to set a RPC for new blocks being confirmed.

It might make more sense to just have a DB abstraction layer that can report changes.

Typescript

For some reason, Github marks this repo as being Typescript. Someone should update that to C++.

Locale should default to C / Posix Environment

Namecoin should catch the following error in init.cpp when locales are unknown:

EXCEPTION: St13runtime_error       
locale::facet::_S_create_c_locale name not valid       
namecoin in AppInit()       

terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid

rfc1123Time() in bitcoinrpc.cpp sets a default C environment but this can be overridden by misconfigured or unknown locales.

Namecoin should default to a C / POSIX environment if the locales are unknown / do not exist (e.g Busybox / Embedded).

Official Windows release at namecoin.info has no "listsinceblock" RPC function

I see "listsinceblock" RPC function binding in sources, but downloaded Windows release don't have this function, which is bad for developing tools cooperating with namecoin.

Other QT clients have this function in compiled Windows release, for example: ppcoin, primecoin, quarkcoin, dogecoin, darkcoin, litecoin

Post-install/first-run script

Jeremy_Rand and Indolering created the following post-install script to configure namecoin.conf:

mkdir -p ~/.namecoin && \
echo "rpcuser=`whoami` \n\
rpcpassword=`openssl rand -hex 30` \n\
rpcport=8334" > ~/.namecoin/namecoin.conf

This should included in the standard installer as part of the first-run setup, it would be much more secure and it all needs to be done anyway.

The openssl rand -hex 30 should probably be replaced with a better, 20-digit random number that has a larger character pool.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.