also John was part of the openssl project
As far as I can tell from the attributions, the original code may have been contributed to openssl by Sun Microsystem, which means even if john developed it while working for Sun, he wouldn't have any authorship rights to it, Sun would. But I don't know the exact history of that portion of it, that is true.
if he helped write it originally than using it no matter where it was adapted to is still legally within his rights..
That's false, unless he was the only one to work on it, which appears unlikely given that the Bitcoin version was modified from the OpenSSL version.
Furthermore none of this addresses the other ripped off Bitcoin code which did not appear to come from OpenSSL nor the fraudulent claim of Vanillacoin being written entirely from scratch.Example, and this code did not come from OpenSSL
Comparing a sample piece of code it is clear that at least some of it is based on Bitcoin code:
From vanillacoin -
https://github.com/john-connor/vanillacoin/blob/master/src/address_manager.cpp#L1315 * Try to find an entry that can be erased.
*/
for (auto it = bucket_new.begin(); it != bucket_new.end(); ++it)
{
assert(address_info_map_.count(*it));
auto & info = address_info_map_[*it];
if (info.is_terrible())
{
if (--info.reference_count == 0)
{
std::lock_guard l1(mutex_random_ids_);
swap_random(
info.random_position,
static_cast (random_ids_.size() - 1)
);
random_ids_.pop_back();
network_address_map_.erase(info.addr);
address_info_map_.erase(*it);
number_new_--;
}
bucket_new.erase(it);
return;
From Bitcoin 0.9.2 in addrman.cpp:
// first look for deletable items
for (std::set::iterator it = vNew.begin(); it != vNew.end(); it++)
{
assert(mapInfo.count(*it));
CAddrInfo &info = mapInfo[*it];
if (info.IsTerrible())
{
if (--info.nRefCount == 0)
{
SwapRandom(info.nRandomPos, vRandom.size()-1);
vRandom.pop_back();
mapAddr.erase(info);
mapInfo.erase(*it);
nNew--;
}
vNew.erase(it);
return 0;
}
}
The above code from vanillacoin is based on bitcoin, albeit renamed, refactored, reformatted and re-commented at almost every possible occasion.
The algorithm is the same line by line and even the esoteric identifier name "IsTerrible"/"is_terrible" is used in both.
My guess is John started with a old bitcoin code base and refactored, renamed and recommented the code to a huge degree.