Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Ethical ads to power Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
KERNEL is an 8-week, invite-only program for top tech talent looking to build relationships, products, and companies in blockchain and Web 3. 100 tal…
Heyo Gitcoiners! With an entire city of hackers, coders and blockchain innovators relocated on our platform, the atmosphere is just buzzing with crea…
Type in [[ 2- term.length]] more characters to get results
[[ result.title ]]
[[ result.description | truncate(70) ]]
No matches found
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
ethereum-snapshotter is a component responsible for updating Ethereum blockchain persistent volume snapshots on a predefined schedule (e.g. daily). It's a part of ethereum-kubernetes system. The snapshots created by ethereum-snapshotter will be used for PersistentVolumeClaims in a Kubernetes application running Ethereum nodes cluster.
A proposed solution:
- A [CronJob](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/) starts on a predefined cron schedule.
- It mounts the latest snapshot, containing Ethereum blockchain data, using a PersistentVolume and a corresponding StorageClass
- It starts an Ethereum client (e.g. geth or parity), waits until it synchronizes with the network then stops the client.
- It creates a snapshot from the PersistentVolume
- It updates PersistentVolumeClaim to point to the latest created snapshot, so next run will use it. Read here for details https://blog.jetstack.io/blog/volume-snapshotting/#restore.
Later when GKE supports Kubernetes 1.12 it will be migrated to using `kind: VolumeSnapshot`.
The scope of this task is:
1. Verify the solution and propose changes if necessary.
1. Implement Kubernetes manifest files for ethereum-snapshotter with components described above.
1. Implement end-to-end tests. Read [End-to-end Testing](https://kubernetes.io/docs/getting-started-guides/ubuntu/validation/#end-to-end-testing).
1. Write documentation - detailed instructions in README on how to run it in GKE.
- Code from this comment can be used as a basis https://github.com/paritytech/parity-ethereum/issues/7288#issuecomment-393500569
- k8s-snapshots https://github.com/miracle2k/k8s-snapshots
- k8s Snapshotting Proposal https://github.com/kubernetes-incubator/external-storage/blob/master/snapshot/doc/volume-snapshotting-proposal.md
- Resizing persistent volumes https://kubernetes.io/docs/concepts/storage/persistent-volumes/#resizing-a-volume-containing-a-file-system
- Creating PDs from snapshot using StorageClass https://blog.jetstack.io/blog/volume-snapshotting/#snapshot. Restoring Volume from snapshots is available starting from 1.12 https://kubernetes.io/docs/concepts/storage/persistent-volumes/#volume-snapshot-and-restore-volume-from-snapshot-support
- Operators https://coreos.com/blog/introducing-operators.html
- Airflow operator https://github.com/GoogleCloudPlatform/airflow-operator
- Argo: workflows and pipelines in Kubernetes https://argoproj.github.io/argo/