The Ara File Manager is a simple desktop app that demonstrates the functionality of a complete local Ara network node and crypto token wallet. Ara is truly decentralized; with the Ara File Manager, your machine is participating directly in peer distribution swarms and the blockchain.
The Ara File Manager lets you sell your digital content using the ARA token, and distribute your content without hosting costs. You can buy content, and earn Ara by seeding content in a swarm of nodes that have also purchased it.
With the code of the Ara File Manager, you can see how to integrate Ara into your own app or site, enabling your users to buy, sell, own, upload, and download content, all with the secure and decentralized Ara tools.
Get the code for the Ara File Mananager, build it, and run it with commands like these:
$ git clone https://github.com/arablocks/ara-file-manager
$ cd ara-file-manager
$ npm install
$ npm run start
For npm install
to work, your computer must be able to build native Node modules.
If you're getting errors, head over to the detailed guide.
Package your code for macOS and Windows users with commands like these:
$ npm run build
$ APPLEID=yourid PASSWORD=yourpass npm run build
npm run build
uses electron-builder to make a dmg on macOS and a setup exe on Windows.
Code signing and notarization make the Ara File Manager easy for users to install, but are not a requirement.
On macOS, electron-builder uses whatever code signing certificate is installed on your computer to sign the app.
Type your developer Apple ID and password before npm run build
, and electron-notarize will upload the app to Apple for automated analysis.
These two lines in package.json are about code signing on Windows:
"certificateFile": "../your_code_signing_certificate.pfx",
"certificatePassword": "your_exported_certificate_password"
You can use your certificate and password here, or remove these lines to create an unsigned exe, which will work just fine.
Here are some more commands useful in building and testing the app:
$ npm run mac
$ npm run win
$ npm run clean
$ npm run power-wash
$ npm run uninstall
npm run mac
runs the Ara File Manager.app package that electron-builder made.
Running it this way from the command line lets you see log output and error messages.
On Windows, npm run win
runs the built exe.
Between calls to npm run build
, use npm run clean
to delete the dist folder.
electron-builder creates this folder when it runs.
npm run power-wash
is much stronger, deleting not just dist but also node_modules and package.json.
Use power wash to start over from scratch, as though you just cloned the repository and will now run npm install
.
To absolutely, completely start over, npm run uninstall
deletes all the paths where the Ara File Manager may have ever left files.
This includes Ara program files and settings, as well as Ara user identity, document, and wallet files on your computer.
Uninstall kills paths used by previous versions, and covers paths used on macOS and Windows.
After running uninstall, you'll have to enter your seed phrase to recreate your ARA wallet from the blockchain.
Make a branch, code some changes, and send us a pull request with commands like these:
$ git checkout -b your-branch-name
$ git commit -a -n -m "tasktype(file.ext): note about what you did"
$ git push origin your-branch-name
This project is in active developement.
$ npm install --verbose --no-optional
$ npm run start [loggedin] [<DID>] [<password>]
Use the --verbose
flag to get more granular feedback from npm.
The --no-optional
flag will prevent unnecessary and heavy packages from being installed.
npm install
downloads a large number of modules, compiles native code, and takes a minute or two to do all this.
You can follow the start-dev
with an optional string: "loggedin
". If you add this, you'll need to follow it with the DID you'd like to log in with, and the corresponding password to that DID. It will boot the app with you logged in already, for speedier development.
$ DEBUG=acm* npm run start-dev //development mode
$ DEBUG=acm* ~/<path to .app>/Contents/MacOS/Ara\ File \Manager //packaged
All debug
names in the project begin with acm
followed by their path, separated by a colon. You can narrow the logs by specifying the paths.
The metadata format the file manager is compatible with is the following:
{
"fileInfo": {
"author": "Manggo",
"size": "500mb"
"title": "Some content"
"timestamp": "2018-12-12T23:59:46.314Z"
}
}
- Cut from and make PRs to
master
- After getting approval and merging into
master
, bump either minor or patch- Minor when latest version of app not compatible with older versions (ie
ara-contracts
has changed) - Patch for everything else
- Minor when latest version of app not compatible with older versions (ie
- Push tags
- Push
CHANGELOG
- External link
LGPL-3.0