Fog computing (FC) is the extension of Cloud Computing (CC), from the core of the internet architecture to the edge of the network, with the aim to perform processes closer to end-users. This extension is proven to enhance security, and to reduce latency and energy consumption. Blockchain (BC), on the other hand, is the base technology behind crypto-currencies, yet is implemented in wide range of different applications. The security and reliability, along with the distributed trust management criteria proposed in BC, excited the research community to integrate it with FC, in a step towards reaching a distributed and trusted, Data, Payment, Reputation, and Identity management systems. In this survey we present the upto-date state-of-the-art of FC-BC integration with a detailed literature review and classification. We discuss and categorize the related papers according to the year of publication, domain, used algorithms, BC roles, and the placement of the BC in the FC architecture. Our research presents detailed observations, analysis, and open challenges for the BC-FC integration. We believe such conclusions may clarify the vision of the BC-FC integration, and calibrate the compass towards open issues and future research directions.