Bitcoin Forum
July 24, 2019, 08:13:23 AM *
News: Latest Bitcoin Core release: 0.18.0 [Torrent] (New!)
 
   Home   Help Search Login Register More  
Pages: « 1 ... 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [124] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 ... 346 »
  Print  
Author Topic: [ANN][XEL] Elastic Project - The Decentralized Supercomputer  (Read 449652 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
ttookk
Hero Member
*****
Offline Offline

Activity: 966
Merit: 513


View Profile
November 12, 2016, 09:31:53 PM
 #2461

How close are we to going live?

Makes no sense to start promoting if launch is still quite a ways off in the distance.



While you are right, it is still not too early to think about how we will promote Elastic.
1563956003
Hero Member
*
Offline Offline

Posts: 1563956003

View Profile Personal Message (Offline)

Ignore
1563956003
Reply with quote  #2

1563956003
Report to moderator
1563956003
Hero Member
*
Offline Offline

Posts: 1563956003

View Profile Personal Message (Offline)

Ignore
1563956003
Reply with quote  #2

1563956003
Report to moderator
1563956003
Hero Member
*
Offline Offline

Posts: 1563956003

View Profile Personal Message (Offline)

Ignore
1563956003
Reply with quote  #2

1563956003
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
trader19
Legendary
*
Offline Offline

Activity: 1232
Merit: 1001



View Profile WWW
November 12, 2016, 09:38:39 PM
 #2462

we can see prerelease version tomorrow?

When I say "prerelease" I mean that it has all features that I thought must be in it.
This of course means that someone of us still can come up with a must have last minute, which we all discuss and implement  Wink. But for now, I think it's all in it.

I am right now testing testing and again testing  Wink
so we are very close to going live or at least redeem our tokens right? lovley

Join the Elastic revolution!  Elastic - The Decentralized Supercomputer
ELASTIC WEBSITE | NEW ANNOUNCEMENT THREAD | ELASTIC SLACK | ELASTIC FORUM
coralreefer
Sr. Member
****
Offline Offline

Activity: 465
Merit: 260


View Profile
November 13, 2016, 02:22:38 AM
 #2463

Hi EK, I ran into an issue today and wanted to get your thoughts.  I have re-added the non-compiled interpreter logic to the miner as I realized there may be people who want to run an XEL miner but don't want to install a compiler...they'll just have to get the miner binaries from someone.  

The issue is that the mangle_state logic for the assignment operator finds all memory locations on the left side of the operator and mangles them.  This works fine in the Java code and compiled C code; however, for the non-compiled interpreted code, everything is processed bottom up.  So by the time I get to the assignment operator, it's too late to go back and mangle the memory locations on the left side.  Let me know if you can think of a simple solution to address this...maybe just mangle the topmost memory location on assignment instead of all of them, etc.

Edit:  It's probably more complicated than that.  I also noticed that the interpreter goes left to right where the Java and compiled C to right to left.  I'm not sure if I'll be able to get the interpreted code mangling to match the compiled code.  Let me see if I can rewrite it to process the tree similar to how the Java code works.

EK, I was able to rewrite the interpreter to a top-down model so I believe the issue above is resolved.  It will just take a bit of testing to make sure I didn't break anything.  At this point, I think I just need to incorporate your changes once deployed and do some overall cleanup.  Of course, the main thing the miner needs is optimization...this is just a prototype demonstrating all the functionality required to mine such an innovative blockchain, so it leaves lots of room for improvement.
tiredday
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
November 13, 2016, 02:43:15 AM
 #2464

from my understanding:

golem is p2p+smart contract(which is solving the micro payment)

xel is doing cyrptographic/mathematics level decentralized computing.

they are in different approach.

anyway, xel has great potential to stand among real innovations.



xel is similar to primecoin and riecoin, am i right? To solve math issue.
liketiantiande
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
November 13, 2016, 05:02:56 AM
 #2465

Do you guys know Tau which is on distributed computing before, but it proves that this direction is wrong to use blockchain.
ImI
Legendary
*
Offline Offline

Activity: 1946
Merit: 1019



View Profile
November 13, 2016, 05:07:22 AM
 #2466

from my understanding:

golem is p2p+smart contract(which is solving the micro payment)

xel is doing cyrptographic/mathematics level decentralized computing.

they are in different approach.

anyway, xel has great potential to stand among real innovations.



xel is similar to primecoin and riecoin, am i right? To solve math issue.

if you see every programming logic as some "math issue" then yes. otherwise, no.
ImI
Legendary
*
Offline Offline

Activity: 1946
Merit: 1019



View Profile
November 13, 2016, 05:09:38 AM
 #2467

Do you guys know Tau which is on distributed computing before, but it proves that this direction is wrong to use blockchain.

we know Tau and folks of tau have been over here already contributing to the code.

"proven wrong to use blockchain"? i dont think so.
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
November 13, 2016, 11:37:09 AM
 #2468

Evil-Knievel
Legendary
*
Offline Offline

Activity: 1274
Merit: 1160



View Profile
November 13, 2016, 02:44:07 PM
 #2469

ANALYSIS OF THE GENESIS BLOCK INTEGRITY


It is important to verify that the genesis block is absolutely correct, does not contain malicious entries and does not lack any entries that should be there. To verify this, I have written a genesis block integrity checker. The source code will be at the end of this message:

1. What Adresses Were Used for Donations:

Address 3Q2aKEGFTKDw3hghsBifXp39CZVMtZukxn   has 449 tx in total
Address 1ELC1CgH9jcuQtzXRfmSNKtTiRYKqwjr9q   has 49 tx in total
Address 3Qnj4QtdD4qtZcP82xyLq2paAEPDgfwezd   has 75 tx in total

In total we have seen 573 tx.

2. Incoming and Outgoing Transactions:

Out of these 573 tx we have ...
Total legit incoming tx:   508
Total legit outgoing tx:   36

Then we have 24 ignored transactions. Ignored means that funds were just moved between the local wallets ("3Q2aKEGFTKDw3hghsBifXp39CZVMtZukxn","3Qnj4QtdD4qtZcP82xyLq2paAEPDgfwezd","1ELC1CgH9jcuQtzXRfmSNKtTiRYKqwjr9q", "1NETgKnhsGzpN3sW3vid6bhTjBM4o2iaKi","3AVhok6gvrgSbTXfGEksYKEWBdxS9qo8E6")

And we have 5 fucked up transactions, these are TX that have sent less than 0.01 BTC and therefore (according to the terms and conditions) got nothing. Lannister you should offer refunds on that, but this just my personal opinion.

3. Hashes of ignored transactions:

Code:
  -> 1d35329ea9e8dc7a5c1548e6edae5529e6b07ce8bcad650e7e53032e561cdfc9
  -> 6695b2796551099ac2450ec58fca699485659498a2807aec40cd8817a61e08a3
  -> c79f6028d73ea68cd16e01eaa8f2f227871c8f964c31ca37c28b1f5da9c63e14
  -> 889d3430eea8b1569da529e29161e54ad3b61245db282eff4b4ee5cc14af115b
  -> 9c98f78f35b986be8741c59eb4c50b1c46b0296f85e75391b9e7fd330d105e83
  -> 6cf76f5bd2f6a315b2cf40726c4dee022b5b6ebe7e2da42e2558a1b128b659a8
  -> 6c37aef010c5a88da0cfe42f7371f82dcc7fce34e30ac022c61f344ac096be9d
  -> 1cf1c550e1921a6e2949e729f83fd8b147c35256730a5075ed1fdbf79bc0f1c7
  -> 11f1c5ea10e9736197ac971c799e583d915ab89ea6f2bc019216b6193d90f07c
  -> e32b9362af4f79ce91f6a491ef72f85f0ed17db3584d7dedaa1e4ab1bb0182c3
  -> f66c6e7bb94c2d5c0b676ab4ba396180edb4174911dc02e079559f1e15da173b
  -> ee1ac2c929358c737ba5c34a576478a1cfe76c04530c41d8cfc8ff25bda79479
  -> 518a8ece2c3c47cc56770584afe350a5021e3c3ca0c55a485f5f3dbff2218ae8
  -> f3569fdfac1da427902d3017e3afa4237a9ea5a069621cf357cba1ca830c57f6
  -> 7af8b806e35c941d52501e95ceaca73aaa80e8c3f8645a47444b6308b802eb5b
  -> 46134c30005e93d30c10e9a0758ae6ddc9aa26f3bcb72b270657980f9cb0b776
  -> daf257b2206e85069cca7e02f373e6d1eeb2d6f13850a11e17ab447ad67b75c7
  -> 35f8db04c7d20efa2394fb40784211d6d6c854f0e6baec0f2155f59893e0a10d
  -> 5eed7014dc0df1e5c544df75ddc832d53018aed53e7de227c7ccbd1292a85fed
  -> 89c5fe5094b49271a0f04e56b4e16d4dcf66b2646cf38f88132109dc47d69126
  -> b8f5144ecc503802eb95d4f243706b1c838fcded4931250172563fac5d66fd06
  -> b9c0c7d45d00d7085b406dd4c5be97d039bb69fe39189cadc2fedceaaca9900a
  -> 3af3171ba5460d76dae60e4f7e8425df502eb30350646b381eeb518b37639974
  -> e51ed51928cf83ffde2927ca11905e71f2cc1ead7e78ddf79e80ac6c54c99ce7

4. Fucked up transactions list:

Code:
  -> df2ce20673b75a73f50a43232f42db2fcdc14fa4fade62d7ca7e64c72e5565c6
  -> 551d2953bfca100b2c6788c1ce8dd327f88ee1cff57b7174aacdac9e449ae7b5
  -> b8ef265cd8f2569919c19ebb9ee73ea78d9c697870957f6bf3e542b2ed133d06
  -> 13c018ad6def3c56e35a9b09428b8acf5a342bacb6ef755800a3578d07abb4a0
  -> 0ae2ec45b00f82525448008e1ed40cb77a41a28302d64dc62e6b55073ba47de4

!!! DISCREPANCY: We have 508 legit incoming transactions but only 497 entries in the genesis block !!!

5. List of TX that are in the blockchain (in those 508 legit tx) but not in the genesis block (in the 497 entires):

Code:
  -> c091160dcaaaac6879cdfd7726a200801670a9f31bf7a7c531e0ae7b77f6e70e [1P4LiqFF5kP96cAuM2WoEVfyoiYYxnLhyU] = 0.8082131 BTC in total (dont count addrs twice)
  -> 17e06c6b0ebc8356d4ab1007d123c74d9d0e79d129a7017135e64cb290cba5e7 [1SdoAbypnx1NKMpsC6VbmVBGCJyX3hP3K]
  -> 7fed267c0c108c7a1e8288ad1c9f9eb3f1bc275e8d646b87e3da0ed41d1488d1 [1SdoAbypnx1NKMpsC6VbmVBGCJyX3hP3K] = 1.97 BTC in total (dont count addrs twice)
  -> 0fa55082975c3a9a4fd838881ce653fdb079cdcd8a14583862125f6f106e1bbb [1AKo8QK11FurGNvCnKuHvDFEFdavDRMZGo] = 0.2767 BTC in total (dont count addrs twice)
  -> 9712be14e37f28307874d8507d68e648ddd776c1f8ed12de779e87119aa9895e [3De41NGxSHuDgEcGXq8757HUK6m5tJfvdP] = 0.051 BTC in total (dont count addrs twice)
  -> 0ce3a952c09df4ba66f9d5181b640b4f1e224e0d9a377035ec30bdf040fee897 [1GUrpXQySkMghpWEgfpGnMc7HTNeTe6hBn] = 0.454962 BTC in total (dont count addrs twice)
  -> 38eb02515975f5fc4024a09f58663a1ade2dfadf1ee5bacba6ab68f5f8f1acbe [17kGd5dKGSssNn477Rjd8kmJdsrUSM626Q] = 0.0103 BTC in total (dont count addrs twice)
  -> c9c25ec07b37ec2cd6849f7de3c64706da84a3394b45fa5a9e0cb5c14cdaf111 [16MmuQWvJuNqJRLgoYfwvBeqVHr3BqmFwk] = 1.5 BTC in total (dont count addrs twice)
  -> 1e2fb7b8ebd921de452334a863661ce7b105e7cea7275f7ec3908f391fdcbb9f [13HfJkxPLJhTrCJEQSP3h6AZ23f63HpRGM]
  -> 4965a221f2a945fcb21c814afc737ef31748cc0fa52f989f16ac12edb9968bae [13HfJkxPLJhTrCJEQSP3h6AZ23f63HpRGM] = 2.418 BTC in total (dont count addrs twice)
  -> 13e5c99a85ae8995d0e518f7f24b3800f993fc581457eaeb255720b9d74f54d6 [19g9GuHbmJJLi7VwrhkAQJeebdKyXsKYAX] = 1.003 BTC in total (dont count addrs twice)
  -> bcad11d4c3c671554ffe1e0cd9f10db35668e3989ca55a1383184446286c4f8c [1KkUA1YrU6d6kU348rGZFxsNAdDezaSpEQ] = 0.5007 BTC in total (dont count addrs twice)


!!! TRYING TO EXPLAIN THE DISCREPANCIES !!!

6. Missing Entries in Genesisblock that got Refunded from Official Adresses

Automatic blockchain parsing revealed refunds from the donation addresses that explain why certain inbound TX do not end up in the genesis block:

Code:
Explained missing 0.808213 BTC from 1P4LiqFF5kP96cAuM2WoEVfyoiYYxnLhyU, we saw refunds as high as 0.808023 BTC
  -> 5312f91d3839125ac2fedcb205b9ae1939edc457f36b6509a909cc9d8cfd8f08 refunded 0.80802271 BTC
Explained missing 1.003000 BTC from 19g9GuHbmJJLi7VwrhkAQJeebdKyXsKYAX, we saw refunds as high as 1.003000 BTC
  -> ea3b875e5a9c9cc789fcb6bddd270042b1202481b5bedeaa01b59294379fbdc5 refunded 1.003 BTC
Explained missing 0.500700 BTC from 1KkUA1YrU6d6kU348rGZFxsNAdDezaSpEQ, we saw refunds as high as 0.500700 BTC
  -> 3550fda47fd9527c0a0b8f04034af06317a83767dcc6f378ec4c557ef3337790 refunded 0.5007 BTC
Explained missing 0.454962 BTC from 1GUrpXQySkMghpWEgfpGnMc7HTNeTe6hBn, we saw refunds as high as 0.454987 BTC
  -> 842a849f860fb9b72ad06dcbd455bd1d1c970a3764eef27a46200ecf336bdb1f refunded 0.45498688 BTC
Explained missing 1.970000 BTC from 1SdoAbypnx1NKMpsC6VbmVBGCJyX3hP3K, we saw refunds as high as 1.969960 BTC
  -> de1a2d337c7e92e13c5e216cc39bf8f8bb38215fd167660c63bdc6ba69242f8c refunded 1.96995956 BTC

7. Missing Entries in Genesisblock that got Refunded from other sources

To sum up, these missing entries are still to be explained:

Code:
  -> 0fa55082975c3a9a4fd838881ce653fdb079cdcd8a14583862125f6f106e1bbb [1AKo8QK11FurGNvCnKuHvDFEFdavDRMZGo] = 0.2767 BTC in total (dont count addrs twice)
  -> 9712be14e37f28307874d8507d68e648ddd776c1f8ed12de779e87119aa9895e [3De41NGxSHuDgEcGXq8757HUK6m5tJfvdP] = 0.051 BTC in total (dont count addrs twice)
  -> 38eb02515975f5fc4024a09f58663a1ade2dfadf1ee5bacba6ab68f5f8f1acbe [17kGd5dKGSssNn477Rjd8kmJdsrUSM626Q] = 0.0103 BTC in total (dont count addrs twice)
  -> c9c25ec07b37ec2cd6849f7de3c64706da84a3394b45fa5a9e0cb5c14cdaf111 [16MmuQWvJuNqJRLgoYfwvBeqVHr3BqmFwk] = 1.5 BTC in total (dont count addrs twice)
  -> 1e2fb7b8ebd921de452334a863661ce7b105e7cea7275f7ec3908f391fdcbb9f [13HfJkxPLJhTrCJEQSP3h6AZ23f63HpRGM]
  -> 4965a221f2a945fcb21c814afc737ef31748cc0fa52f989f16ac12edb9968bae [13HfJkxPLJhTrCJEQSP3h6AZ23f63HpRGM] = 2.418 BTC in total (dont count addrs twice)

Let's do it manually:

1.) 1AKo received a refund for the whole 0.2767 BTC in this transaction:
54a7fbb765713967ef314dda087b2239d86e16292b9d881652632706db22f273
2.) 13Hfjkx received a refund for the whole 2.418 BTC in this transaction:
846326c8efe979976248967b117b09dbb11b08278bd5f71d8f20d8b84ecaa0c0
3. 16Mmu received a refund for the whole 1.5 BTC in this transaction:
6caad238d66ce67cc1ff2d0e8df8a0bbed9ca36bbe8a6636bcee321b93c6c00e

8. People who SHOULD have gotten XEL:

These people are not in the genesis block but should be there!
We MUST(!!!!!!!) patch it by hand!


17kGd5dKGSssNn477Rjd8kmJdsrUSM626Q - 0.0103 BTC in block 400661
3De41NGxSHuDgEcGXq8757HUK6m5tJfvdP - 0.051 BTC in block 401570


All in all, this is very positive. The genesis block is just off by 0.0613 BTC

9. The Python Script

Code:
import urllib2
import os.path
import json
import time
import sys

def ensure_is_present(url, file_name):
    exists = os.path.isfile(file_name)
    if not exists:
        time.sleep(2)
        u = urllib2.urlopen(url)
        f = open(file_name, 'wb')
        meta = u.info()
        try:
            file_size = int(meta.getheaders("Content-Length")[0])
        except:
            file_size = 1000
        print "Downloading: %s Bytes: %s" % (file_name, file_size)

        file_size_dl = 0
        block_sz = 8192
        while True:
            buffer = u.read(block_sz)
            if not buffer:
                break

            file_size_dl += len(buffer)
            f.write(buffer)
            status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
            status = status + chr(8)*(len(status)+1)
            print status,

        f.close()
        print ""

addresses = ["3Q2aKEGFTKDw3hghsBifXp39CZVMtZukxn","3Qnj4QtdD4qtZcP82xyLq2paAEPDgfwezd","1ELC1CgH9jcuQtzXRfmSNKtTiRYKqwjr9q"]
internals_ignore = ["1NETgKnhsGzpN3sW3vid6bhTjBM4o2iaKi","3AVhok6gvrgSbTXfGEksYKEWBdxS9qo8E6"]
estimations = {}
loaded = {}
outgoing = []
incoming = []
ignored = []
failures = []

def ensure_is_present_with_offset(url, file_name, offset=0):
    global estimations
    global loaded
    global outgoing
    global incoming
    global ignored
    global failures

    innerfname = "offset-" + str(offset) + "-" + file_name
    exists = os.path.isfile(innerfname)
    if not exists:
        time.sleep(2)
        u = urllib2.urlopen(url.replace("offset=0","offset="+str(offset)))
        f = open(innerfname, 'wb')
        meta = u.info()
        try:
            file_size = int(meta.getheaders("Content-Length")[0])
        except:
            file_size = 1000
        print "Downloading: %s Bytes: %s" % (innerfname, file_size)

        file_size_dl = 0
        block_sz = 8192
        while True:
            buffer = u.read(block_sz)
            if not buffer:
                break

            file_size_dl += len(buffer)
            f.write(buffer)
            status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
            status = status + chr(8)*(len(status)+1)
            print status,

        f.close()
        print ""
    with open(innerfname) as data_file:   
        data = json.load(data_file)
        if data["address"] not in estimations:
            estimations[data["address"]] = int(data["n_tx"])
            loaded[data["address"]] = 0
        if "txs" in data:
            loaded[data["address"]] += len(data["txs"])
       
        for x in data["txs"]:
            is_outgoing = False
            is_ignored = False
            for n in x["inputs"]:
                for uu in internals_ignore:
                    if n["prev_out"]["addr"] == uu:
                        is_ignored = True
                        break
                if n["prev_out"]["addr"] == data["address"]:
                    is_outgoing = True
                    break
                elif n["prev_out"]["addr"] == addresses[0] or n["prev_out"]["addr"] == addresses[1] or n["prev_out"]["addr"] == addresses[2]:
                    is_ignored = True
            if is_outgoing and not is_ignored:
                for pp in x["out"]:
                    if "addr" not in pp:
                        continue
                    for uu in internals_ignore:
                        if pp["addr"] == uu:
                            is_ignored = True
                            break

                    if pp["addr"] == data["address"]:
                        total_out += pp["value"]

                if is_ignored == True:
                    ignored.append(x)
                else:
                    outgoing.append(x)
            elif not is_outgoing and not is_ignored:
                # check if the output was 0.01BTC or higher
                is_failure = False
                total_out = 0
                for pp in x["out"]:
                    if "addr" not in pp:
                        continue
                    for uu in internals_ignore:
                        if pp["addr"] == uu:
                            is_ignored = True
                            break

                    if pp["addr"] == data["address"]:
                        total_out += pp["value"]

                if is_ignored == True:
                    ignored.append(x)
                elif total_out<1000000: # 1 mio satoshi = 0.01 BTC
                    failures.append(x)
                else:
                    incoming.append(x)
            else:
                ignored.append(x)


        # trigger next offset loading
        if len(data["txs"])==50:
            ensure_is_present_with_offset(url,file_name, offset+50)



# JSON Genesis Block
url = "https://raw.githubusercontent.com/elastic-project/genesis-block/master/genesis-block.json"
file_name = url.split('/')[-1]
ensure_is_present(url, file_name)



# All TX from 3Q2 address
url2 = "https://blockchain.info/address/3Q2aKEGFTKDw3hghsBifXp39CZVMtZukxn?format=json&offset=0&/3q2address.json"
file_name2 = url2.split('/')[-1]
ensure_is_present_with_offset(url2, file_name2)

# All TX from 3Qnj address
url3 = "https://blockchain.info/address/3Qnj4QtdD4qtZcP82xyLq2paAEPDgfwezd?format=json&offset=0&/3qnjaddress.json"
file_name3 = url3.split('/')[-1]
ensure_is_present_with_offset(url3, file_name3)

# All TX from 3Qnj address
url4 = "https://blockchain.info/address/1ELC1CgH9jcuQtzXRfmSNKtTiRYKqwjr9q?format=json&offset=0&/1elcjaddress.json"
file_name4 = url4.split('/')[-1]
ensure_is_present_with_offset(url4, file_name4)



# Did the loading go well?
print "Checking if the downloaded json files from blockchain.info are correct"
for x in estimations:
    print "Address %s\tshould have %d tx\tloaded %d tx" % (x,estimations[x],loaded[x])
    if estimations[x] != loaded[x]:
        print "!! FATAL ERROR, fix this first."
        sys.exit(1)
print "Total incoming tx:\t%d" % len(incoming)
print "Total outgoing tx:\t%d" % len(outgoing)
print "Total ignored tx:\t%d    (Those should be these, that move the funds from one address to another address)" % len(ignored)
for i in ignored:
    print "  ->",i["hash"]
print "Total fucked up tx:\t%d    (Those are these sending less than 0.01 BTC to the burn address)" % len(failures)
for i in failures:
    print "  ->",i["hash"]

print ""
print "Looking for suspicious activity (missing TX in genesis, too many TX in genesis, ...)"



def parse_real_tx(file_name):
    global all_inputs_plausible
    with open(file_name) as data_file:   
        data = json.load(data_file)
        if "txs" not in data:
            return
        we_want_this_many = int(data["n_tx"])
        data = data["txs"]
        print "%s TX history has %d entries, should have %d" % (file_name,len(data), we_want_this_many)
        print data[0]



print "Parsing JSON file"
import json
from pprint import pprint
abnormal = []

hashes_missing_in_history = []
btc_not_counted_in_genesis = 0.0
hashes_missing_in_genesis_block = []
loaded_hashes = []

btc_normal = 0
with open(file_name) as data_file:   
    data = json.load(data_file)
    print "Genesis Block has %d entries" % len(data)
    for x in data:
        amount = float(x["mir_amount"])
        if amount <= 0:
            continue
        loaded_hashes.append(x["btc_tx"])
        pubkey = x["owner_pubkey"]
        if pubkey[0:2]=="02" or pubkey[0:2]=="03" or pubkey[0:2]=="04" and ' ' not in pubkey:
            # print "Pubkey [%s...] burned for [%.6f] XEL" % (pubkey[0:12], amount)
            btc_normal += float(x["btc_amount"])
        else:
            abnormal.append(x)

missing_addresses = {}
missing_amounts_per_address = {}

for x in incoming:
    if x["hash"] not in loaded_hashes:
        hashes_missing_in_genesis_block.append(x["hash"])
        total_missing = 0.0
        for l in x["out"]:
            if "addr" in l and l["addr"] in addresses:
                total_missing += float(l["value"])
        missing_addresses[x["hash"]] = x["inputs"][0]["prev_out"]["addr"]
        if x["inputs"][0]["prev_out"]["addr"] not in missing_amounts_per_address:
            missing_amounts_per_address[x["inputs"][0]["prev_out"]["addr"]] = 0
        missing_amounts_per_address[x["inputs"][0]["prev_out"]["addr"]] += total_missing/100000000.0
        btc_not_counted_in_genesis += total_missing/100000000.0

for x in loaded_hashes:
    is_gone = True
    for ja in incoming:
        if ja["hash"]==x:
            is_gone = False
    if is_gone:
        hashes_missing_in_history.append(x["hash"])

print "Found %d suspicious tx" % (len(hashes_missing_in_genesis_block)+len(hashes_missing_in_history))
print "Hashes in blockchain but not in genesis block:"
for x in hashes_missing_in_genesis_block:
    print "  ->",x,"[" + missing_addresses[x] + "] =",missing_amounts_per_address[missing_addresses[x]],"BTC in total (dont count addrs twice)"
print "  =","total missing:",btc_not_counted_in_genesis,"BTC"
print "Hashes in genesis block but never seen on blockchain:"



for x in hashes_missing_in_history:
    print "  ->",x
print "Trying to explain discrepancies ..."
print "Step 1: Looking for refunds"
explained = []
for x in missing_amounts_per_address:
    found = False
    outputs = {}
    total = 0.0
    for ou in outgoing:
        for xx in ou["out"]:
            if xx["addr"] == x:
                found = True
                outputs[ou["hash"]] = float(xx["value"])/100000000.0
                total += float(xx["value"])/100000000.0
    if len(outputs)==0:
        continue
    print "Explained missing %.6f BTC from %s, we saw refunds as high as %.6f BTC" % (missing_amounts_per_address[x],x,total)
    explained.append(x)

    for xy in outputs:
        print "  ->",xy,"refunded",outputs[xy],"BTC"

print "\nREBUILDING THE LIST OF MISSING ENTRIES IN GENESIS BLOCK!!\n"
tokill=[]
for k in hashes_missing_in_genesis_block:
    if missing_addresses[k] in explained:
        tokill.append(k)
for pao in tokill:
    hashes_missing_in_genesis_block.remove(pao)

print "Found %d suspicious tx" % (len(hashes_missing_in_genesis_block)+len(hashes_missing_in_history))
print "Hashes in blockchain but not in genesis block **AND NOT EXPLAINED SO FAR**:"
for x in hashes_missing_in_genesis_block:
    print "  ->",x,"[" + missing_addresses[x] + "] =",missing_amounts_per_address[missing_addresses[x]],"BTC in total (dont count addrs twice)"





sys.exit(5)
print "Now, Handing the Abnormal ..."
# Now handling the abnormals
btc_abnormal = 0
for x in abnormal:
    btc_abnormal += float(x["btc_amount"])

print ""
print "STATISTICS"
print "=========="
print "In total, %.6f BTC came from abnormal transactions" % btc_abnormal
print "    -> %d are save 1-of-many multisig transactions" % 0
print "    -> %d are regular multisig transactions" % 0
print "    -> %d are cosigned by some creepy wallet" % 0
print "In total, %.6f BTC came from normal transactions" % btc_normal

Evil-Knievel
Legendary
*
Offline Offline

Activity: 1274
Merit: 1160



View Profile
November 13, 2016, 02:47:48 PM
Last edit: November 13, 2016, 02:59:14 PM by Evil-Knievel
 #2470

Does this, what I said in the last post, make sense? Maybe someone could double check!

PS: Prerelease version will come a few hours later, the genesis block analysis ate up the entire day. But better double check everything than being sorry for not doing so!
wwdz99
Sr. Member
****
Offline Offline

Activity: 245
Merit: 250



View Profile
November 13, 2016, 03:22:29 PM
 #2471

Do you guys know Tau which is on distributed computing before, but it proves that this direction is wrong to use blockchain.

we know Tau and folks of tau have been over here already contributing to the code.

"proven wrong to use blockchain"? i dont think so.

I dont think so too.
wwdz99
Sr. Member
****
Offline Offline

Activity: 245
Merit: 250



View Profile
November 13, 2016, 03:27:07 PM
 #2472

Does this, what I said in the last post, make sense? Maybe someone could double check!

PS: Prerelease version will come a few hours later, the genesis block analysis ate up the entire day. But better double check everything than being sorry for not doing so!


Wonderful ,waiting for u prerelease version.
cyberhacker
Legendary
*
Offline Offline

Activity: 1274
Merit: 1000



View Profile
November 13, 2016, 03:54:05 PM
 #2473

party is ready.  Grin Grin Grin
mr.coinzy
Hero Member
*****
Offline Offline

Activity: 504
Merit: 507



View Profile
November 13, 2016, 04:08:04 PM
 #2474

E-K I sent you a PM, waiting for your reply Smiley
wpalczynski
Legendary
*
Offline Offline

Activity: 1456
Merit: 1000



View Profile
November 13, 2016, 10:07:53 PM
 #2475

Is there a Slack channel for Elastic?

ttookk
Hero Member
*****
Offline Offline

Activity: 966
Merit: 513


View Profile
November 13, 2016, 10:33:00 PM
 #2476

Is there a Slack channel for Elastic?

Nope. I Tried to make one some pages back, but it didn't work out. I think it won't, yet. There are just too few people active at the moment, thus a thread works just as well.
wpalczynski
Legendary
*
Offline Offline

Activity: 1456
Merit: 1000



View Profile
November 13, 2016, 10:35:32 PM
 #2477

Is there a Slack channel for Elastic?

Nope. I Tried to make one some pages back, but it didn't work out. I think it won't, yet. There are just too few people active at the moment, thus a thread works just as well.

OK.  If you have one created you might as well post it when when this goes live.  Probably will be lots of people active once tokens are awarded.

ttookk
Hero Member
*****
Offline Offline

Activity: 966
Merit: 513


View Profile
November 13, 2016, 10:39:41 PM
 #2478

Is there a Slack channel for Elastic?

Nope. I Tried to make one some pages back, but it didn't work out. I think it won't, yet. There are just too few people active at the moment, thus a thread works just as well.

OK.  If you have one created you might as well post it when when this goes live.  Probably will be lots of people active once tokens are awarded.

I didn't find out how to create an auto-invite and wasn't too keen on being the admin of such a channel anyway…
wpalczynski
Legendary
*
Offline Offline

Activity: 1456
Merit: 1000



View Profile
November 13, 2016, 11:33:57 PM
 #2479

Is there a way to verify if ones transaction is in the genesis block?

Thanks.

ttookk
Hero Member
*****
Offline Offline

Activity: 966
Merit: 513


View Profile
November 13, 2016, 11:50:33 PM
 #2480

Is there a way to verify if ones transaction is in the genesis block?

Thanks.

On the old page, the genesis block was openly visible. Not sure where to see the genesis block right now. E-K seems to know or has a copy. Lannister probably has it, too.
Pages: « 1 ... 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [124] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 ... 346 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!