mirror of
https://github.com/clitor-is-protocol/kevacoin-cli.git
synced 2025-03-13 05:41:21 +00:00
simplify _CLITOR_IS_ meta record
This commit is contained in:
parent
d5050d9901
commit
b5d0fc3ef5
312
cli/fix.php
312
cli/fix.php
@ -1,5 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// Init version
|
||||||
|
define(
|
||||||
|
'_CLITOR_IS_',
|
||||||
|
'1.3.0'
|
||||||
|
);
|
||||||
|
|
||||||
// Init helper
|
// Init helper
|
||||||
function _exec(
|
function _exec(
|
||||||
string $processor,
|
string $processor,
|
||||||
@ -24,173 +30,163 @@ function _exec(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check file exits
|
// Check processor exits
|
||||||
if (!file_exists($argv[2]))
|
if (empty($argv[1]))
|
||||||
{
|
{
|
||||||
exit('filename does not exist!' . PHP_EOL);
|
print(
|
||||||
}
|
'processor required' . PHP_EOL
|
||||||
|
|
||||||
// Get file hash sum
|
|
||||||
$md5file = md5_file(
|
|
||||||
$argv[2]
|
|
||||||
);
|
|
||||||
|
|
||||||
// Search namespace by md5file
|
|
||||||
echo 'Get namespaces list...' . PHP_EOL;
|
|
||||||
|
|
||||||
$namespaces = _exec(
|
|
||||||
$argv[1],
|
|
||||||
'keva_list_namespaces'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Get _CLITOR_IS_ meta
|
|
||||||
foreach ((array) $namespaces as $namespace)
|
|
||||||
{
|
|
||||||
echo sprintf(
|
|
||||||
'Search for _CLITOR_IS_ match file MD5 %s ...' . PHP_EOL,
|
|
||||||
$md5file
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$meta = _exec(
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($argv[1]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'processor does not exist' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check namespace provided
|
||||||
|
if (empty($argv[2]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'namespace required' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check target file does not exist yet
|
||||||
|
if (!file_exists($argv[3]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'filename does not exist' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get namespace meta
|
||||||
|
$clitoris = _exec(
|
||||||
|
$argv[1],
|
||||||
|
sprintf(
|
||||||
|
"keva_get %s _CLITOR_IS_",
|
||||||
|
$argv[2]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (empty($clitoris->value))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'_CLITOR_IS_ not found for this namespace' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate protocol
|
||||||
|
if (empty($clitoris->value))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'_CLITOR_IS_ not found' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Split content to smaller parts (according to the protocol limits)
|
||||||
|
$pieces = str_split(
|
||||||
|
base64_encode(
|
||||||
|
file_get_contents(
|
||||||
|
$argv[3]
|
||||||
|
)
|
||||||
|
),
|
||||||
|
3072
|
||||||
|
);
|
||||||
|
|
||||||
|
// Count total pieces
|
||||||
|
$total = count(
|
||||||
|
$pieces
|
||||||
|
);
|
||||||
|
|
||||||
|
// Begin pieces saving
|
||||||
|
foreach ($pieces as $key => $value)
|
||||||
|
{
|
||||||
|
// Check piece stored in blockchain is valid
|
||||||
|
$piece = _exec(
|
||||||
$argv[1],
|
$argv[1],
|
||||||
sprintf(
|
sprintf(
|
||||||
"%s '%s' '%s'",
|
"keva_get %s %d",
|
||||||
'keva_get',
|
$argv[2],
|
||||||
$namespace->namespaceId,
|
$key
|
||||||
'_CLITOR_IS_'
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($value = @json_decode($meta->value))
|
// Piece value not found
|
||||||
|
if (empty($piece->value))
|
||||||
{
|
{
|
||||||
if (
|
printf(
|
||||||
isset($value->pieces) &&
|
'Piece %s/%s value not found, create new record...' . PHP_EOL,
|
||||||
isset($value->pieces->total) &&
|
$key + 1,
|
||||||
isset($value->pieces->size) &&
|
$total
|
||||||
|
);
|
||||||
isset($value->file) &&
|
|
||||||
isset($value->file->md5) &&
|
|
||||||
$value->file->md5 === $md5file
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// Meta found
|
|
||||||
echo sprintf(
|
|
||||||
'_CLITOR_IS_ found for this file with namespace %s' . PHP_EOL,
|
|
||||||
$namespace->namespaceId
|
|
||||||
);
|
|
||||||
|
|
||||||
// Split content to smaller parts using _CLITOR_IS_ size defined before
|
|
||||||
$pieces = str_split(
|
|
||||||
base64_encode(
|
|
||||||
file_get_contents(
|
|
||||||
$argv[2]
|
|
||||||
)
|
|
||||||
),
|
|
||||||
$value->pieces->size
|
|
||||||
);
|
|
||||||
|
|
||||||
// Count total pieces
|
|
||||||
$total = count(
|
|
||||||
$pieces
|
|
||||||
);
|
|
||||||
|
|
||||||
// Validate pieces count
|
|
||||||
if ($value->pieces->total !== $total)
|
|
||||||
{
|
|
||||||
echo '_CLITOR_IS_ have another pieces quantity' . PHP_EOL;
|
|
||||||
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Begin pieces saving
|
|
||||||
foreach ($pieces as $key => $value)
|
|
||||||
{
|
|
||||||
// Check piece stored is valid
|
|
||||||
$piece = _exec(
|
|
||||||
$argv[1],
|
|
||||||
sprintf(
|
|
||||||
"%s '%s' '%s'",
|
|
||||||
'keva_get',
|
|
||||||
$namespace->namespaceId,
|
|
||||||
$key
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Piece value not found
|
|
||||||
if (empty($piece->value))
|
|
||||||
{
|
|
||||||
echo sprintf(
|
|
||||||
'Piece %s/%s value not found, creating...' . PHP_EOL,
|
|
||||||
$key + 1,
|
|
||||||
$total
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Piece value invalid, begin blockchain record
|
|
||||||
else if ($piece->value !== $value)
|
|
||||||
{
|
|
||||||
echo sprintf(
|
|
||||||
'Piece %s/%s value invalid (%s <> %s), rewriting...' . PHP_EOL,
|
|
||||||
$key + 1,
|
|
||||||
$total,
|
|
||||||
md5(
|
|
||||||
$piece->value
|
|
||||||
),
|
|
||||||
md5(
|
|
||||||
$value
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Piece valid
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo sprintf(
|
|
||||||
'Piece %s/%s - OK' . PHP_EOL,
|
|
||||||
$key + 1,
|
|
||||||
$total
|
|
||||||
);
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
print_r(
|
|
||||||
_exec(
|
|
||||||
$argv[1],
|
|
||||||
sprintf(
|
|
||||||
"%s '%s' '%s' '%s'",
|
|
||||||
'keva_put',
|
|
||||||
$namespace->namespaceId,
|
|
||||||
$key,
|
|
||||||
$value
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Apply delays to prevent too-long-mempool-chain reject
|
|
||||||
$delay = isset($argv[3]) && $argv[3] > 0 ? (int) $argv[3] : 60;
|
|
||||||
|
|
||||||
echo sprintf(
|
|
||||||
'Piece %s/%s sent, waiting %s seconds...' . PHP_EOL,
|
|
||||||
$key + 1,
|
|
||||||
$total,
|
|
||||||
$delay
|
|
||||||
);
|
|
||||||
|
|
||||||
sleep($delay);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print result
|
|
||||||
echo sprintf(
|
|
||||||
'done! run to extract: php %s/get.php %s %s' . PHP_EOL,
|
|
||||||
__DIR__,
|
|
||||||
$argv[1],
|
|
||||||
$namespace->namespaceId
|
|
||||||
);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Piece value invalid, begin blockchain record
|
||||||
|
else if ($piece->value != $value)
|
||||||
|
{
|
||||||
|
printf(
|
||||||
|
'Piece %s/%s value invalid, overwrite record...' . PHP_EOL,
|
||||||
|
$key + 1,
|
||||||
|
$total,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Piece valid
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf(
|
||||||
|
'Piece %s/%s - OK' . PHP_EOL,
|
||||||
|
$key + 1,
|
||||||
|
$total
|
||||||
|
);
|
||||||
|
|
||||||
|
continue; // skip next operations for this piece
|
||||||
|
}
|
||||||
|
|
||||||
|
// Record new piece
|
||||||
|
print_r(
|
||||||
|
_exec(
|
||||||
|
$argv[1],
|
||||||
|
sprintf(
|
||||||
|
"keva_put %s %d %s",
|
||||||
|
$argv[2],
|
||||||
|
$key,
|
||||||
|
$value
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Apply delays to prevent too-long-mempool-chain reject
|
||||||
|
$delay = isset($argv[3]) && $argv[3] > 0 ? (int) $argv[3] : 60;
|
||||||
|
|
||||||
|
printf(
|
||||||
|
'Piece %s/%s sent, waiting %s seconds...' . PHP_EOL,
|
||||||
|
$key + 1,
|
||||||
|
$total,
|
||||||
|
$delay
|
||||||
|
);
|
||||||
|
|
||||||
|
sleep(
|
||||||
|
$delay
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo 'Could not recover this file!' . PHP_EOL;
|
// Done
|
||||||
|
printf(
|
||||||
|
'data successfully synced with namespace "%s"' . PHP_EOL,
|
||||||
|
$argv[2]
|
||||||
|
);
|
133
cli/get.php
133
cli/get.php
@ -1,5 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// Init version
|
||||||
|
define(
|
||||||
|
'_CLITOR_IS_',
|
||||||
|
'1.3.0'
|
||||||
|
);
|
||||||
|
|
||||||
// Init helper
|
// Init helper
|
||||||
function _exec(
|
function _exec(
|
||||||
string $processor,
|
string $processor,
|
||||||
@ -24,71 +30,80 @@ function _exec(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate arguments
|
||||||
|
if (empty($argv[1]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'processor required' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($argv[1]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'processor does not exist' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($argv[2]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'namespace required' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($argv[3]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'destination file required' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists($argv[3]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'destination file already exists' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
// Get clitoris
|
// Get clitoris
|
||||||
$clitoris = _exec(
|
$clitoris = _exec(
|
||||||
$argv[1],
|
$argv[1],
|
||||||
sprintf(
|
sprintf(
|
||||||
'%s %s "_CLITOR_IS_"',
|
'keva_get %s "_CLITOR_IS_"',
|
||||||
'keva_get',
|
|
||||||
$argv[2]
|
$argv[2]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
print_r(
|
// Validate protocol
|
||||||
$clitoris
|
|
||||||
);
|
|
||||||
|
|
||||||
if (empty($clitoris->value))
|
if (empty($clitoris->value))
|
||||||
{
|
{
|
||||||
exit(
|
print(
|
||||||
sprintf(
|
'_CLITOR_IS_ not found' . PHP_EOL
|
||||||
'%s does not contain _CLITOR_IS_' . PHP_EOL,
|
|
||||||
$argv[2]
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$clitoris = @json_decode(
|
|
||||||
$clitoris->value
|
|
||||||
))
|
|
||||||
{
|
|
||||||
exit(
|
|
||||||
sprintf(
|
|
||||||
'could not decode _CLITOR_IS_ of %s' . PHP_EOL,
|
|
||||||
$argv[2]
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
if ($clitoris->version !== '1.0.0')
|
exit;
|
||||||
{
|
|
||||||
exit(
|
|
||||||
sprintf(
|
|
||||||
'_CLITOR_IS_ of %s not compatible!' . PHP_EOL,
|
|
||||||
$argv[2]
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($clitoris->file->name))
|
|
||||||
{
|
|
||||||
exit(
|
|
||||||
sprintf(
|
|
||||||
'_CLITOR_IS_ format issue for %s!' . PHP_EOL,
|
|
||||||
$argv[2]
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merge content data
|
// Merge content data
|
||||||
$chain = [];
|
$chain = [];
|
||||||
|
|
||||||
foreach (
|
foreach (
|
||||||
(array)
|
(array)
|
||||||
_exec(
|
_exec(
|
||||||
$argv[1],
|
$argv[1],
|
||||||
sprintf(
|
sprintf(
|
||||||
'%s %s "\d+"',
|
'keva_filter %s "\d+"',
|
||||||
'keva_filter',
|
|
||||||
$argv[2]
|
$argv[2]
|
||||||
)
|
)
|
||||||
) as $piece)
|
) as $piece)
|
||||||
@ -99,9 +114,11 @@ foreach (
|
|||||||
!isset($piece->height)
|
!isset($piece->height)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
exit(
|
print(
|
||||||
'please wait for all pieces sending complete!'
|
'please wait for all pieces sending complete!' . PHP_EOL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep all key versions in memory
|
// Keep all key versions in memory
|
||||||
@ -121,12 +138,16 @@ $pieces = [];
|
|||||||
|
|
||||||
foreach ($chain as $key => $height)
|
foreach ($chain as $key => $height)
|
||||||
{
|
{
|
||||||
|
|
||||||
ksort(
|
ksort(
|
||||||
$height
|
$height
|
||||||
);
|
);
|
||||||
|
|
||||||
$pieces[$key] = $height[array_key_last($height)];
|
$pieces[$key] = $height
|
||||||
|
[
|
||||||
|
array_key_last(
|
||||||
|
$height
|
||||||
|
)
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
ksort(
|
ksort(
|
||||||
@ -134,21 +155,15 @@ ksort(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Save file to destination
|
// Save file to destination
|
||||||
$filename = isset($argv[3]) ? $argv[3] : sprintf(
|
|
||||||
'%s/../data/import/[kevacoin][%s]%s',
|
|
||||||
__DIR__,
|
|
||||||
$argv[2],
|
|
||||||
$clitoris->file->name
|
|
||||||
);
|
|
||||||
|
|
||||||
file_put_contents(
|
file_put_contents(
|
||||||
$filename,
|
$argv[3],
|
||||||
base64_decode(
|
base64_decode(
|
||||||
implode('', $pieces)
|
implode('', $pieces)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
echo sprintf(
|
printf(
|
||||||
'saved to %s' . PHP_EOL,
|
'namespace "%s" saved to "%s"' . PHP_EOL,
|
||||||
$filename
|
$argv[2],
|
||||||
|
$argv[3]
|
||||||
);
|
);
|
153
cli/put.php
153
cli/put.php
@ -1,5 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// Init version
|
||||||
|
define(
|
||||||
|
'_CLITOR_IS_',
|
||||||
|
'1.3.0'
|
||||||
|
);
|
||||||
|
|
||||||
// Init helper
|
// Init helper
|
||||||
function _exec(
|
function _exec(
|
||||||
string $processor,
|
string $processor,
|
||||||
@ -24,38 +30,71 @@ function _exec(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check file exits
|
// Check processor exits
|
||||||
if (!file_exists($argv[2]))
|
if (empty($argv[1]))
|
||||||
{
|
{
|
||||||
exit('filename does not exist!' . PHP_EOL);
|
print(
|
||||||
|
'processor required' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get file hash sum
|
if (!file_exists($argv[1]))
|
||||||
$md5file = md5_file(
|
{
|
||||||
$argv[2]
|
print(
|
||||||
);
|
'processor does not exist' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check file exits
|
||||||
|
if (empty($argv[2]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'filename required' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($argv[2]))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'filename does not exist' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
// Get file name
|
// Get file name
|
||||||
$name = basename(
|
$basename = basename(
|
||||||
$argv[2]
|
$argv[2]
|
||||||
);
|
);
|
||||||
|
|
||||||
// Check filename not longer of protocol
|
// Check filename not longer of protocol
|
||||||
if (mb_strlen($name) > 255)
|
if (mb_strlen($basename) > 255)
|
||||||
{
|
{
|
||||||
$name = $md5file;
|
// Get file hash sum
|
||||||
|
$basename = md5_file(
|
||||||
|
$argv[2]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Dump event
|
||||||
|
print(
|
||||||
|
'Filename to long, used md5_file as key...' . PHP_EOL
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Split content to smaller parts, according to the protocol limits
|
// Split content to smaller parts (according to the protocol limits)
|
||||||
$size = isset($argv[3]) && $argv[3] <= 3072 ? (int) $argv[3] : 3072;
|
|
||||||
|
|
||||||
$pieces = str_split(
|
$pieces = str_split(
|
||||||
base64_encode(
|
base64_encode(
|
||||||
file_get_contents(
|
file_get_contents(
|
||||||
$argv[2]
|
$argv[2]
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
$size
|
3072
|
||||||
);
|
);
|
||||||
|
|
||||||
// Count total pieces
|
// Count total pieces
|
||||||
@ -63,67 +102,35 @@ $total = count(
|
|||||||
$pieces
|
$pieces
|
||||||
);
|
);
|
||||||
|
|
||||||
// Get software protocol details
|
|
||||||
$software = _exec(
|
|
||||||
$argv[1],
|
|
||||||
'-getinfo'
|
|
||||||
);
|
|
||||||
|
|
||||||
print_r($software);
|
|
||||||
|
|
||||||
// Create namespace to collect there data pieces
|
// Create namespace to collect there data pieces
|
||||||
$ns = _exec(
|
$ns = _exec(
|
||||||
$argv[1],
|
$argv[1],
|
||||||
sprintf(
|
sprintf(
|
||||||
"%s '%s'",
|
"keva_namespace '%s'",
|
||||||
'keva_namespace',
|
str_replace(
|
||||||
$name
|
"'",
|
||||||
|
"\'",
|
||||||
|
$basename
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
print_r($ns);
|
// Validate namespace created
|
||||||
|
if (empty($ns->namespaceId))
|
||||||
|
{
|
||||||
|
print(
|
||||||
|
'could not create namespace record' . PHP_EOL
|
||||||
|
);
|
||||||
|
|
||||||
// Create meta description for the future generations
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create meta record
|
||||||
print_r(
|
print_r(
|
||||||
_exec(
|
_exec(
|
||||||
$argv[1],
|
$argv[1],
|
||||||
sprintf(
|
sprintf(
|
||||||
"%s %s '%s' '%s'",
|
'keva_put %s %s %s', $ns->namespaceId, '_CLITOR_IS_', _CLITOR_IS_
|
||||||
'keva_put',
|
|
||||||
$ns->namespaceId,
|
|
||||||
'_CLITOR_IS_',
|
|
||||||
json_encode(
|
|
||||||
[
|
|
||||||
'version' => '1.0.0',
|
|
||||||
'model' =>
|
|
||||||
[
|
|
||||||
'name' => 'kevacoin',
|
|
||||||
'software' =>
|
|
||||||
[
|
|
||||||
'version' => $software->version,
|
|
||||||
'protocol' => $software->protocolversion
|
|
||||||
]
|
|
||||||
],
|
|
||||||
'pieces' =>
|
|
||||||
[
|
|
||||||
'total' => $total,
|
|
||||||
'size' => $size,
|
|
||||||
],
|
|
||||||
'file' =>
|
|
||||||
[
|
|
||||||
'name' => basename(
|
|
||||||
$argv[2]
|
|
||||||
),
|
|
||||||
'mime' => mime_content_type(
|
|
||||||
$argv[2]
|
|
||||||
),
|
|
||||||
'size' => filesize(
|
|
||||||
$argv[2]
|
|
||||||
),
|
|
||||||
'md5' => $md5file
|
|
||||||
]
|
|
||||||
]
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -147,20 +154,28 @@ foreach ($pieces as $key => $value)
|
|||||||
// Apply delays to prevent too-long-mempool-chain reject
|
// Apply delays to prevent too-long-mempool-chain reject
|
||||||
$delay = isset($argv[4]) && $argv[4] > 0 ? (int) $argv[4] : 60;
|
$delay = isset($argv[4]) && $argv[4] > 0 ? (int) $argv[4] : 60;
|
||||||
|
|
||||||
echo sprintf(
|
printf(
|
||||||
'%s/%s sent, waiting %s seconds...' . PHP_EOL,
|
'%s/%s sent, waiting %s seconds...' . PHP_EOL,
|
||||||
$key + 1,
|
$key + 1,
|
||||||
$total,
|
$total,
|
||||||
$delay
|
$delay
|
||||||
);
|
);
|
||||||
|
|
||||||
sleep($delay);
|
sleep(
|
||||||
|
$delay
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print result
|
// Done
|
||||||
echo sprintf(
|
printf(
|
||||||
'done! run to extract: php %s/get.php %s %s' . PHP_EOL,
|
'data successfully sent to namespace "%s"' . PHP_EOL,
|
||||||
|
$ns->namespaceId
|
||||||
|
);
|
||||||
|
|
||||||
|
printf(
|
||||||
|
"run to extract: /usr/bin/php '%s/get.php' '%s' '%s' '/path/to/%s'" . PHP_EOL,
|
||||||
__DIR__,
|
__DIR__,
|
||||||
$argv[1],
|
$argv[1],
|
||||||
$ns->namespaceId
|
$ns->namespaceId,
|
||||||
|
$basename
|
||||||
);
|
);
|
Loading…
x
Reference in New Issue
Block a user