profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/Wondertan/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Hlib Kanunnikov Wondertan Odessa, UA https://keybase.io/wondertan Coding is a form of art and I explore, design, and create it when inspired.

celestiaorg/celestia-core 74

Celestia node software based on Tendermint.

celestiaorg/nmt 18

Namespaced Merkle Tree

Wondertan/go-ipfs-recovery 15

Data recovery for IPFS protocol.

celestiaorg/optimint 7

ABCI-client implementation for Optimistic Rollups.

celestiaorg/celestia-node 5

Celestia storage and light node

Wondertan/go-libp2p-vnet 4

Decentralized Layer 2 Virtual Network on top of libp2p

Wondertan/go-blockstream 3

Block streaming protocol for IPFS blocks.

Wondertan/go-libp2p-pipe 3

An effective way for libp2p stream re usage

Wondertan/go-libp2p-access 1

go-libp2p family library to manage access

Wondertan/go-serde 1

Simple utility for message serialization. Useful for message formats, like protobuf.

PR opened celestiaorg/celestia-node

node: updates for node.Config

Context

Work on #30 turns out quite big and to follow the practice of keeping PR relatively small, I've extracted some work related to configs into separate PR

Changes

  • Simplify and prettify FullNode tests
  • Extract node.Config into a new subpackage to avoid circular dependencies
  • De/serialization functions for Config
  • Use Config value everywhere instead of pointers
    • Pointers create issues with serialization which can be fixed using mapstructure, but that is some additional complexity that does no make sense for me.
    • If you have arguments against using values for Config - pls bring them up, because I don't get the.
  • New FX utility
+150 -114

0 comment

21 changed files

pr created time in 9 hours

push eventcelestiaorg/celestia-node

Wondertan

commit sha 3515da52f86fc8680ba9049bfbb650e3e9d90367

ref(node): move Config to a subpackage

view details

Wondertan

commit sha 5e77c3c418b87ae92c4024bb454f6e4742c3466f

ref(node): separate core.Config from node.Config

view details

Wondertan

commit sha ec0673d5b994fbe70539aa98b96c8ca547e602aa

chore: go fmt

view details

Wondertan

commit sha efc018793ef92e83036475995e7d056b53e61cb4

ref(node/*): use Config values everywhere instead of pointers. Use of pointers causes complexities

view details

Wondertan

commit sha 122bd1dc30a7da704f24ba2811158d5046ed3c46

feat(node/config): provide functions to write/read Config

view details

push time in 9 hours

push eventcelestiaorg/celestia-node

rene

commit sha 8615d0f3b38d90372a02d6a05527448870cc4595

assert -> require for consistency

view details

rene

commit sha edeb2d5324d4ad3d2fe479b8ca963f026554462f

Merge pull request #73 from renaynay/fix-full-test node, client: use `require` instead of `assert` for consistency.

view details

Wondertan

commit sha 06b0af6f3245c6635abf5066bf5d6b81a12d65be

feat(libs/fslock): introduce fslock - a simple utility for locking the directory

view details

Wondertan

commit sha d56d91c123057ba3b9dada16f50e533b354e0b5d

ref(node): move Config to a subpackage

view details

Wondertan

commit sha 4f12d49241b733865cc25a0e42a5aa577a1710f1

ref(node): separate core.Config from node.Config

view details

Wondertan

commit sha 06e73b6f30e52d4703ab5a997864cedbf1377e96

chore: go fmt

view details

Wondertan

commit sha 68fe49d949a8540a1ffef420aedf7c86e62e2f83

ref(node/*): use Config values everywhere instead of pointers. Use of pointers causes complexities

view details

Wondertan

commit sha 923f6cddf9e21bc9fa1b62c129edff135d0e68fb

feat(node/config): provide functions to write/read Config

view details

push time in 9 hours

push eventcelestiaorg/celestia-node

Nhu Viet Nguyen

commit sha 15e9c9e6933aedfe39f89d65c498ff385c17af70

Tiny typo fix for ADR-001

view details

Nguyen Nhu Viet

commit sha 182b9c24decf21bfeeecca5ead98ca971588847b

Merge pull request #70 from Bidon15/docs_fix Tiny typo fix for ADR-001

view details

Wondertan

commit sha be56bf272725970e22e249b59d822c13f931abb8

feat(libs/fslock): introduce fslock - a simple utility for locking the directory

view details

Wondertan

commit sha d70b53477bc3b1093a8eee4227721c3dd47f15b2

ref(node): move Config to a subpackage

view details

Wondertan

commit sha a3f7082a5aaba8c45f733a60558f69eba3905ca4

ref(node): separate core.Config from node.Config

view details

Wondertan

commit sha 3ee9c31cb76bd9ef24ebd9eeacdfacd2f7de017c

chore: go fmt

view details

Wondertan

commit sha f4b3ffdd0c1d937d2bed9e05aac48eb361ca7326

ref(node/*): use Config values everywhere instead of pointers. Use of pointers causes complexities

view details

Wondertan

commit sha 6af7850937d9c5d1faa7d4e756070646e2640f5a

feat(node/config): provide functions to write/read Config

view details

push time in 9 hours

create barnchcelestiaorg/celestia-node

branch : hlib/config-updates

created branch time in 19 hours

PullRequestReviewEvent

Pull request review commentcelestiaorg/celestia-node

libs/fslock: a simple utility to lock directories

+//go:build darwin || freebsd || linux++package fslock++import (+	"fmt"+	"os"+	"strconv"+	"syscall"+)++func (l *Locker) lock() (err error) {+	l.file, err = os.OpenFile(l.path, os.O_CREATE|os.O_RDWR, 0666)+	if err != nil {+		return fmt.Errorf("fslock: error opening file: %v", err)+	}++	_, err = l.file.WriteString(strconv.Itoa(os.Getpid()))+	if err != nil {+		return fmt.Errorf("fslock: error writing process id: %v", err)+	}++	err = syscall.Flock(int(l.file.Fd()), syscall.LOCK_EX|syscall.LOCK_NB)+	if err != nil && err.Error() == "resource temporarily unavailable" {

@liamsi, in such a case I would need a concrete error defined somewhere to compare it to. Unfortunately, there is no such an error for this case, as this is an API on the boundaries between Go's runtime and OS, which does not understand Go's semantics.

Resolved?

Wondertan

comment created time in a day

PullRequestReviewEvent

push eventcelestiaorg/celestia-node

Wondertan

commit sha 680536a924abe0b8926c86b255b8ff48f8638dfd

feat(libs/fslock): introduce fslock - a simple utility for locking the directory

view details

push time in a day

PR opened celestiaorg/celestia-node

libs/fslock: a simple utility to lock directories

Context

Over the weekend in my spare time, I was playing around syscalls and wanted to implement something. The idea fell to do something useful to our current tasks and so I decided to make a locking library, as we need to lock our Repo from simultaneous usage. I am aware there are existing libraries solving that, but this one is especially minimal.

Filling

  • Implemented tested on Linux/MacOS
  • Windows support? Maybe...
+132 -0

0 comment

3 changed files

pr created time in a day

IssuesEvent

issue commentcelestiaorg/celestia-node

repo: Define Node's repository to manage all on disk data

Sheesh, that's not closed

Wondertan

comment created time in a day

create barnchcelestiaorg/celestia-node

branch : hlib/fslock

created branch time in a day

PullRequestReviewEvent

push eventcelestiaorg/celestia-node

Wondertan

commit sha 45b6d010388b9c96f01a72fb049297bb2c67c4aa

feat(libs/keystore): introduce Keystore interface to manage private keys

view details

Wondertan

commit sha acc11fe2c1cf52b7ab26843c3ea55fe83efe05d0

feat(libs/keystore): filesystem implementation of Keystore

view details

Wondertan

commit sha 54b473e542e549ecf3c920c5d92e5e371984e996

feat(libs/keystore): in-memory implementation of Keystore

view details

Hlib Kanunnikov

commit sha 77bbf78d2e2152eb5603606a8143781df7e94a06

Merge pull request #66 from celestiaorg/hlib/keystore

view details

push time in a day

delete branch celestiaorg/celestia-node

delete branch : hlib/keystore

delete time in a day

PR merged celestiaorg/celestia-node

Reviewers
libs/keystore: introduce Keystore a crypto key manager

Rationale

Libp2p does not provide storage for private keys(Peerstore might be a solution but is on-disk version is flawed), so we need to store them somewhere. The Keystore comes to solve this and allows storing different keys for multiple purposes, including storing p2p keys. Further, we can delegate consensus keys to Keystore as it will evolve through time and get more features/implementations.

Filling

  • Defines interface
  • Implements Fs version
  • Implements in-memory version

Other

Closes https://github.com/celestiaorg/celestia-node/issues/65

+309 -1

10 comments

7 changed files

Wondertan

pr closed time in a day

issue closedcelestiaorg/celestia-node

repo: Define Node's repository to manage all on disk data

Goal

There are multiple things that Celestia Node needs to store:

  • Configurations
  • Crypto Keys(p2p/consensus)
  • Peers
  • Share blobs
  • Block blobs
  • State
  • DHT entries(for routing)

With the purpose of encapsulation, sealing all on-disk footprint from Node let's introduce a Repository. It should manage the root directory, versioning, categorizing, and grouping of any generated or user data to be stored on disk.

Actions

  • [x] #65
  • [ ] Repository interface
    type core.Repository interface {
    	Config() (Config, error)
    	PutConfig(*Config)  error
    
    	...
    }
    
    type Repository interface {
    	  Keystore() keystore.Keystore
    	  Datastore() keystore.Keystore
    	  Core() core.Repository
    		    
    	  Config() (Config, error)
    	  PutConfig(*Config)  error
    	    
    	  Path() string
    	  Lock() error
    		    
    	  DiskUsage() (uint64, error)
    		    
    	  SetAPI(string) error
    	  GetAPI() (string, error)
    }
    
  • [ ] Config saving/loading
  • [ ] Managing Core's config/keys/genesis
  • [ ] Datastore over badger
  • [ ] Locking(no more than once instance of Node must use a Repo simultaneously)
  • [ ] Various statistics, like disk usage

closed time in a day

Wondertan

issue closedcelestiaorg/celestia-node

libs/keystore: introduce KeyStore to manage crypto keys on disk

There should be two basic implementations:

  • Over FS
  • In-mem

closed time in a day

Wondertan

pull request commentcelestiaorg/optimint

Update to libp2p v0.15.0

v0.16 will be a bit breaking as well corev0.10 is

tzdybal

comment created time in a day

pull request commentcelestiaorg/go-libp2p-messenger

Initial implementation of messenger

As discussed in sync, I am going to present the messenger right after at least one Tendermint reactor is migrated.

Wondertan

comment created time in a day

push eventcelestiaorg/go-libp2p-messenger

Hlib Kanunnikov

commit sha f4ba7396b9dde34ac24656556b140bfdb7f6a573

Merge pull request #1 from celestiaorg/serde

view details

Wondertan

commit sha d1fc59ed652fb2a4eb7a57ea509d5f842f64df03

initial implementation of messenger

view details

Wondertan

commit sha 89f01af21c1d7d0fa77b4c90206f494c5d0ca4fd

refactor(serde): remove serdetest pacakge and make FakeMessage a PlainMessage instead

view details

Wondertan

commit sha 5754a99fcb8f2f2c5b8d1460ce9ff121bf000ecd

almost complete v0

view details

Wondertan

commit sha 2122386e71df1f896b677dfa51c2dba5db9c7e66

feat: new Events method to notify about connected peers

view details

Wondertan

commit sha bc56bd736cdeca3fdbdb67f2d9880514bd0a49c4

remove notifiee.go

view details

push time in a day

push eventcelestiaorg/go-libp2p-messenger

Wondertan

commit sha 5b0c8f506486ea8feab199bef5d8894073526cdd

feat(serde): initial implementation for serde packge. It provides efficient serialization primitives for messege based p2p protocols with buffer pooling and native stream support

view details

Hlib Kanunnikov

commit sha f4ba7396b9dde34ac24656556b140bfdb7f6a573

Merge pull request #1 from celestiaorg/serde

view details

push time in a day

PR merged celestiaorg/go-libp2p-messenger

De/serialization subpackage for messenger

This PR introduces serde - a de/serialization library for length-delimited messages to be sent over the wire. It provides:

  • A Message interface for a variety of serialization formats(currently focuses on protobuf)
  • Un/marshaling for the Message.
  • Stream Read/Write API for the Message.
  • Allocated byte buffer pooling.
  • Fuzzing testing

TODO: godoc

+280 -0

1 comment

5 changed files

Wondertan

pr closed time in a day

pull request commentcelestiaorg/go-libp2p-messenger

De/serialization subpackage for messenger

Merging this to simplify review for #2

Wondertan

comment created time in a day

pull request commentcelestiaorg/go-libp2p-messenger

De/serialization subpackage for messenger

Merging this to simplify review for #2

Wondertan

comment created time in a day

push eventcelestiaorg/go-libp2p-messenger

Wondertan

commit sha 739c20cecdd4567560f58a28dbab0297de3ad075

feat: new Events method to notify about connected peers

view details

push time in 2 days

push eventcelestiaorg/go-libp2p-messenger

Wondertan

commit sha fd0549aa5f030a8830a8895021c7d6191cdf40d1

refactor(serde): remove serdetest pacakge and make FakeMessage a PlainMessage instead

view details

Wondertan

commit sha 6138418f0987dd05c7d6570be2c2a5287ea97d90

almost complete v0

view details

push time in 2 days

startedprotolambda/zrnt

started time in 4 days

startedfilecoin-project/fvm-project

started time in 4 days