2,777 research outputs found
Permissionless Consensus
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
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
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
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
- …