Rebasing namecoin on bitcoin 0.8

snailbrain
Posts: 309
Joined: Tue Jul 19, 2011 9:33 pm

Re: Rebasing namecoin on bitcoin 0.8

Post by snailbrain »

Failing line is script.h:639:

if (!GetOp(pc, opcode, vch) || opcode != OP_DUP) return 0;

(and all similar lines)

"return 0" calls constructor CBitcoinAddress(const char*), passing 0 (NULL).

The reason is:
- old code stored address as number, so "0" was a dummy address.
- new code stores it in CBitcoinAddress class, "0" now calls the wrong constructor.

Solution:
- replace all zero addresses with an empty address CBitcoinAddress().
- make sure the empty address is understood by other functions as a special dummy address (I guess it is already, but not sure)
That's a lot of occurences, so I suggest marking some or all CBitcoinAddress constructors as "explicit", and then review all errors one-by-one.

Maybe can hacked done by creating some fake constructors (int and uint160) and make them create empty addresses. But this is too hacky, may lead to other problems.

virtual_master
Posts: 541
Joined: Mon May 20, 2013 12:03 pm
Contact:

Re: Rebasing namecoin on bitcoin 0.8

Post by virtual_master »

Hi Khal.
Are you OK ? We miss your in the forum. :)
How is going with the rebase ?
http://namecoinia.org/
Calendars for free to print: 2014 Calendar in JPG | 2014 Calendar in PDF Protect the Environment with Namecoin: 2014 Calendar in JPG | 2014 Calendar in PDF
BTC: 15KXVQv7UGtUoTe5VNWXT1bMz46MXuePba | NMC: NABFA31b3x7CvhKMxcipUqA3TnKsNfCC7S

jdbtracker
Posts: 26
Joined: Tue Sep 17, 2013 2:45 pm
os: windows

Re: Rebasing namecoin on bitcoin 0.8

Post by jdbtracker »

I'll be reviewing code, learning as much as possible about the construction of the Bitcoin client (8.5).
I'll also be reviewing as much info as possible about the TCP/IP system, I intend to build a secure torrent system for namecoin's blockchain; the design of namecoin demands a very large blockchain, I'd rather not sacrifice flexibility for node speed, why not have both! :mrgreen:

biolizard89
Posts: 2001
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Rebasing namecoin on bitcoin 0.8

Post by biolizard89 »

jdbtracker wrote:I'll be reviewing code, learning as much as possible about the construction of the Bitcoin client (8.5).
I'll also be reviewing as much info as possible about the TCP/IP system, I intend to build a secure torrent system for namecoin's blockchain; the design of namecoin demands a very large blockchain, I'd rather not sacrifice flexibility for node speed, why not have both! :mrgreen:
Namecoin's blockchain actually wouldn't be particularly big once blockchain pruning of expired names is implemented. Aaron Swartz estimated about 16GB for the d/ namespace (assuming all domains in the world switched to .bit) in the SquareZooko proposal.

But, regardless of that detail, assistance with merging the Bitcoin commits would be very welcome, since I don't think khal is looking forward to doing this himself. This may be a stupid question, I haven't seen you around here much, what experience do you have with the Bitcoin or Namecoin core code?
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

jdbtracker
Posts: 26
Joined: Tue Sep 17, 2013 2:45 pm
os: windows

Re: Rebasing namecoin on bitcoin 0.8

Post by jdbtracker »

recently got into Bitcoin at the beginning of this year and have fallen in love with cryptocurrencies, I've been programming since 1997 and I want to change the world for the better, this is my ticket. so here I am.

I see a lot of potential for Namecoin, a distributed DNS system, wow, I thought why not take it to it's limit. make the websites distributed as well with clients acting as servers to create fully decentralized websites and services like Freenet... just not encrypted; some of the stuff on there is just wrong.

biolizard89
Posts: 2001
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Rebasing namecoin on bitcoin 0.8

Post by biolizard89 »

jdbtracker wrote:recently got into Bitcoin at the beginning of this year and have fallen in love with cryptocurrencies, I've been programming since 1997 and I want to change the world for the better, this is my ticket. so here I am.

I see a lot of potential for Namecoin, a distributed DNS system, wow, I thought why not take it to it's limit. make the websites distributed as well with clients acting as servers to create fully decentralized websites and services like Freenet... just not encrypted; some of the stuff on there is just wrong.
Cool cool. Do you have any experience with the bitcoind/namecoind code specifically? May I ask what kind of C++ projects you've worked on? (Not trying to be a dick, just want to make sure you know what you're getting into.)

Actually, the Dot-Bit spec supports Freenet, I don't think there are any implementations yet though. I might work on that at some point. Your comment about encryption being bad concerns me though... that sounds like an endorsement of censorship+surveillance.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

moa
Posts: 255
Joined: Mon May 23, 2011 6:13 am

Re: Rebasing namecoin on bitcoin 0.8

Post by moa »

Just so everyone is aware today doublec and I are going to be trying to rebase the latest namecoin-qt branch (0.3.70) on top of the current (0.3.51) namecoin in the main namecoin/namecoin github.

So if khal will accept that commit and merge it then people can carry on with rebasing the what will be the combined namecoin-qt/namecoind on to bitcoin from there ... just FYI.

snailbrain
Posts: 309
Joined: Tue Jul 19, 2011 9:33 pm

Re: Rebasing namecoin on bitcoin 0.8

Post by snailbrain »

moa wrote:Just so everyone is aware today doublec and I are going to be trying to rebase the latest namecoin-qt branch (0.3.70) on top of the current (0.3.51) namecoin in the main namecoin/namecoin github.

So if khal will accept that commit and merge it then people can carry on with rebasing the what will be the combined namecoin-qt/namecoind on to bitcoin from there ... just FYI.
good work..

but maybe i don't understand correctly,
if you want in the branch then he can just merge as it is?
I thought we was making it less complicated for the rebase by not doing this.. it would be a lot easier to just do what khal is doing with the original namecoin 3.50 (now at 4 but with some more work to do on it)?

wasn't the plan:
QT stays separate and can be tweaked/upgraded..
Khal would work on rebase (or whomever).. eventually when it is completely up to date then we just add the names tab and other stuff... ?

maybe is better.. i don't know :)

jdbtracker
Posts: 26
Joined: Tue Sep 17, 2013 2:45 pm
os: windows

Re: Rebasing namecoin on bitcoin 0.8

Post by jdbtracker »

Cool cool. Do you have any experience with the bitcoind/namecoind code specifically? May I ask what kind of C++ projects you've worked on? (Not trying to be a dick, just want to make sure you know what you're getting into.)

Actually, the Dot-Bit spec supports Freenet, I don't think there are any implementations yet though. I might work on that at some point. Your comment about encryption being bad concerns me though... that sounds like an endorsement of censorship+surveillance.
Well I like a little social pressure on what people release unto the internet, release only what you are willing to stand for.

I'm not for censorship, that's why I'm into this project, decentralized DNS, and making it so that websites themselves are fully decentralized as well would make them impossible to take down. so no one would ever be able to erase something from the internet, there it will remain forever, people better be prepared to stand that long.

You can judge my work when I get started, then you will know.

biolizard89
Posts: 2001
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Rebasing namecoin on bitcoin 0.8

Post by biolizard89 »

jdbtracker wrote:
Cool cool. Do you have any experience with the bitcoind/namecoind code specifically? May I ask what kind of C++ projects you've worked on? (Not trying to be a dick, just want to make sure you know what you're getting into.)

Actually, the Dot-Bit spec supports Freenet, I don't think there are any implementations yet though. I might work on that at some point. Your comment about encryption being bad concerns me though... that sounds like an endorsement of censorship+surveillance.
Well I like a little social pressure on what people release unto the internet, release only what you are willing to stand for.

I'm not for censorship, that's why I'm into this project, decentralized DNS, and making it so that websites themselves are fully decentralized as well would make them impossible to take down. so no one would ever be able to erase something from the internet, there it will remain forever, people better be prepared to stand that long.

You can judge my work when I get started, then you will know.
Most civil liberties supporters (including myself) consider anonymity a critical component of free speech. Preventing technological censorship accomplishes nothing when the person posting the content can be physically arrested/abducted/murdered for posting the content. And yes, that is what will happen when you force people to publicly answer to sensitive content they post. The concept of free speech is fundamentally incompatible with a majority vote (or even a supermajority vote).

What bitcoind/namecoind components have you worked with previously? What is the nature of your C++ experience?

@moa I'm confused as snailbrain is. What exactly are you merging?
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

Post Reply