Change Log
[0.8.0] - 2017-05-22
Kouncil improvements and completion, GRPC interface for the KV store, basic prometheus monitoring.
Added
- GRPC interface to the key-value store using the
‑‑grpcoption. - Prometheus-compatible metrics collection endpoint using the
‑‑prometheusoption. - Add a software TCP heartbeat to detect and drop TCP connection stale at the OS level.
- Enable nodes to advertise they won't store any more block for now.
- The option
‑‑peernow attempts to connect to all the machines matching the address. - Some cryptographic features can be disabled at network creation time: filesystem at-rest encryption (--disable-encrypt-at-rest), RPC encryption (--disable-encrypt-rpc), and signature computation/validation (--disable-signature).
Changed
- In Kouncil, also retry connecting if the very first connection attempt fails.
- In Kouncil, preserve endpoints and try reconnecting for a certain time after a peer disappear.
- Guarantee only one connection is opened to any peer.
- Prefer
‑‑siloover‑‑storageeverywhere relevant, e.g.infinit network create --silo SILO --name NAME. - Change silo creation CLI to make the silo type a subcommand instead
of an option:
infinit silo create TYPE OPTIONS. - Changed CLI options
‑‑statsinto‑‑statfor consistency. - The RPC server can now optionally serve RPCs in parallel. Enable by setting the value of INFINIT_RPC_SERVE_THREADS to 0 for unlimited, or N for a limit of N parallel tasks.
- Reading CHB (immutable blocks) now balances the reads between the available servers based on number of transfers running.
- In the filesystem, removing big files is now much faster than before.
Fixed
- Fix several memory errors on shutdown.
- In Kouncil, advertise removed blocks to other nodes.
- Repair legacy binaries for backward compatibility
(e.g.,
infinit-volumeinstead of the currentinfinit volume). - In Kouncil, passing multiple --peer to the command line now works as expected.
- In Kouncil, fix a bug that caused
infinit networkto abort when the initialization RPC failed. - Error messages from the CLI are more consistent.
- In Kelips, clients (nodes not providing storage) are now properly notified of new peers and peer endpoint changes.
- In Cache, fix handling of
‑‑cache-ram-size=0volume option: do not cache any mutable block. - In the filesystem, disable directory prefetching tasks if
‑‑cacheis disabled. - In the CLI,
‑‑protocoloption is now properly handled byinfinit network create
[0.7.3] - 2017-02-15
Command line interface revamp to the "Docker style":
infinit <object> <mode> options.... This change is mostly backward
compatible, but some adjustments may be needed.
Added
- Support
‑‑advertise-hostininfinit network. - Add
‑‑no-local-endpointsand‑‑no-public-endpointsoptions.
Changed
- Support new CLI style
infinit <object> <mode>and prefer it. - Limit the number of prefetching background task.
- Do not advertise Apple Wireless Direct Link IP.
- Use Kouncil as the default overlay.
Fixed
- Support transitive discovery and diverse connections patterns in Kouncil.
- Fix block leak when removing an unopened file.
- Fix pure-TCP mode support.
[0.7.2] - 2016-11-28
New Kouncil overlay, network inspection and bugfixes.
Added
- Add new
Kounciloverlay. - Add
infinit-network --inspectcommand to query a running network about its status and configuration. - Provide Alpine Linux builds.
Changed
- Better output and clearer options for
infinit-doctor. - Better handling of removed nodes in
Kelips: the network should now recover in seconds instead of minutes. - Retry binding instead of aborting when a network bind() error occurs and no port was specified.
- Show more digits when reporting size in
infinit-journal.
Fixed
- Better POSIX compliance when multiple file handles on the same file are used.
- Remove the root block marker when
infinit-network --purgeis called. - Preserve a deleted file's data until all handles are closed.
- Fixed multiple race conditions in filesystem layer that could cause crashes.
[0.7.1] - 2016-10-31
Docker volume plugin improvements, bug fixes and performance improvements.
Added
- Add
‑‑peers-fileoption toinfinit-volumeandinfinit-networkto store known peers to disk. - Enable to pick listen inferface with
‑‑listen. - Add descriptions for users, storages, networks, volumes and drives.
- Add
‑‑networkingtoinfinit-doctorto test connection speed between machines. - Add support for merging successive block updates into one operation in
asyncconsensus. - The docker volume plugin now supports volume creation.
- The docker volume plugin now lists volumes from the default network, if any.
- Option
‑‑create-roottoinfinit-volume --createto push the root directory upon creation. - Option
‑‑peertoinfinit-network --createto systematically connect to a fixed set of peers. - Option
‑‑register-servicetoinfinit-volume --createto register the volume descriptor inside the network. - Option
‑‑servicetoinfinit-volume --fetchto fetch volumes descriptor from the network. - Option
‑‑list-servicestoinfinit-networkto list all registered volumes from a network.
Changed
- Poll beyond periodically for endpoints changes.
- No longer require an email address to push a user to the Hub.
- Improved cryptography performance.
Fixed
- Enable to interrupt adding credentials with
infinit-credentials. - Cache peer connections.
- Daemonize
infinit-networkandinfinit-volumeas late as possible to catch more errors syncronously. - Fix a bug in key hash cache that caused RPC connection to fail upon reconnection
- Restore domain name resolution for
‑‑peeroptions. - Do not connect twice to hosts passed via
‑‑peer. - Fix some shutdown assertions.
- Fix deadlock in Kelips overlay implementation.
- Fix issue with dokany 1.0.0.5000 on Windows.
[0.7.0] - 2016-09-23
Windows release, bandwidth and CPU usage optimization, bugfixes.
Added
- Windows release.
- IPv6 support.
- Add new
Koordinateoverlay that enables running several overlay. algorithms on nodes. - Add
‑‑scriptmode toinfinit-acl --list. - Support
O_EXCLwhen opening files. - Support for S3 compatible storages.
Changed
- Optimize Kelips packet size.
- Optimize blocks transmitted size.
- Make
‑‑filesystemthe default type forinfinit-storage --create. - Use a single UDP socket for all UTP networking.
- Resolve backtrace symbols lazily to save CPU.
- Cache group blocks address resolution to save CPU.
- Standardize
-nto mean‑‑nameand-Nto mean‑‑network. - Reduce logs impact on CPU.
Fixed
- Fill creation time attributes macOS.
- Refuse multiple storage types in
infinit-storage --create. - Refuse relinking a linked network.
- Return
ENOTEMPTYinstead ofEISDIRwhen expected. - Yield
.and..when listing directories. - Fix SEGV in
infinit-acl --set --others-mode. - Fix UTF-8 characters serialization in configuration files.
- Enable to read ACLs of a file with no read permissions on Linux.
[0.6.2] - 2016-08-12
Docker volume plugin and shutdown behavior fixes.
Added
- Enable to forcefully kill pending fs operation on shutdown with a
triple
SIGINT. - Add
infinint-daemonthat can act as a Docker volume plugin. - Enable to fetch users with their short key hash from the hub.
Fixed
- Fix segmentation fault on shutdown.
[0.6.1] - 2016-08-01
Diagnostic utilities, ability to link networks with several users, bug fixes and performance improvements.
Added
- Add
‑‑scriptmode toinfinit-network. - Add
infinit-doctorto diagnose common setup issues. - Add
‑‑describemode toinfinit-journalto get human friendly descriptions of pending asynchronous operations.
Changed
- Require
‑‑allow-root-creationto create the root block withinfinit-volume. - Make Kelips the default overlay.
- Fix conflict handling on file removal.
- Show administrator in owners in
infinit-acl --list. - Prevent changing network admin permissions.
- Push endpoints to beyond before fetching them, to ensure nodes always see each other.
- Reduce Kelips packet size, improving network bandwidth performance.
Fixed
- Expect mode to be the first argument of all binaries, as any prepended argument was previously ignored.
- Enable to set ACLs on symlinks.
- Check permissions locally to fail immediately on
unlinkandrmdirin asynchronous mode. - Fix swapped
randwflags in permissions. - Fix error when deserializing mutable blocks with
infinit-block. - Linking a network with several users will now behave correcly.
- Fix deadlock on SIGINT.
Removed
- Remove experimental Kademlia overlay.
- Remove testing Stonehenge overlay.
[0.6.0] - 2016-06-06
Automatic replication of under-replicated data blocks and network performance improvement.
Added
- Automatically rebalance under-replicated data blocks to new nodes.
- Send network queries in batch when possible.
- Enable to interrupt remote procedure call to save time when a query is discarded.
- Enable to set the inherit flag in default network permissions.
- Support JSON output with
‑‑scriptfor operation‑‑listininfinit-drive,infinit-network,infinit-passport,infinit-userandinfinit-volume. - Support
‑‑pullin combination with‑‑deleteto also remove entities from the hub ininfinit-drive,infinit-network,infinit-passport,infinit-userandinfinit-volume. - Add Kelips batch requests, greatly improving performance for large set of files.
- Push storage stats to the hub in
infinit-networkif‑‑pushis passed. infinit-acl: Enable to refer to users and groups with their short key hash.
Removed
- Remove the option to delete groups which will be handled properly later.
Fixed
- Fix a crash when renaming a file to a non-writable location.
- Fix file loss when renaming get interrupted.
- Fix deserializing mutable blocks with
infinit-block.
[0.5.5] - 2016-04-25
Automatic replication of under-replicated metadata blocks and CPU usage improvement.
Added
- Automatically rebalance under-replicated metadata blocks to new nodes.
- Synchronize file content on
fsyncsystem call. - Cache the root block address locally to avoid recreating one if all storage nodes are down.
- Add
infinit-journalbinary to inspect asynchronous write queue. - Add
infinit-connectivityto test network connectivity capabilities. - Publish public IP to beyond.
Changed
- Shorten many logs for readability.
- Update OpenSSL to 1.0.2g for security fixes, although we are not vulnerable to DROWN attacks.
- Update Curl to 7.47.1 because why not.
Fixed
- Fix IO error when performing
fsyncon an unlinked file. - Fix infinite recursion on certain log levels.
- Remove immutable blocks cache on disk when the corresponding file is deleted.
- Fix SEGV when shutting down while deciphering a block.
- Handle conflicts when changing world permissions on a directory.
- Fix misreported file size upon
truncateorftruncate. - Fixed async cache deadlock upon conflict on group blocks.
- Ensure prefetcher work in parallel on large directories.
- Report error if no servers are available to store data block.
- Fix race condition when connecting several time to a peer.
[0.5.4] - 2016-03-01
Hotfix for disk performance, persistent disk cache for file contents.
Added
- Implement
statfssystem call. - Add a disk block cache for immutable file contents.
- Show linked network in
infinit-network --list.
Changed
- Rename
‑‑allow-signto‑‑allow-create-passportininfinit-passport. - Tidy up
infinit-blockCLI interface to look like other binaries. - Drop all cache when a network is deleted locally.
Fixed
- Drop older Paxos version to avoid linear growth of blocks with revisions, fixing disk hammering issues with folders of thousands of files.
- Use the GCS credentials instead of Google drive credentials to authenticate to GCS.
- Fix SEGV when retrying an asynchronous write operation.
- Fix importing pre-0.4 networks.
- Fixed assertions on cleanup when shutdown abruptly.
[0.5.3] - YANKED
Skipped release because of unrecognized version in RPCs.
[0.5.2] - 2016-02-25
Hotfix for AWS s3 storage in us-east-1 region.
Added
- Add
infinit-block, a debug utility to pretty print a block from the disk.
Fixed
- Fix AWS S3 storage on us-east-1 region.
- Fix Google cloud storage and Google drive credentials mixup.
- Fixed some logs and error messages where only the first character of some strings was displayed.
[0.5.1] - YANKED
Skipped release because of unrecognized version in RPCs.
[0.5.0] - 2016-02-23
Rebalancing protocol and passport delegation.
Added
- Add dynamic block rebalancing.
- Enable to disable writing to the DHT or acting as storage when signing a passport for a node.
- Enable to delegate further passport signature when signing a passport for a node, which will act as an "authority".
- Support adding or removing multiple users from a group at once with
infinit-acl. - Show world permissions as 'other' POSIX permissions when stating a file.
- Resolve hostnames passed to
‑‑peeroptions. - Add
‑‑port-fileto output endpoints listened on to a file. - Always show network compatibilty version in the logs.
Changed
- Ask confirmation in
infinit-user --delete. - Replace
‑‑accountwith‑‑nameininfinit-credentialto be consistent with other command line tools. - Greatly compact the log output.
Fixed
- Fix a memory leak in remote procedure calls.
- Fix a memory leak in Paxos implementation.
- Fix a memory leak in case of directory conflict.
- Fixed network upgrade process in case blocks are stored in asynchronous write cache.
[0.4.0] - 2016-01-21
Groups support.
Added
- Support group ACL.
- Add compatibility version to network configuration files.
- Support reading when a minority of the quorum nodes are down.
- Add
infinit-network --updateto change existing network attribute, such as upgrading the compatibility version.
Changed
- Overwrite network on the hub with
infinit-network --push, to be able to push local updates. - Overwrite local network with
infinit-network --fetch, to be able to retreive updates.
Fixed
- Set permissions on journal directories to 700 as it can contain private keys.
- Fix S3 storage in case of HTTP redirections.
- Fix SEGV on shutdown in some rare cases.
- Fix SEGV with ipv6 interfaces.
[0.3.7] - 2016-01-11
Small improvements and fixes.
Added
- Add
‑‑no-countdownoption toinfinit-device --transmit. - Accept
‑‑fallback-xattrsininfinit-acl --list.
Changed
- Change default kelips group count to 1, to avoid deadlocked networks with too few computer if unspecified.
- Terminate gracefully on
SIGTERMandSIGQUIT, just likeSIGINTpreviously.
Fixed
- Don't err in
infinit-user --fetchif the avatar is missing.
[0.3.6] - 2016-01-11 [YANKED]
Skipped release because of a botched tag.
[0.3.5] - 2016-01-06
Hotfix release to fix mounting in async mode, plus some stability and performance improvement and S3 storage support.
Added
- Support S3 as storage backend.
- Enable to force compatibility version with
‑‑force-versionoption.
Changed
- Set permissions on user configuration files to 700 as some contain private keys.
Fixed
- Fix critical bug preventing running networks using
‑‑asyncwith error message "fatal error: missing serialization context for infinit::model::Model*". - Fix reported file size that could sometime be random.
- Fix extended attribute compatibility mode writing files above the filesystem root.
- Fix potential segfault on OSX with finder sidebar.
- Fix fetching network with several storages.
- Retry forever if storage is full in async mode instead of asserting.
[0.3.4] - 2015-12-17
Stability and performance release.
Added
- Cache directories preventively to speed up browsing speed.
- Let extended attribute
user.infinit.syncwait for file synchronization. - Add fetch and push options to
infinit-drive --invite, clarify help. - Enable to fetch several users at once with
infinit-user --fetch. - Enable to show volume in the finder sidebar on OSX with
infinit-volume --finder-sidebar.
Changed
- Only allow lowercase alpha-numeric characters in objects names (i.e. users, networks, volumes ...).
- Rename
infinit-network --jointoinfinit-network --link. - Accept --as option on all commands.
- Set kelips group count to 1 by default.
- Translate user rwx permissions from ACLs.
- Prefix user public key hash with a
#in permissions listing if name is unknown. - Show storage capacity in
infinit-storage --list. - Show invitation status in
infinit-drive --list. - Improve many
infinit-driveoutput messages. - Bump files mtime on each write.
- Optimize on-disk asynchronous journal loading time.
Fixed
- Properly handle execution permissions.
- Drop removed files from cache, fixing many IO errors when trying to perform operations on a deleted file.
- Fix crash with broken locale setting.
- Fix wrong file size reported in some cases.
- Fix truncate on cached files.
[0.3.3] - 2015-12-03
Bugfix release to correct conflict errors, plus minor improvements.
Changed
- Always try using a public key in inifinit-acl if the user does not exist in the network. Remove --try-with-public-key as a consequence.
- Improve directory creation performance.
- Remove --as option from infinit-user --fetch.
- Improve network error reporting in the CLI.
- Add a timeout when pairing devices.
- Show user public key hash in permissions listing if name is unknown.
Fixed
- Add missing automatic conflicts resolver.
- Let a user create passport for a network without joining it.
- Don't require a valid current user to list a network passports.
[0.3.2] - 2015-12-01
Release adjustments.
Added
- Enable to point the data directory directly with the INFINIT_DATA_HOME environment variable.
- Generate Debian package.
Fixed
- Change demo home path to be usable with INFINIT_DATA_HOME.
- Fix unmount when pushing stats of a storage with no maximum capacity.
[0.3.1] - 2015-11-30
Release adjustments.
Added
- Magic number on stored binary blocks to enable transparent future format changes, e.g. JSON.
Changed
- Store configuration and data files according to XDG convention.
- Improve infinit-user --signup help.
- Prevent infinit-drive from joining own network.
- Hide unstable features for now: Dropbox and Google Drive storage, multiple storage nodes.
Fixed
- Ship compiler-specific dynamic libraries for portability.
- Fix unmounting on OSX.
[0.3.0] - 2015-11-29
First public release candidate.

Talk to us on the Internet!
Ask questions to our team or our contributors, get involved in the project...