Author

Topic: Blok Zinciri Host etmeden BTC içerikli Site Açmak (Read 1304 times)

hero member
Activity: 969
Merit: 1000
btc public keylerini düz yazın , private keylerini dbe rsa ile şifreleyip kaydedin.
private keyi de pcnizde tutun admin panelinden publickeylere ne kadar para gelmiş kontrol edebilirsiniz harcamak içinde private keyini elle kendi pcnizde decode edebilirsiniz
legendary
Activity: 1274
Merit: 1000
★ BitClave ICO: 15/09/17 ★
ben her üyeye php ile random btc wallet üretiyorum .blockchain apisi ile alınan ödemelere falan bakabiliyorum başka da birşey gerekmiyor  Roll Eyes

....
Ürettiğiniz adresler aynı anda size hizmet veren yer sağlayıcının da erişiminde olduğunu biliyorsunuz değil mi?
Yani size hosting sağlayan kişi size gelen fonları "çalabilir".

Aynısı tüm servis sağlayıcıları için geçerli. AWS, DigitalOcean vs... Electrum kullansanız da.
Yapılandırmayı düzgün yaparsanız sorun olmaz.
- Yerelde 10k adres yaratın
- kullanılmamışadresler tablosu oluşturun
- yeni siparişe yeni adres verin tablodan silin
- eğer kullanılmamış adresler azalırsa tabloya yeni eklersiniz.
legendary
Activity: 1274
Merit: 1000
★ BitClave ICO: 15/09/17 ★
hero member
Activity: 969
Merit: 1000
ben her üyeye php ile random btc wallet üretiyorum .blockchain apisi ile alınan ödemelere falan bakabiliyorum başka da birşey gerekmiyor  Roll Eyes

Code:
require_once("bitcoinecdsa.php");

use BitcoinPHP\BitcoinECDSA\BitcoinECDSA;

function btc_balance($public_key)
{
$balance=curl("https://blockchain.info/q/getreceivedbyaddress/$public_key?confirmations=1");
if(is_numeric($balance))
{
$balance=btc8($balance);
return $balance;
}
return (int)0;
}

function btc_price($unit)
{
$cachefile = "cache/btc_usd.txt";
if($unit=='tl') { $cachefile = "cache/btc_tl.txt"; }
elseif($unit=='eur') { $cachefile = "cache/btc_eur.txt"; }
if (file_exists($cachefile) && (time() - 600 < filemtime($cachefile))) {
return file_get_contents($cachefile);
}
if($unit=='eur')
{
$balance=curl("http://preev.com/pulse/units:btc+eur/sources:btce");
}
else { $balance=curl("http://preev.com/pulse/units:btc+try/sources:bitstamp"); }
$balance=@json_decode($balance,1);
if(is_array($balance))
{
if($unit!='eur')
{
if(isset($balance['btc']['usd']['bitstamp']['last']))
{
//print_r($balance);
$usd_price=intval($balance['btc']['usd']['bitstamp']['last']);
$tl_price=intval(1/$balance['try']['usd']['other']['last']*$usd_price);
fwrite(fopen('cache/btc_usd.txt', 'w'), $usd_price);
fwrite(fopen('cache/btc_tl.txt', 'w'), $tl_price);
if($unit=='tl') { return $tl_price; }
return $usd_price;
}
}
else {
if(isset($balance['btc']['eur']['btce']['last']))
{
$eur_price=(int)$balance['btc']['eur']['btce']['last'];
fwrite(fopen('cache/btc_eur.txt', 'w'), $eur_price);
return $eur_price;
}
}
}
return file_get_contents($cachefile);
}


function curl($link, $post = null, $retries = 10){
        $curl = curl_init($link);
        if(is_resource($curl) === true){
                curl_setopt($curl, CURLOPT_FAILONERROR, true);
                curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36"); 
                curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
                if(isset($post) === true){
                        curl_setopt($curl, CURLOPT_POST, true);
                        curl_setopt($curl, CURLOPT_POSTFIELDS, (is_array($post) === true) ? http_build_query($post, "", "&"): $post);
                }
                $result = false;
                while(($result === false) && (--$retries > 0)){
                        $result = curl_exec($curl);
                }
                curl_close($curl);
        }
        return $result;
}


function check_if_paid_bitcoin($public_key,$fee)
{
$balance=btc_balance($public_key);
// 0.0002 transaction fee
if(($balance-0.0002)>=$fee)
{
return true;
}
return false;
}

function needs_to_pay_bitcoin($public_key,$fee)
{
$balance=btc_balance($public_key);
return $fee-$balance;
}

function btc8($val)
{
$a = bcmul($val, "1.0", 1);
return bcdiv($a, "100000000", 8);
}


function is_user_paid($uniqueid)
{
global $mysqli;
$stmt = $mysqli->prepare("SELECT is_paid,btc_public_key,fee FROM payments WHERE userid=?");
    $stmt->bind_param("s", $uniqueid);
    $stmt->execute();
    $stmt->bind_result($is_paid,$btc_public_key,$fee);
    $stmt->fetch();
    return check_if_paid_bitcoin($btc_public_key,$fee);
}


function generate_bitcoin_wallet()
{
$bitcoinECDSA = new BitcoinECDSA();
$bitcoinECDSA->generateRandomPrivateKey();
return array($bitcoinECDSA->getWif(),$bitcoinECDSA->getAddress());
}


function fetch($result)
{
    $array = array();
   
    if($result instanceof mysqli_stmt)
    {
        $result->store_result();
       
        $variables = array();
        $data = array();
        $meta = $result->result_metadata();
       
        while($field = $meta->fetch_field())
            $variables[] = &$data[$field->name]; // pass by reference
       
        call_user_func_array(array($result, 'bind_result'), $variables);
       
        $i=0;
        while($result->fetch())
        {
            $array[$i] = array();
            foreach($data as $k=>$v)
                $array[$i][$k] = $v;
            $i++;
           
        }
    }
    elseif($result instanceof mysqli_result)
    {
        while($row = $result->fetch_assoc())
            $array[] = $row;
    }
   
    return $array;
}

  function percent($a,$b){
    $c = $a / 100; 
    return floor($b / $c); 
  }

bitcoinecdsa.php http://pastebin.com/raw/qPUMBBHK
Zz
legendary
Activity: 1820
Merit: 1077
Electrum kullan. onun da benzer şekilde json-rpc si var.

Çok güzel anlatmış adamlar : Bir inceleyin şurayı : http://docs.electrum.org/en/latest/merchant.html

Bende bir deneyeyim merak ettim Smiley
legendary
Activity: 1274
Merit: 1000
★ BitClave ICO: 15/09/17 ★
Electrum kullan. onun da benzer şekilde json-rpc si var.
full member
Activity: 346
Merit: 102
Merhabalar, satın aldığım birkaç yazılım var JSON-RPC bağlantıları ile entegre edebiliyorum kurulumda, teknikte sorunum yok.
Fakat sormak istediğim konu şu; Raspberry Pi 2' de bitcoin daemon kurduğum zaman blockchain'i host etmek büyük sorun. Yer olayından değil, hem işlemci çok kasıyor hem de en ufak elektrik kesilmesinde bile reindex olup saatlerimi, günlerimi çalıyor.

Blockchain.info'nun cüzdan API'si var fakat ben direkt kendim host etmek istiyorum. Block zincirine ihtiyaç duymadan bu işlemi nasıl yaparım?;
Şimdiden Teşekkürler...
Jump to: