profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/arajasek/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.

filecoin-project/FIPs 112

The Filecoin Improvement Proposal repository

filecoin-project/filecoin-docs 106

Filecoin Docs

filecoin-project/venus-docs 39

Content for Venus tutorial

application-research/estuary 38

A custom IPFS/Filecoin node that makes it easy to pin IPFS content and make Filecoin deals.

Digital-MOB-Filecoin/QABot 14

Quality Bot: Periodically makes storage and retrieval deals with each of the top 100 miners, tracking state & success/fail.

filecoin-project/tpm 6

Technical Project Management: Meeting notes and agenda items

filecoin-project/lotus-docs 3

Documentation for Lotus

arajasek/TxTool 2

Uses the Aion Java API to sign transactions offline, and then send them

Pull request review commentfilecoin-project/lotus

Fix Drand fetching around null tipsets

 func (cs *ChainStore) GetBeaconRandomness(ctx context.Context, blks []cid.Cid, p 	return DrawRandomness(be.Data, pers, round, entropy) } -func (cs *ChainStore) GetChainRandomnessLookingBack(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {-	return cs.GetChainRandomness(ctx, blks, pers, round, entropy, true)-}+func (cs *ChainStore) GetBeaconRandomnessLookingForward(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {+	randTs, err := cs.GetBeaconRandomnessTipset(ctx, blks, pers, round, entropy, false)+	if err != nil {+		return nil, err+	} -func (cs *ChainStore) GetChainRandomnessLookingForward(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {-	return cs.GetChainRandomness(ctx, blks, pers, round, entropy, false)+	be, err := cs.ExtractBeaconEntryForRound(randTs, uint64(round))+	if err != nil {+		log.Errorf("failed to get beacon entry as expected: %w", err)+		// If this failed for some reason, just use the latest entry (lest we halt the chain)

Yes...but if every node runs into the same problem, this would keep the network going (violating the spec in the process)

I'm almost certain we don't wanna do this, but wanted to get feedback

arajasek

comment created time in 2 days

PullRequestReviewEvent
PullRequestReviewEvent

create barnchfilecoin-project/lotus

branch : asr/msg-header

created branch time in 2 days

PR opened filecoin-project/lotus

ChainStore: Add a tiebreaker rule for tipsets of equal weight

See https://github.com/filecoin-project/FIPs/pull/156

+24 -3

0 comment

1 changed file

pr created time in 2 days

create barnchfilecoin-project/lotus

branch : asr/weight

created branch time in 2 days

push eventfilecoin-project/lotus

Aayush Rajasekaran

commit sha 977339105db442ebf926d95fd1a52b6f3eb98e3b

Fix Drand fetching around null tipsets

view details

push time in 2 days

Pull request review commentfilecoin-project/lotus

Fix Drand fetching around null tipsets

 func TestSyncCheckpointEarlierThanHead(t *testing.T) { 	require.True(tu.t, p1Head.Equals(b.TipSet())) } -func TestDrandNull(t *testing.T) {

This test was pretty bad...better test in rand_test now that also covers this case

arajasek

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentfilecoin-project/lotus

Fix Drand fetching around null tipsets

 func (cs *ChainStore) GetBeaconRandomness(ctx context.Context, blks []cid.Cid, p 	return DrawRandomness(be.Data, pers, round, entropy) } -func (cs *ChainStore) GetChainRandomnessLookingBack(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {-	return cs.GetChainRandomness(ctx, blks, pers, round, entropy, true)-}+func (cs *ChainStore) GetBeaconRandomnessLookingForward(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {+	randTs, err := cs.GetBeaconRandomnessTipset(ctx, blks, pers, round, entropy, false)+	if err != nil {+		return nil, err+	} -func (cs *ChainStore) GetChainRandomnessLookingForward(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {-	return cs.GetChainRandomness(ctx, blks, pers, round, entropy, false)+	be, err := cs.ExtractBeaconEntryForRound(randTs, uint64(round))+	if err != nil {+		log.Errorf("failed to get beacon entry as expected: %w", err)+		// If this failed for some reason, just use the latest entry (lest we halt the chain)

Bad idea? Better to just fail & stop?

arajasek

comment created time in 2 days

PullRequestReviewEvent

PR opened filecoin-project/lotus

Fix Drand fetching around null tipsets

Closes #3613

+305 -115

0 comment

11 changed files

pr created time in 2 days

push eventfilecoin-project/lotus

Aayush Rajasekaran

commit sha 4df61579a5f5cc8abeb598e3d3acc635ca4ed908

Fix Drand fetching around null tipsets

view details

push time in 2 days

push eventfilecoin-project/lotus

Aayush Rajasekaran

commit sha 5e469c958542cf1615ba2e3b6bd2c0c6c0a08d51

Fix Drand fetching around null tipsets

view details

push time in 2 days

push eventfilecoin-project/lotus

Aayush Rajasekaran

commit sha 6188798089dc64dc11cb0f13e548a19241c6bb8e

Fix Drand fetching around null tipsets

view details

push time in 2 days

push eventfilecoin-project/lotus

Łukasz Magiera

commit sha e68c8cb1eecc278a2de2f6367be62a31450d49bf

Merge pull request #7357 from filecoin-project/asr/v6actors Add v6 actors

view details

Aayush Rajasekaran

commit sha 028fa018effa28fd79e31bedb8beab701d80c137

Rename GetBeaconRandomnessLookingForward to GetLatestBeaconRandomnessLookingForward

view details

Aayush Rajasekaran

commit sha b78626dd7aeff6e12dbfc03e24c333dd6916b949

Fix Drand fetching around null tipsets

view details

push time in 2 days

PullRequestReviewEvent

pull request commentfilecoin-project/lotus

remove nerpanet related code

and build/genesis/nerpanet.car

jennijuju

comment created time in 2 days

PullRequestReviewEvent

pull request commentfilecoin-project/FIPs

Commit with expired deals

@ZenGround0 Can we please slightly rename / reword this FIP, though? Expired has a certain definition w.r.t. deals that isn't quite what we're talking about here.

Idk what the right term is, though..."Past-activation-deadline" deals? :P

ZenGround0

comment created time in 3 days

pull request commentfilecoin-project/FIPs

Commit with expired deals

Thanks for the review, @nicola!

Questions:

  • What happens today if the miner does not ever publish a sector for a published deal?

    • If the miner is does not lose sector collateral - then the system is already complex, so we may as well apply the change

Yeah, no sector collateral is lost, since none was ever locked up.

ZenGround0

comment created time in 3 days

pull request commentfilecoin-project/FIPs

Commit with expired deals

@momack2 Yes, that's right.

More generally, I think the current state is that a clear SLA doesn't necessarily exist today -- the strongest statement that can be made is that a Storage Provider will lose their deal collateral if they publish a deal and then something* goes wrong (and this FIP doesn't change that). I don't think this FIP worsens the situation. Going awry between Pre and Prove Commit is something of an edge-case regardless.

What is uncontroversial, IMO, is that nothing is gained by "trapping" a PreCommitted sector in an unCommittable state, forcing all the other deals in the sector to also necessarily fail to be activated. Seems like a pretty clear net bad to me, so I'd strongly advocate for this FIP.

*something can be:
- never precommitting a sector with the deal
- precommitting but not provecommitting the deal
- provecommitting (activating) the deal, but it then goes faulty
- (probably more)
ZenGround0

comment created time in 3 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentfilecoin-project/FIPs

Add tipset weight tiebreak rule FIP

+---+fip: <to be assigned>+title: Break ties between tipsets of equal weight+author: Sarah Azouvi (@sa8), Aayush Rajasekaran (@arajasek)+discussions-to: https://github.com/filecoin-project/FIPs/issues/22+status: Draft+type: Technical (Core)+created: 2021-09-07+spec-sections: 4.1.4.2+---++<!--You can leave these HTML comments in your merged FIP and delete the visible duplicate text guides, they will not appear and may be helpful to refer to if you edit it again. This is the suggested template for new FIPs. Note that a FIP number will be assigned by an editor. When opening a pull request to submit your FIP, please use an abbreviated title in the filename, `fip-draft_title_abbrev.md`. The title should be 44 characters or less.-->+++## Simple Summary+<!--"If you can't explain it simply, you don't understand it well enough." Provide a simplified and layman-accessible explanation of the FIP.-->++It is not an unlikely event for two tipsets to have the same weight. When this happens, we should have a simple rule to pick one of the tipsets as canonically "heavier" so as to achieve consensus faster. This FIP proposes such a rule.

Done!

arajasek

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentfilecoin-project/FIPs

Add tipset weight tiebreak rule FIP

+---+fip: <to be assigned>+title: Break ties between tipsets of equal weight+author: Sarah Azouvi (@sa8), Aayush Rajasekaran (@arajasek)+discussions-to: https://github.com/filecoin-project/FIPs/issues/22+status: Draft+type: Technical (Core)+created: 2021-09-07+spec-sections: 4.1.4.2+---++<!--You can leave these HTML comments in your merged FIP and delete the visible duplicate text guides, they will not appear and may be helpful to refer to if you edit it again. This is the suggested template for new FIPs. Note that a FIP number will be assigned by an editor. When opening a pull request to submit your FIP, please use an abbreviated title in the filename, `fip-draft_title_abbrev.md`. The title should be 44 characters or less.-->+++## Simple Summary+<!--"If you can't explain it simply, you don't understand it well enough." Provide a simplified and layman-accessible explanation of the FIP.-->++It is not an unlikely event for two tipsets to have the same weight. When this happens, we should have a simple rule to pick one of the tipsets as canonically "heavier" so as to achieve consensus faster. This FIP proposes such a rule.++## Abstract+<!--A short (~200 word) description of the technical issue being addressed.-->++Filecoin needs a rule to decide between forks of equal weight. Although not critical it would help block producers converge more easily towards a common chain. This means that when two forks with the same weight occur, all the block producers that have received both forks will mine on the same one. Without a tie-breaker they would randomly choose one and may extend the forks for longer.++## Change Motivation+<!--The motivation is critical for FIPs that want to change the Filecoin protocol. It should clearly explain why the existing protocol specification is inadequate to address the problem that the FIP solves. FIP submissions without sufficient motivation may be rejected outright.-->++Implementing such a rule will help the network achieve consensus faster. This has an immediate effect of reducing the number of orphaned blocks, which increases profits for block producers. More importantly, this FIP will reduce the time it takes the network to recover from slowdowns or outages, since nodes will achieve consensus faster.++## Specification+<!--The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations for any of the current Filecoin implementations. -->++For two tipsets with the same weight and the same number of blocks, we pick the tipset with the smallest winning Ticket. In the case where two Tipsets of equal weight have the same smallest Ticket, we compare the next smallest Ticket in the Tipset (and select the Tipset with the smaller one). This continues until one Tipset is selected. ++## Design Rationale+<!--The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other languages. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during discussion.-->++Any solution that is both deterministic and non-biasable (i.e. an adversary may not make their chain more likely to be selected by the chain selection algorithm in the case of forks of equal weight) may work. The ElectionProof is unbiasable and hence is a good candidate for tie-breaker. Any deterministic rule other than minimum ticket would work just as well.++## Backwards Compatibility+<!--All FIPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The FIP must explain how the author proposes to deal with these incompatibilities. FIP submissions without a sufficient backwards compatibility treatise may be rejected outright.-->++This FIP proposes a "soft" change that maintains full backward compatability. No new network version is needed.++## Test Cases+<!--Test cases for an implementation are mandatory for FIPs that are affecting consensus changes. Other FIPs can choose to include links to test cases if applicable.-->++## Security Considerations+<!--All FIPs must contain a section that discusses the security implications/considerations relevant to the proposed change. Include information that might be important for security discussions, surfaces risks and can be used throughout the life cycle of the proposal. E.g. include security-relevant design decisions, concerns, important discussions, implementation-specific guidance and pitfalls, an outline of threats and risks and how they are being addressed. FIP submissions missing the "Security Considerations" section will be rejected. A FIP cannot proceed to status "Final" without a Security Considerations discussion deemed sufficient by the reviewers.-->++We should be confident that the proposed tiebreaking rule is unbiasable by adversarial block producers. That aside, this FIP is a strict improvement to network security.++## Incentive Considerations+<!--All FIPs must contain a section that discusses the incentive implications/considerations relative to the proposed change. Include information that might be important for incentive discussion. A discussion on how the proposed change will incentivize reliable and useful storage is required. FIP submissions missing the "Incentive Considerations" section will be rejected. An FIP cannot proceed to status "Final" without a Incentive Considerations discussion deemed sufficient by the reviewers.-->++No change to incentives.++## Product Considerations+<!--All FIPs must contain a section that discusses the product implications/considerations relative to the proposed change. Include information that might be important for product discussion. A discussion on how the proposed change will enable better storage-related goods and services to be developed on Filecoin. FIP submissions missing the "Product Considerations" section will be rejected. An FIP cannot proceed to status "Final" without a Product Considerations discussion deemed sufficient by the reviewers.-->++No change to product considerations.

Added, thank you!

arajasek

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentfilecoin-project/FIPs

Add tipset weight tiebreak rule FIP

+---+fip: <to be assigned>+title: Break ties between tipsets of equal weight+author: Sarah Azouvi (@sa8), Aayush Rajasekaran (@arajasek)+discussions-to: https://github.com/filecoin-project/FIPs/issues/22+status: Draft+type: Technical (Core)+created: 2021-09-07+spec-sections: 4.1.4.2+---++<!--You can leave these HTML comments in your merged FIP and delete the visible duplicate text guides, they will not appear and may be helpful to refer to if you edit it again. This is the suggested template for new FIPs. Note that a FIP number will be assigned by an editor. When opening a pull request to submit your FIP, please use an abbreviated title in the filename, `fip-draft_title_abbrev.md`. The title should be 44 characters or less.-->+++## Simple Summary+<!--"If you can't explain it simply, you don't understand it well enough." Provide a simplified and layman-accessible explanation of the FIP.-->++It is not an unlikely event for two tipsets to have the same weight. When this happens, we should have a simple rule to pick one of the tipsets as canonically "heavier" so as to achieve consensus faster. This FIP proposes such a rule.++## Abstract+<!--A short (~200 word) description of the technical issue being addressed.-->++Filecoin needs a rule to decide between forks of equal weight. Although not critical it would help block producers converge more easily towards a common chain. This means that when two forks with the same weight occur, all the block producers that have received both forks will mine on the same one. Without a tie-breaker they would randomly choose one and may extend the forks for longer.++## Change Motivation+<!--The motivation is critical for FIPs that want to change the Filecoin protocol. It should clearly explain why the existing protocol specification is inadequate to address the problem that the FIP solves. FIP submissions without sufficient motivation may be rejected outright.-->++Implementing such a rule will help the network achieve consensus faster. This has an immediate effect of reducing the number of orphaned blocks, which increases profits for block producers. More importantly, this FIP will reduce the time it takes the network to recover from slowdowns or outages, since nodes will achieve consensus faster.++## Specification+<!--The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations for any of the current Filecoin implementations. -->++For two tipsets with the same weight and the same number of blocks, we pick the tipset with the smallest winning Ticket. In the case where two Tipsets of equal weight have the same smallest Ticket, we compare the next smallest Ticket in the Tipset (and select the Tipset with the smaller one). This continues until one Tipset is selected. ++## Design Rationale+<!--The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other languages. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during discussion.-->++Any solution that is both deterministic and non-biasable (i.e. an adversary may not make their chain more likely to be selected by the chain selection algorithm in the case of forks of equal weight) may work. The ElectionProof is unbiasable and hence is a good candidate for tie-breaker. Any deterministic rule other than minimum ticket would work just as well.++## Backwards Compatibility+<!--All FIPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The FIP must explain how the author proposes to deal with these incompatibilities. FIP submissions without a sufficient backwards compatibility treatise may be rejected outright.-->++This FIP proposes a "soft" change that maintains full backward compatability. No new network version is needed.++## Test Cases+<!--Test cases for an implementation are mandatory for FIPs that are affecting consensus changes. Other FIPs can choose to include links to test cases if applicable.-->

Added, thank you!

arajasek

comment created time in 3 days