2,777 research outputs found

    Permissionless Consensus

    Full text link
    Blockchain protocols typically aspire to run in the permissionless setting, in which nodes are owned and operated by a large number of diverse and unknown entities, with each node free to start or stop running the protocol at any time. This setting is more difficult than the traditional permissioned setting, in which the set of nodes that will be running the protocol is fixed and known at the time of protocol deployment. The goal of this paper is to provide a model for reasoning about the rich design space of blockchain protocols and their capabilities and limitations in the permissionless setting. Our results demonstrate senses in which the permissionless setting is provably more challenging than its permissioned counterpart, and identify unavoidable protocol ingredients and additional assumptions that are necessary to achieve various forms of consensus in the permissionless setting.Comment: This is a journal version of the paper that subsumes earlier (conference) versions "Byzantine Generals in the Permissionless Setting" and "Resource Pools and the CAP Theorem

    Permission-Based Separation Logic for Multithreaded Java Programs

    Get PDF
    This paper presents a program logic for reasoning about multithreaded Java-like programs with dynamic thread creation, thread joining and reentrant object monitors. The logic is based on concurrent separation logic. It is the first detailed adaptation of concurrent separation logic to a multithreaded Java-like language. The program logic associates a unique static access permission with each heap location, ensuring exclusive write accesses and ruling out data races. Concurrent reads are supported through fractional permissions. Permissions can be transferred between threads upon thread starting, thread joining, initial monitor entrancies and final monitor exits. In order to distinguish between initial monitor entrancies and monitor reentrancies, auxiliary variables keep track of multisets of currently held monitors. Data abstraction and behavioral subtyping are facilitated through abstract predicates, which are also used to represent monitor invariants, preconditions for thread starting and postconditions for thread joining. Value-parametrized types allow to conveniently capture common strong global invariants, like static object ownership relations. The program logic is presented for a model language with Java-like classes and interfaces, the soundness of the program logic is proven, and a number of illustrative examples are presented

    A SPATIAL DECISION SUPPORT SYSTEM UTILIZING DATA FROM THE GAP ANALYSIS PROGRAM AND A BAYESIAN BELIEF NETWORK

    Get PDF
    With increased degradation of natural resources due to land use decisions and the subsequent loss of biodiversity across large spatial scales, there is a need for a Spatial Decision Support System (SDSS) which showcases the impacts of developments on terrestrial and aquatic ecosystems. The Gap Analysis Program (GAP) and a Bayesian Belief Network (BBN) were used to assess the impacts of an impoundment in the Bienville National Forest, Smith County, Mississippi on landcovers, threatened and endangered species, species richness and fish populations. A test impoundment site was chosen on Ichusa Creek and using GAP data, landcovers, species and species richness were compared with those of Bienville National Forest, Smith County, Mississippi. For the aquatic analysis, a BBN model was developed for each fish so that population probabilities could be calculated using a given configuration of available habitats and compared to current fish population

    On Resource Pooling and Separation for LRU Caching

    Full text link
    Caching systems using the Least Recently Used (LRU) principle have now become ubiquitous. A fundamental question for these systems is whether the cache space should be pooled together or divided to serve multiple flows of data item requests in order to minimize the miss probabilities. In this paper, we show that there is no straight yes or no answer to this question, depending on complex combinations of critical factors, including, e.g., request rates, overlapped data items across different request flows, data item popularities and their sizes. Specifically, we characterize the asymptotic miss probabilities for multiple competing request flows under resource pooling and separation for LRU caching when the cache size is large. Analytically, we show that it is asymptotically optimal to jointly serve multiple flows if their data item sizes and popularity distributions are similar and their arrival rates do not differ significantly; the self-organizing property of LRU caching automatically optimizes the resource allocation among them asymptotically. Otherwise, separating these flows could be better, e.g., when data sizes vary significantly. We also quantify critical points beyond which resource pooling is better than separation for each of the flows when the overlapped data items exceed certain levels. Technically, we generalize existing results on the asymptotic miss probability of LRU caching for a broad class of heavy-tailed distributions and extend them to multiple competing flows with varying data item sizes, which also validates the Che approximation under certain conditions. These results provide new insights on improving the performance of caching systems
    corecore