A decentralized academic paper repository system built on Arweave/Irys.
- Node.js (v16 or higher)
- Solana wallet with SOL tokens
- Create a
.env
file with your Solana private key:PRIVATE_KEY=your_solana_private_key_here
-
Clone this repository:
git clone https://github.com/yourusername/scivault.git cd sciuploader
-
Install dependencies:
npm install
- Create a
metadata
folder in the project root - Place your metadata JSON files and corresponding PDFs in this folder
- Each PDF should have a matching JSON file with the same name (e.g.,
paper1.pdf
andpaper1.json
) - JSON files must contain a
doi
field
- Each PDF should have a matching JSON file with the same name (e.g.,
- Run the metadata generator:
This will create a
node 0_generate_basic_metadata.js
basic_metadata.json
file containing essential paper information.
Upload the basic metadata (title, authors, DOI, etc.):
node 1_upload_basic_metadata.js
Upload PDFs (they will be automatically split into chunks):
node 2_upload_pdf.js
Note: If uploads fail due to network issues, you can safely run the script again. It will skip already uploaded files and continue with failed ones.
Upload the complete metadata with all paper details:
node 3_upload_all_metadata.js
The system uses semantic versioning for content management:
- Current version:
1.0.3
- Format:
MAJOR.MINOR.PATCH
- MAJOR: Breaking changes
- MINOR: New features
- PATCH: Bug fixes
When uploading content, ensure you're using the correct version in the tags.
- Each upload script generates detailed logs:
upload_report.json
: Summary of upload resultsupload_errors.json
: Details of failed uploads
- Failed uploads can be retried by running the script again
- The system checks for existing uploads to avoid duplicates
The queryweb
folder contains a simple web interface for searching and viewing papers:
- Search by DOI, title, or arXiv ID
- View paper metadata
- Download PDF files
MIT