Blockchain, as a mechanism to decentralize services, security, and verifiability, offers a peer-to-peer system in which distributed nodes collaboratively affirm transaction provenance. In particular, blockchain enforces continuous storage of transaction history, secured via digital signature, and affirmed through consensus. In this study, we consider the recent surge in blockchain interest as an alternative to traditional centralized systems, and consider the emerging applications thereof. In particular, we assess the key techniques required for blockchain implementation, offering a primer to guide research practitioners. We first outline the blockchain framework in general, and then provide a detailed review of the component data and network structures. Additionally, we consider the breadth of applications to which blockchain has been applied, broadly implicating Internet of Things (IoT), Big Data, and Cloud and Edge computing paradigms, along with many other emerging applications. Finally, we assess the various challenges to blockchain implementation for widespread practical use, considering the security vulnerabilities to majority attacks, selfish mining, and privacy leakage, as well as performance limitations of blockchain platforms in terms of scalability and availability.