Merge branch 'master' into usd_bounties
|
@ -4,3 +4,6 @@ category: other
|
|||
---
|
||||
|
||||
Yep. You can see it at [https://explorer.lbry.io](https://explorer.lbry.io).
|
||||
|
||||
If the enslaved squirrels that run our primary explorer are sleeping, try
|
||||
[http://yiimp.ccminer.org/explorer/LBC](http://yiimp.ccminer.org/explorer/LBC)
|
||||
|
|
|
@ -15,7 +15,7 @@ Make a copy of the `$HOME/.lbryum/wallets` directory.
|
|||
|
||||
## lbrycrd wallet
|
||||
|
||||
You may have a lbrycrd wallet if you used an early version of LBRY or if you ran `lbrycrdd` manually. Look for the `C:\Users\%USER%\AppData\Roaming\lbrycrd` directory on Windows, or the `$HOME/.lbrycrd` directory on MacOS or Linux. If you have this directory, back up the `wallet.dat` file therein.
|
||||
You may have a lbrycrd wallet if you used an early version of LBRY or if you ran `lbrycrdd` manually. Look for the `C:\Users\%USER%\AppData\Roaming\lbrycrd` directory on Windows, the `$HOME/Library/Application Support/lbrycrd` directory on MacOS, or the `$HOME/.lbrycrd` directory on Linux. If you have this directory, back up the `wallet.dat` file therein.
|
||||
|
||||
## See Also
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ category: mining
|
|||
Library Credits (LBC) are mined over a 20-year Proof of Work period.
|
||||
Block rewards increase every 100 blocks by 1LBC, peak at 500, and decline slowly.
|
||||
|
||||
LBRY mining is dominated by the GPU market and we don't see CPU mining as econonmically viable at this point. If you still want to CPU mine to help the network, see instructions below.
|
||||
|
||||
For GPU mining, please see our list of [pools](https://lbry.io/faq/mining-pools). Each pool has a slightly different setup so please check their Getting Started page.
|
||||
|
||||
For CPU mining, LBRY binaries are out for OS X, Windows, and Ubuntu. Others may try compiling from source.
|
||||
|
|
23
content/news/109-growing-green.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
author: reilly
|
||||
title: 'Supergreen'
|
||||
date: '2017-05-04 00:19:30'
|
||||
cover: 'growgreens-banner.PNG'
|
||||
---
|
||||
We’ve been toiling away building LBRY for eighteen months now.
|
||||
|
||||
So, we decided it was time to step outside. We’ve never been outside before, but heard it was pretty fun, and this is what we found.
|
||||
|
||||

|
||||
|
||||
Growing Your Greens is one of the oldest online gardening shows. John Kohler has been helping people cultivate their urban gardens for more than *eight years.* That’s like, O.G. YouTube days... back when YouTube was... a happier place.
|
||||
|
||||
But he’s moving onto greener pastures right here on LBRY.
|
||||
|
||||
If you’ve been looking to build your own garden and don’t know where to start, this is bar none the best place on the internet to learn from the master. John Kohler’s gardening adventures and tips can soon be found at:
|
||||
|
||||
- lbry://@GrowingYourGreens
|
||||
|
||||
Don’t stay outside long, though. You’ll miss LBRY too much.
|
||||
|
||||
**Not on LBRY yet?** [Get an invite here](https://lbry.io/get). Have some tips and tricks of your own craft to share? Email reilly@lbry.io to **spread** your **knowledge** faster than Tai Lopez in a lambo.
|
27
content/news/110-julia-galef.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
author: reilly
|
||||
title: 'Rationale'
|
||||
date: '2017-05-11 00:19:30'
|
||||
cover: 'juliagalef-banner3.jpg'
|
||||
---
|
||||
Like many internet technologies, the LBRY network was born not only as a response to economic incentives, but as a philosophical and ethical answer to the status quo.
|
||||
|
||||
In our case, the status quo are monolithic content distribution giants.
|
||||
|
||||
Every now and then, some high level reflection can be a powerful tool. And there is no one better at that than rationality rock star Julia Galef.
|
||||
|
||||

|
||||
|
||||
Julia Galef’s podcast [Rationally Speaking](http://rationallyspeakingpodcast.org/) and vlogs were some of the first content series we sought to share on LBRY.
|
||||
|
||||
One of the most critical minds of our day, Julia co-founded the non-profit Center for Applied Rationality in 2012, and has written about rationality and philosophy for *Scientific American*, Slate, *Popular Science*, and more.
|
||||
|
||||
Her vlog lectures, covering paradoxes, beliefs, morality, and everything under the philosophical sun, can be found on LBRY at:
|
||||
|
||||
lbry://@JuliaGalef
|
||||
|
||||
(The Rationally Speaking podcast series will also be available @JuliaGalef--as well as other podcasts--when LBRY introduces its native audio player.)
|
||||
|
||||
LBRY: now with free thinking caps.
|
||||
|
||||
**Not on LBRY yet?** [Get an invite here](https://lbry.io/get). Got wisdom and an audience? Email reilly@lbry.io to enlighten us all.
|
22
content/news/111-kokesh.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
author: reilly
|
||||
title: '...it isn’t free'
|
||||
date: '2017-05-11 00:19:30'
|
||||
cover: 'kokesh-banner.jpg'
|
||||
---
|
||||
Freedom might not be free. But the works of freedom fighter Adam Kokesh definitely are.
|
||||
|
||||
Courtesy of the first amendment, LBRY brings you freedom of speech with a side of kick-ass.
|
||||
|
||||

|
||||
|
||||
US military veteran-turned-liberty activist, there have been fewer more attractive lighting rods in the freedom movement than Mr. Kokesh. From dancing at the Jefferson Memorial, to cocking a shotgun 36 inches left of where he was so supposed to be standing, to off-the-grid living, no one pushes the boundaries in the name of liberty quite like this.
|
||||
|
||||
The chronicles of Kokesh are now documented, boldly and uncensored at:
|
||||
|
||||
lbry://@AdamKokesh
|
||||
|
||||
Have a message to share? Follow Adam’s lead and sync your YouTube channel with the LBRY sync API: https://api.lbry.io/yt/connect
|
||||
|
||||
|
||||
**Not on LBRY yet?** [Get an invite here](https://lbry.io/get). Feel like breaking the chains of YouTube? Email reilly@lbry.io to experience what liberty is really about.
|
|
@ -220,7 +220,7 @@ class ContentActions extends Actions
|
|||
{
|
||||
$lastItem = end($items);
|
||||
$project = $lastItem['project'];
|
||||
if (!isset($projectMaxVersions[$project]) || $lastItem['version'] > $projectMaxVersions[$project])
|
||||
if (!isset($projectMaxVersions[$project]) || strnatcasecmp($lastItem['version'], $projectMaxVersions[$project]) > 0)
|
||||
{
|
||||
$projectMaxVersions[$project] = $lastItem['version'];
|
||||
}
|
||||
|
|
64
lib/thirdparty/Github.class.php
vendored
|
@ -13,8 +13,10 @@ class Github
|
|||
{
|
||||
$ext = substr($asset['name'], -4);
|
||||
if (
|
||||
($os == OS::OS_LINUX && ($ext == '.deb' || in_array($asset['content_type'], ['application/x-debian-package', 'application/x-deb']))) ||
|
||||
($os == OS::OS_OSX && ($ext == '.dmg' || in_array($asset['content_type'], ['application/x-diskcopy', 'application/x-apple-diskimage']))) ||
|
||||
($os == OS::OS_LINUX &&
|
||||
($ext == '.deb' || in_array($asset['content_type'], ['application/x-debian-package', 'application/x-deb']))) ||
|
||||
($os == OS::OS_OSX &&
|
||||
($ext == '.dmg' || in_array($asset['content_type'], ['application/x-diskcopy', 'application/x-apple-diskimage']))) ||
|
||||
($os == OS::OS_WINDOWS && $ext == '.exe')
|
||||
)
|
||||
{
|
||||
|
@ -105,7 +107,7 @@ class Github
|
|||
$allReleases = [];
|
||||
|
||||
$project = 'lbry';
|
||||
$page = 1;
|
||||
$page = 1;
|
||||
|
||||
do
|
||||
{
|
||||
|
@ -116,7 +118,7 @@ class Github
|
|||
return $release + ['project' => $project];
|
||||
}, array_filter($releases, function ($release)
|
||||
{
|
||||
return isset($release['tag_name']) && isset($release['published_at']) && $release['published_at'];
|
||||
return ($release['tag_name'] ?? null) && ($release['published_at'] ?? null) && !$release['prerelease'];
|
||||
})));
|
||||
} while (count($releases) >= 30);
|
||||
|
||||
|
@ -124,58 +126,28 @@ class Github
|
|||
{
|
||||
$group = null;
|
||||
$matches = null;
|
||||
if (isset($release['tag_name']) && preg_match('/v(\d+)\.(\d+).?(\d+)?/', $release['tag_name'], $matches))
|
||||
if (preg_match('/^v(\d+)\.(\d+)\./', $release['tag_name'] ?? '', $matches))
|
||||
{
|
||||
$group = 'v' . $matches[1] . '.' . $matches[2];
|
||||
}
|
||||
if ($group)
|
||||
{
|
||||
$sets[$group][] = array_intersect_key($release, [
|
||||
'prerelease' => null, 'tag_name' => null, 'published_at' => null, 'project' => null
|
||||
]) + [
|
||||
'date' => date('Y-m-d', strtotime($release['created_at'])),
|
||||
//I thought published_at, but GitHub displays created_at and published_at is out of sync sometimes (0.3.2, 0.3.3)
|
||||
'name' => $release['name'] ?: $release['tag_name'],
|
||||
'url' => $release['html_url'],
|
||||
'major_version' => $matches[1],
|
||||
'minor_version' => $matches[2],
|
||||
'patch_version' => isset($matches[3]) ? $matches[3] : null,
|
||||
'version' => $matches[1] . '.' . $matches[2] . '.' . (isset($matches[3]) ? $matches[3] : ''),
|
||||
'body' => ParsedownExtra::instance()->text($release['body'])
|
||||
];
|
||||
$sets[$group][] = [
|
||||
'project' => $release['project'],
|
||||
'date' => date('Y-m-d', strtotime($release['created_at'])),
|
||||
'created_at' => $release['created_at'],
|
||||
'name' => $release['name'] ?: $release['tag_name'],
|
||||
'url' => $release['html_url'],
|
||||
'version' => $release['tag_name'],
|
||||
'body' => ParsedownExtra::instance()->text($release['body'])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
uasort($sets, function ($sA, $sB)
|
||||
{
|
||||
if ($sA[0]['project'] != $sB[0]['project'])
|
||||
{
|
||||
return $sA[0]['project'] < $sB[0]['project'] ? -1 : 1;
|
||||
}
|
||||
if ($sA[0]['major_version'] != $sB[0]['major_version'])
|
||||
{
|
||||
return $sA[0]['major_version'] < $sB[0]['major_version'] ? -1 : 1;
|
||||
}
|
||||
if ($sA[0]['minor_version'] != $sB[0]['minor_version'])
|
||||
{
|
||||
return $sA[0]['minor_version'] < $sB[0]['minor_version'] ? -1 : 1;
|
||||
}
|
||||
return $sA[0]['patch_version'] < $sB[0]['patch_version'] ? -1 : 1;
|
||||
});
|
||||
|
||||
uasort($sets, function ($sA, $sB) { return $sA[0]['created_at'] <=> $sB[0]['created_at']; });
|
||||
foreach ($sets as $group => &$groupSet)
|
||||
{
|
||||
usort($groupSet, function ($rA, $rB) {
|
||||
if ($rA['major_version'] != $rB['major_version'])
|
||||
{
|
||||
return $rA['major_version'] < $rB['major_version'] ? -1 : 1;
|
||||
}
|
||||
if ($rA['minor_version'] != $rB['minor_version'])
|
||||
{
|
||||
return $rA['minor_version'] < $rB['minor_version'] ? -1 : 1;
|
||||
}
|
||||
return $rA['patch_version'] < $rB['patch_version'] ? -1 : 1;
|
||||
});
|
||||
usort($groupSet, function ($rA, $rB) { return $rA['created_at'] <=> $rB['created_at']; });
|
||||
}
|
||||
|
||||
return $sets;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<?php $isOpen = !isset($lastItem['project']) || !isset($lastItem['version']) || $lastItem['version'] === $projectMaxVersions[$lastItem['project']] ?>
|
||||
<h2 class="roadmap-group-title" <?php echo !$isOpen ? 'style="display: none"' : '' ?>">
|
||||
<span class="roadmap-group-title-label">
|
||||
<?php echo $group ?> <?php echo isset($lastItem['version']) && $lastItem['version'] === $projectMaxVersions[$lastItem['project']] ? '(latest )' : '' ?>
|
||||
<?php echo $group ?> <?php echo isset($lastItem['version']) && $lastItem['version'] === $projectMaxVersions[$lastItem['project']] ? '(latest)' : '' ?>
|
||||
</span>
|
||||
</h2>
|
||||
<div class="roadmap-group <?php echo !$isOpen ? 'roadmap-group-closed' : '' ?>">
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<code class="code-bash"><span class="code-bash__prompt">$</span>curl 'http://localhost:5279/lbryapi' --data '{"method":"wallet_balance"}'
|
||||
<span class="code-bash__response">[50.00000000]</span></code>
|
||||
<h3 id="publish">Publishing</h3>
|
||||
<p>Publishing to LBRY is just as easy as everything else! If you publish something, we'll send you an additional 50 LBC for further use.</p>
|
||||
<p>Publishing to LBRY is just as easy as everything else! If you publish something, we'll send you an additional 25 LBC for further use.</p>
|
||||
<p>Not sure what to publish? We recommend your favorite picture or home video. Or just grab something from <a class="link-primary" href="https://archive.org/details/movies">here</a>.</p>
|
||||
<code class="code-bash"><span class="code-bash__prompt">$</span>curl 'http://localhost:5279/lbryapi' --data '{"method":"publish", "params": {
|
||||
"name": "electricsheep",
|
||||
|
@ -44,7 +44,7 @@
|
|||
</div>
|
||||
<h3>Enjoy a Hollywood Film</h3>
|
||||
<p><a href="http://www.imdb.com/title/tt1995341/" class="link-primary">It's a Disaster</a> starring David Cross is just one of tens of thousands of great pieces of content available. Check it out!</p>
|
||||
<code class="code-bash"><span class="code-bash__prompt">$</span>curl 'http://localhost:5279/lbryapi' --data '{"method":"get","params":{"name":"itsadisaster"} }'
|
||||
<code class="code-bash"><span class="code-bash__prompt">$</span>curl 'http://localhost:5279/lbryapi' --data '{"method":"get","params":{"uri":"itsadisaster"} }'
|
||||
<span class="code-bash__response">[
|
||||
{
|
||||
<span class="code-bash__comment">//some response fields omitted for brevity</span>
|
||||
|
|
BIN
web/img/blog-covers/growgreens-banner.PNG
Normal file
After Width: | Height: | Size: 4.1 MiB |
BIN
web/img/blog-covers/juliagalef-banner.JPG
Normal file
After Width: | Height: | Size: 362 KiB |
BIN
web/img/blog-covers/juliagalef-banner2.jpg
Normal file
After Width: | Height: | Size: 302 KiB |
BIN
web/img/blog-covers/juliagalef-banner3.jpg
Normal file
After Width: | Height: | Size: 294 KiB |
BIN
web/img/blog-covers/kokesh-banner.jpg
Normal file
After Width: | Height: | Size: 166 KiB |
BIN
web/img/news/growgreens-inline2.PNG
Normal file
After Width: | Height: | Size: 213 KiB |
BIN
web/img/news/juliagalef-inline.jpg
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
web/img/news/kokesh-inline.jpg
Normal file
After Width: | Height: | Size: 165 KiB |