Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
92ac43af
Unverified
提交
92ac43af
authored
7月 13, 2018
作者:
Whyrusleeping
提交者:
GitHub
7月 13, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5179 from ipfs/release-0.4.16
Ipfs 0.4.16 release
上级
a9efa7e2
7bcc9caa
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
102 行增加
和
56 行删除
+102
-56
lastpubver
.gx/lastpubver
+1
-1
CHANGELOG.md
CHANGELOG.md
+99
-53
package.json
package.json
+1
-1
version.go
repo/config/version.go
+1
-1
没有找到文件。
.gx/lastpubver
浏览文件 @
92ac43af
0.4.16
-rc3: QmamgrmUW2VvJA8FsGGvgYMfSdZzQMzk1fAJewMJEEQrf9
0.4.16
: QmTRP6dcuYwcGDvAH8HvJtoupPrhZDQ8AoxMEn9gMzbgMy
CHANGELOG.md
浏览文件 @
92ac43af
...
...
@@ -3,60 +3,105 @@
## 0.4.16
Ipfs 0.4.16 is a fairly small release in terms of changes to the ipfs codebase,
but it contains a huge amount of changes and improvements from libraries we
depend on, notably libp2p. This version of ipfs contains the changes for libp2p
v6.0.5, In that release, we made significant changes to the codebase to allow
for more easy integration of future transports and modules. We also improved
some of our dialing logic, fixed a couple issues in the DHT, and added
support for a new way to write ipfs multiaddrs. The transport refactor now
allows us to much more easily add in support for running libp2p (and by
extension, ipfs) over QUIC, or using TLS instead of secio for encrypting
connections. Our
[
QUIC
transport](https://github.com/libp2p/go-libp2p-quic-transport) currently
works, and can be plugged into libp2p manually (though note that it is
still experimental, as the upstream spec is still in flux). Further work is
needed to make enabling this inside ipfs easy and not require
recompilation. For more information on the refactor and libp2p v6.0.0, see
the
[
release blog post
](
https://ipfs.io/blog/39-go-libp2p-6-0-0/
)
. Between
libp2p v6.0.0 and v6.0.5, there have been some changes worth pointing out
as well. The swarm dialer has been improved to have shortened timeouts when
dialing peers in 'local' subnets. This prevents large dial timeouts from
wasting dial time when the subnet you are dialing is not accessible. The
TCP handshake timeout has also been dropped to 5 seconds, improving the
performance of dials to non-existent addresses. In the DHT, we have fixed
the query code to put records to the K closest peers we can actually
connect to, which is a strict superset of the peers we previously put
records to: The peers we could connect to out of the K closest we learned
about. Finally, we are changing the way that people write 'ipfs'
multiaddrs. Currently, ipfs multiaddrs look something like
but it contains a huge amount of changes and improvements from the libraries we
depend on, notably libp2p.
This release includes small a repo migration to account for some changes to the
DHT. It should only take a second to run but, depending on your configuration,
you may need to run it manually.
You can run a migration by either:
1.
Selecting "Yes" when the daemon prompts you to migrate.
2.
Running the daemon with the
`--migrate=true`
flag.
3.
Manually
[
running
](
https://github.com/ipfs/fs-repo-migrations/blob/master/run.md#running-repo-migrations
)
the migration.
### Libp2p
This version of ipfs contains the changes made in libp2p from v5.0.14 through
v6.0.5. In that time, we have made significant changes to the codebase to allow
for easier integration of future transports and modules along with the usual
performance and reliability improvements. You can find many of these
improvements in the libp2p 6.0
[
release blog
post](https://ipfs.io/blog/39-go-libp2p-6-0-0/).
The primary motivation for this refactor was adding support for network
transports like QUIC that have built-in support for encryption, authentication,
and stream multiplexing. It will also allow us to plug-in new security
transports (like TLS) without hard-coding them.
For example, our
[
QUIC
transport](https://github.com/libp2p/go-libp2p-quic-transport) currently works,
and can be plugged into libp2p manually (though note that it is still
experimental, as the upstream spec is still in flux). Further work is needed to
make enabling this inside ipfs easy and not require recompilation.
On the user-visible side of things, we've improved our dialing logic and
timeouts. We now abort dials to local subnets after 5 seconds and abort all
dials if the TCP handshake takes longer than 5 seconds. This should
significantly improve performance in some cases as we limit the number of
concurrent dials and slow dials to non-responsive peers have been known to clog
the dialer, blocking dials to reachable peers. Importantly, this should improve
DHT performance as it tends to spend a disproportional amount of time connecting
to peers.
We have also made a few noticeable changes to the DHT: we've significantly
improved the chances of finding a value on the DHT, tightened up some of our
validation logic, and fixed some issues that should reduce traffic to nodes
running in dhtclient mode over time.
Of these, the first one will likely see the most impact. In the past, when
putting a value (e.g., an IPNS entry) into the DHT, we'd try to put the value to
K peers (where K for us is 20). However, we'd often fail to connect to many of
these peers so we'd end up putting the value to significantly fewer than K
peers. We now try to put the value to the K peers we can actually connect to.
Finally, we've fixed JavaScript interoperability in go-multiplex, the one stream
muxer that both go-libp2p and js-libp2p implement. This should significantly
improve go-libp2p and js-libp2p interoperability.
### Multiformats
We are also changing the way that people write 'ipfs' multiaddrs. Currently,
ipfs multiaddrs look something like
`/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ`
.
But ca
ling them 'ipfs' multiaddrs is a bit misleading, as this is actually
the multiaddr of a libp2p peer that
runs ipfs. Other protocols using libp2p
right now still have to use multiaddrs that say 'ipfs', without actuall
y
hav
ing anything to do with ipfs. Towards that, we are renaming them to
'p2p' multiaddrs. Moving forward
these addresses will be written as:
However, cal
ling them 'ipfs' multiaddrs is a bit misleading, as this is actually
the multiaddr of a libp2p peer that
happens to run ipfs. Other protocols built
on libp2p right now still have to use multiaddrs that say 'ipfs', even if the
y
hav
e nothing to do with ipfs. Therefore, we are renaming them to 'p2p'
multiaddrs. Moving forward,
these addresses will be written as:
`/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ`
.
This release adds support for
*parsing*
both types of addresses into the
same binary format, and the binary format is remaining exactly the same. A
future release will have the ipfs daemon switch to
*printing*
out addresses
this way, once a large enough portion of the network has upgraded.
On the ipfs side of things, we've added a few small features. The first of
which is moving to embedding public keys inside IPNS records. This allows
lookups to be faster, as we only need to fetch the record itself (and not the
public key separately), and also fixes an issue where DHT peers wouldnt store a
record for a peer if they didn't have their public key already. Combined with
some of the DHT and dialing fixes, this should improve the performance of IPNS
(once a majority of the network updates).
The second feature added is the automatic inclusion of the git plugin in the
default build. With this, ipfs can ingest git repositories and other data
directly, and operate over it. For more information on this, see
[
the
go-ipld-git repo](https://github.com/ipfs/go-ipld-git).
Various other changes were merged in this release, including great
documentation, a good number of smaller bugfixes, refactoring and a good bit
more. For the details, see the changelog below.
This release adds support for
*parsing*
both types of addresses (
`.../ipfs/...`
and
`.../p2p/...`
) into the same network format, and the network format is
remaining exactly the same. A future release will have the ipfs daemon switch to
*printing*
out addresses this way once a large enough portion of the network
has upgraded.
N.B., these addresses are
*not*
related to IPFS
*file*
names (
`/ipfs/Qm...`
).
Disambiguating the two was yet another motivation to switch the protocol name to
`/p2p/`
.
### IPFS
On the ipfs side of things, we've started embedding public keys inside IPNS
records and have enabled the Git plugin by default.
Embedding public keys inside IPNS records allows lookups to be faster as we only
need to fetch the record itself (and not the public key separately). It also
fixes an issue where DHT peers wouldn't store a record for a peer if they didn't
have their public key already. Combined with some of the DHT and dialing fixes,
this should improve the performance of IPNS (once a majority of the network
updates).
Second, our public builds now include the Git plugin (in past builds, you could
add it yourself, but doing so was not easy). With this, ipfs can ingest and
operate over Git repositories and commit graphs directly. For more information
on this, see
[
the go-ipld-git repo
](
https://github.com/ipfs/go-ipld-git
)
.
Finally, we've included many smaller bugfixes, refactorings, improved
documentation, and a good bit more. For the full details, see the changelog
below.
## 0.4.16-rc3 2018-07-09
-
Bugfixes
...
...
@@ -69,7 +114,7 @@ more. For the details, see the changelog below.
-
Fix usage of file name vs path name in adder (
[
ipfs/go-ipfs#5167
](
https://github.com/ipfs/go-ipfs/pull/5167
)
)
-
Fix
`ipfs update`
working with migrations (
[
ipfs/go-ipfs#5194
](
https://github.com/ipfs/go-ipfs/pull/5194
)
)
-
Documentation
-
Gramm
e
r fix in fuse docs (
[
ipfs/go-ipfs#5164
](
https://github.com/ipfs/go-ipfs/pull/5164
)
)
-
Gramm
a
r fix in fuse docs (
[
ipfs/go-ipfs#5164
](
https://github.com/ipfs/go-ipfs/pull/5164
)
)
## 0.4.16-rc1 2018-06-27
-
Features
...
...
@@ -97,6 +142,7 @@ more. For the details, see the changelog below.
-
Fix panic, Don't handle errors with fallthrough (
[
ipfs/go-ipfs#5072
](
https://github.com/ipfs/go-ipfs/pull/5072
)
)
-
Fix how filestore is hooked up with caching (
[
ipfs/go-ipfs#5122
](
https://github.com/ipfs/go-ipfs/pull/5122
)
)
-
Add record validation to offline routing (
[
ipfs/go-ipfs#5116
](
https://github.com/ipfs/go-ipfs/pull/5116
)
)
-
Fix
`ipfs update`
working with migrations (
[
ipfs/go-ipfs#5194
](
https://github.com/ipfs/go-ipfs/pull/5194
)
)
-
General Changes and Refactorings
-
Remove leftover bits of dead code (
[
ipfs/go-ipfs#5022
](
https://github.com/ipfs/go-ipfs/pull/5022
)
)
-
Remove fuse platform build constraints (
[
ipfs/go-ipfs#5033
](
https://github.com/ipfs/go-ipfs/pull/5033
)
)
...
...
package.json
浏览文件 @
92ac43af
...
...
@@ -551,6 +551,6 @@
"language"
:
"go"
,
"license"
:
"
MIT
"
,
"name"
:
"
go-ipfs
"
,
"version"
:
"0.4.16
-rc3
"
"version"
:
"0.4.16"
}
repo/config/version.go
浏览文件 @
92ac43af
...
...
@@ -4,6 +4,6 @@ package config
var
CurrentCommit
string
// CurrentVersionNumber is the current application's version literal
const
CurrentVersionNumber
=
"0.4.16
-rc3
"
const
CurrentVersionNumber
=
"0.4.16"
const
ApiVersion
=
"/go-ipfs/"
+
CurrentVersionNumber
+
"/"
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论